{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 17:04:45",
  "duplicates" : [ {
    "blockSize" : 47,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 546,
      "endLine" : 592,
      "cleanedStartLine" : 467,
      "cleanedEndLine" : 513
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 169,
      "endLine" : 215,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 41,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 489,
      "endLine" : 529,
      "cleanedStartLine" : 413,
      "cleanedEndLine" : 453
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 158,
      "endLine" : 198,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 41,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 277,
      "endLine" : 328,
      "cleanedStartLine" : 194,
      "cleanedEndLine" : 234
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 264,
      "endLine" : 315,
      "cleanedStartLine" : 177,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 33,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 119,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 132,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 30,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 442,
      "endLine" : 471,
      "cleanedStartLine" : 369,
      "cleanedEndLine" : 398
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 140,
      "endLine" : 170,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 28,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "toolkit/geotools-jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 106,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 82,
      "endLine" : 126,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "toolkit/geotools/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 87,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 59,
      "endLine" : 103,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 66
    } ]
  }, {
    "blockSize" : 28,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "toolkit/geotools-jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 106,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 82,
      "endLine" : 126,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "toolkit/json/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 79,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 45,
      "endLine" : 89,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 28,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "toolkit/geotools/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 87,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 59,
      "endLine" : 103,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 66
    }, {
      "file" : {
        "relativePath" : "toolkit/json/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 79,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 45,
      "endLine" : 89,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 28,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 111,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 112,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 28,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "toolkit/geotools/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 87,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 59,
      "endLine" : 103,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 66
    }, {
      "file" : {
        "relativePath" : "toolkit/jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 104,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 78,
      "endLine" : 122,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 28,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "toolkit/geotools-jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 106,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 82,
      "endLine" : 126,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "toolkit/jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 104,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 78,
      "endLine" : 122,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 28,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "toolkit/json/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 79,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 45,
      "endLine" : 89,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 58
    }, {
      "file" : {
        "relativePath" : "toolkit/jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 104,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 78,
      "endLine" : 122,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 27,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 109,
      "endLine" : 135,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 96,
      "endLine" : 122,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 26,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 95,
      "endLine" : 120,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 87,
      "endLine" : 112,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 26,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CurveAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 32,
      "endLine" : 58,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SegmentAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 28,
      "endLine" : 54,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 26,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 191,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 243,
      "endLine" : 268,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 142
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 212,
      "endLine" : 237,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 25,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 95,
      "endLine" : 119,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 87,
      "endLine" : 111,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 24,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 95,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 24,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 403,
      "endLine" : 426,
      "cleanedStartLine" : 333,
      "cleanedEndLine" : 356
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 134,
      "endLine" : 158,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 24,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 95,
      "endLine" : 118,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 87,
      "endLine" : 110,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 24,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 194,
      "endLine" : 217,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 80
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 388,
      "endLine" : 411,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 24,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/SuiteCrcsByteTest.kt",
        "extension" : "kt",
        "linesOfCode" : 228,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 208,
      "startLine" : 23,
      "endLine" : 54,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/SuiteCrcsIntTest.kt",
        "extension" : "kt",
        "linesOfCode" : 231,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 211,
      "startLine" : 23,
      "endLine" : 54,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 23,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 66,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 75,
      "endLine" : 97,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 23,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 100,
      "endLine" : 122,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 102,
      "endLine" : 124,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 23,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 151,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 180,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 515,
      "endLine" : 536,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 217
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 968,
      "endLine" : 989,
      "cleanedStartLine" : 389,
      "cleanedEndLine" : 410
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 44,
      "endLine" : 65,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 102,
      "endLine" : 123,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 194,
      "endLine" : 215,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 968,
      "endLine" : 989,
      "cleanedStartLine" : 389,
      "cleanedEndLine" : 410
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 194,
      "endLine" : 215,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 515,
      "endLine" : 536,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 178,
      "endLine" : 211,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 145
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 174,
      "endLine" : 207,
      "cleanedStartLine" : 116,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 144,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 168,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 388,
      "endLine" : 409,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 968,
      "endLine" : 989,
      "cleanedStartLine" : 389,
      "cleanedEndLine" : 410
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 388,
      "endLine" : 409,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 515,
      "endLine" : 536,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 21,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 87,
      "endLine" : 107,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 79,
      "endLine" : 99,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 21,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 957,
      "endLine" : 977,
      "cleanedStartLine" : 837,
      "cleanedEndLine" : 857
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 99,
      "endLine" : 119,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 20,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 103,
      "endLine" : 122,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 85,
      "endLine" : 104,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 20,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 27,
      "endLine" : 47,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 25,
      "endLine" : 45,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 20,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LabelRepelAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 43,
      "endLine" : 63,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TextRepelAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 41,
      "endLine" : 61,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 20,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 712,
      "endLine" : 731,
      "cleanedStartLine" : 620,
      "cleanedEndLine" : 639
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 100,
      "endLine" : 119,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 20,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 141,
      "endLine" : 167,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 115
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 239,
      "endLine" : 266,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 185
    } ]
  }, {
    "blockSize" : 19,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 120,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 19,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 126,
      "endLine" : 144,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 120,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 19,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 88,
      "endLine" : 106,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 72,
      "endLine" : 90,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 246,
      "endLine" : 272,
      "cleanedStartLine" : 172,
      "cleanedEndLine" : 189
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 236,
      "endLine" : 262,
      "cleanedStartLine" : 158,
      "cleanedEndLine" : 175
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 103,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 77,
      "endLine" : 94,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 494,
      "endLine" : 511,
      "cleanedStartLine" : 418,
      "cleanedEndLine" : 435
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 175,
      "endLine" : 192,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 552,
      "endLine" : 569,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 490
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 163,
      "endLine" : 180,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 463,
      "endLine" : 480,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 182
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 575,
      "endLine" : 592,
      "cleanedStartLine" : 209,
      "cleanedEndLine" : 226
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 185,
      "endLine" : 202,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 519,
      "endLine" : 536,
      "cleanedStartLine" : 187,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 185,
      "endLine" : 202,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 407,
      "endLine" : 424,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 175,
      "endLine" : 192,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 163,
      "endLine" : 180,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 148,
      "endLine" : 173,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 119
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 147,
      "endLine" : 172,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 114
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 216,
      "endLine" : 241,
      "cleanedStartLine" : 150,
      "cleanedEndLine" : 167
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 209,
      "endLine" : 234,
      "cleanedStartLine" : 139,
      "cleanedEndLine" : 156
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 241,
      "endLine" : 258,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 463,
      "endLine" : 480,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 494,
      "endLine" : 511,
      "cleanedStartLine" : 418,
      "cleanedEndLine" : 435
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 552,
      "endLine" : 569,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 490
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LabelRepelMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 32,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 45,
      "endLine" : 62,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TextRepelMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 43,
      "endLine" : 60,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 241,
      "endLine" : 258,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 575,
      "endLine" : 592,
      "cleanedStartLine" : 209,
      "cleanedEndLine" : 226
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 407,
      "endLine" : 424,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 519,
      "endLine" : 536,
      "cleanedStartLine" : 187,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 143,
      "endLine" : 166,
      "cleanedStartLine" : 94,
      "cleanedEndLine" : 110
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 232,
      "endLine" : 256,
      "cleanedStartLine" : 155,
      "cleanedEndLine" : 171
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 95,
      "endLine" : 111,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 81,
      "endLine" : 97,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 72,
      "endLine" : 88,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 393,
      "endLine" : 409,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 72,
      "endLine" : 88,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 520,
      "endLine" : 536,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 72,
      "endLine" : 88,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 973,
      "endLine" : 989,
      "cleanedStartLine" : 394,
      "cleanedEndLine" : 410
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 191,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 130,
      "endLine" : 146,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 108,
      "endLine" : 124,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 520,
      "endLine" : 536,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 217
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 81,
      "endLine" : 97,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 770,
      "endLine" : 786,
      "cleanedStartLine" : 672,
      "cleanedEndLine" : 688
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 91,
      "endLine" : 107,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 973,
      "endLine" : 989,
      "cleanedStartLine" : 394,
      "cleanedEndLine" : 410
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 81,
      "endLine" : 97,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PointDensityMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 32,
      "endLine" : 48,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PointMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 32,
      "endLine" : 48,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 199,
      "endLine" : 215,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 81,
      "endLine" : 97,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 393,
      "endLine" : 409,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 81,
      "endLine" : 97,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 72,
      "endLine" : 88,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 199,
      "endLine" : 215,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 78
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 120,
      "endLine" : 143,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 97
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 122,
      "endLine" : 145,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 95
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1047,
      "endLine" : 1062,
      "cleanedStartLine" : 421,
      "cleanedEndLine" : 436
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1123,
      "endLine" : 1138,
      "cleanedStartLine" : 452,
      "cleanedEndLine" : 467
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 376,
      "endLine" : 391,
      "cleanedStartLine" : 309,
      "cleanedEndLine" : 324
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 95,
      "endLine" : 111,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 61,
      "endLine" : 76,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 126,
      "endLine" : 141,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 63
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 173,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 138,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 135,
      "endLine" : 150,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 121,
      "endLine" : 136,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 100,
      "endLine" : 115,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 107,
      "endLine" : 122,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 144,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 162,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 65,
      "endLine" : 80,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 56,
      "endLine" : 71,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 173,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 162,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 92,
      "endLine" : 115,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 97,
      "endLine" : 120,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 78
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 79,
      "endLine" : 94,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 66,
      "endLine" : 81,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 144,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 138,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 299,
      "endLine" : 313,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 116
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 410,
      "endLine" : 424,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 299,
      "endLine" : 313,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 116
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 522,
      "endLine" : 536,
      "cleanedStartLine" : 190,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 70,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 69,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CurveMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 35,
      "endLine" : 49,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SegmentMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 31,
      "endLine" : 45,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 188,
      "endLine" : 202,
      "cleanedStartLine" : 58,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 299,
      "endLine" : 313,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 116
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 70,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 70,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 33,
      "endLine" : 47,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 98,
      "endLine" : 113,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 321,
      "endLine" : 335,
      "cleanedStartLine" : 260,
      "cleanedEndLine" : 274
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 87,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 103,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 71,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 70,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 70,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 71,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 244,
      "endLine" : 258,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 354,
      "endLine" : 368,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 70,
      "endLine" : 84,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 140,
      "endLine" : 154,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 59
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 962,
      "endLine" : 976,
      "cleanedStartLine" : 383,
      "cleanedEndLine" : 397
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1123,
      "endLine" : 1137,
      "cleanedStartLine" : 452,
      "cleanedEndLine" : 466
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 962,
      "endLine" : 976,
      "cleanedStartLine" : 383,
      "cleanedEndLine" : 397
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1047,
      "endLine" : 1061,
      "cleanedStartLine" : 421,
      "cleanedEndLine" : 435
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 166,
      "endLine" : 181,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 256,
      "endLine" : 271,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 87
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LabelRepelAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 79,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TextRepelAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 62,
      "endLine" : 76,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 354,
      "endLine" : 368,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 578,
      "endLine" : 592,
      "cleanedStartLine" : 212,
      "cleanedEndLine" : 226
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 69,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 70,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 354,
      "endLine" : 368,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 466,
      "endLine" : 480,
      "cleanedStartLine" : 168,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 242,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 93
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 300,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 120
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 71,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 69,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 191,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 192,
      "endLine" : 207,
      "cleanedStartLine" : 71,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 165,
      "endLine" : 180,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 78
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 33,
      "endLine" : 47,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 111,
      "endLine" : 126,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 454,
      "endLine" : 467,
      "cleanedStartLine" : 381,
      "cleanedEndLine" : 394
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 565,
      "endLine" : 578,
      "cleanedStartLine" : 486,
      "cleanedEndLine" : 499
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 96,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 193,
      "endLine" : 206,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 245,
      "endLine" : 258,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 454,
      "endLine" : 467,
      "cleanedStartLine" : 381,
      "cleanedEndLine" : 394
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 188,
      "endLine" : 201,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 800,
      "endLine" : 813,
      "cleanedStartLine" : 699,
      "cleanedEndLine" : 712
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 826,
      "endLine" : 839,
      "cleanedStartLine" : 722,
      "cleanedEndLine" : 735
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 183,
      "endLine" : 196,
      "cleanedStartLine" : 58,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 273,
      "endLine" : 286,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 246,
      "endLine" : 266,
      "cleanedStartLine" : 172,
      "cleanedEndLine" : 185
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 147,
      "endLine" : 166,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 110
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 565,
      "endLine" : 578,
      "cleanedStartLine" : 486,
      "cleanedEndLine" : 499
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 152,
      "endLine" : 165,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 71,
      "endLine" : 84,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 166,
      "endLine" : 180,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 71,
      "endLine" : 84,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 256,
      "endLine" : 270,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/Bin2dMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 37,
      "endLine" : 50,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/BinHexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 32,
      "endLine" : 45,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 28,
      "endLine" : 42,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 27,
      "endLine" : 41,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 745,
      "endLine" : 758,
      "cleanedStartLine" : 650,
      "cleanedEndLine" : 663
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 87,
      "endLine" : 100,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 105,
      "endLine" : 118,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 83,
      "endLine" : 96,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 148,
      "endLine" : 167,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 115
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 236,
      "endLine" : 256,
      "cleanedStartLine" : 158,
      "cleanedEndLine" : 171
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 152,
      "endLine" : 165,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 188,
      "endLine" : 201,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 135,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 154,
      "endLine" : 166,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 225,
      "endLine" : 237,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 91
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 105,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 99,
      "endLine" : 111,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 97,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 111,
      "endLine" : 123,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 119,
      "endLine" : 131,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 170,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 141,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 47,
      "endLine" : 59,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 112,
      "endLine" : 124,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1064,
      "endLine" : 1076,
      "cleanedStartLine" : 438,
      "cleanedEndLine" : 450
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1140,
      "endLine" : 1152,
      "cleanedStartLine" : 469,
      "cleanedEndLine" : 481
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 63,
      "endLine" : 75,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 56,
      "endLine" : 68,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LabelAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 42,
      "endLine" : 54,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LabelRepelAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 37,
      "endLine" : 49,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 70,
      "endLine" : 87,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 78,
      "endLine" : 95,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 96,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 159,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 133,
      "endLine" : 145,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 121,
      "endLine" : 133,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LabelAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 48,
      "endLine" : 61,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TextAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 42,
      "endLine" : 55,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 140,
      "endLine" : 152,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 211,
      "endLine" : 223,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 159,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 96,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 135,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 54,
      "endLine" : 66,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 124,
      "endLine" : 136,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 64,
      "endLine" : 76,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 66,
      "endLine" : 78,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 141,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 96,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 135,
      "endLine" : 147,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 133,
      "endLine" : 145,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 108,
      "endLine" : 120,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 87,
      "endLine" : 99,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 348,
      "endLine" : 360,
      "cleanedStartLine" : 284,
      "cleanedEndLine" : 296
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 106,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 30,
      "endLine" : 42,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 28,
      "endLine" : 40,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 65,
      "endLine" : 77,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 63,
      "endLine" : 75,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 100,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 81,
      "endLine" : 93,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LabelMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 32,
      "endLine" : 44,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LabelRepelMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 32,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 39,
      "endLine" : 51,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 101,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 85,
      "endLine" : 97,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 66
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 93,
      "endLine" : 106,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 170,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 96,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 773,
      "endLine" : 784,
      "cleanedStartLine" : 313,
      "cleanedEndLine" : 324
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 86,
      "endLine" : 97,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 546,
      "endLine" : 557,
      "cleanedStartLine" : 467,
      "cleanedEndLine" : 478
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 140,
      "endLine" : 151,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 180,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 146,
      "endLine" : 161,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 96
    }, {
      "file" : {
        "relativePath" : "toolkit/jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 104,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 79,
      "endLine" : 94,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 62
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 180,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 146,
      "endLine" : 161,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 96
    }, {
      "file" : {
        "relativePath" : "toolkit/geotools/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 87,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 60,
      "endLine" : 75,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 244,
      "endLine" : 258,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 181
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 275,
      "endLine" : 288,
      "cleanedStartLine" : 192,
      "cleanedEndLine" : 203
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 180,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 146,
      "endLine" : 161,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 96
    }, {
      "file" : {
        "relativePath" : "toolkit/geotools-jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 106,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 83,
      "endLine" : 98,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 63
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 135,
      "endLine" : 146,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 240,
      "endLine" : 251,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 832,
      "endLine" : 843,
      "cleanedStartLine" : 332,
      "cleanedEndLine" : 343
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 894,
      "endLine" : 905,
      "cleanedStartLine" : 357,
      "cleanedEndLine" : 368
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 467,
      "endLine" : 478,
      "cleanedStartLine" : 181,
      "cleanedEndLine" : 192
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 651,
      "endLine" : 662,
      "cleanedStartLine" : 261,
      "cleanedEndLine" : 272
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 180,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 172,
      "endLine" : 186,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 110
    }, {
      "file" : {
        "relativePath" : "toolkit/json/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 79,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 67,
      "endLine" : 81,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TextAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 37,
      "endLine" : 48,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TextRepelAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 36,
      "endLine" : 47,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 188,
      "endLine" : 199,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 56,
      "endLine" : 67,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 240,
      "endLine" : 251,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 121,
      "endLine" : 132,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 146,
      "endLine" : 159,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 111
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 275,
      "endLine" : 288,
      "cleanedStartLine" : 192,
      "cleanedEndLine" : 203
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 376,
      "endLine" : 387,
      "cleanedStartLine" : 309,
      "cleanedEndLine" : 320
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 88,
      "endLine" : 99,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 57,
      "endLine" : 68,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 127,
      "endLine" : 138,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 180,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 172,
      "endLine" : 186,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 110
    }, {
      "file" : {
        "relativePath" : "toolkit/geotools-jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 106,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 104,
      "endLine" : 118,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 62,
      "endLine" : 73,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 130,
      "endLine" : 141,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 204,
      "endLine" : 215,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 773,
      "endLine" : 784,
      "cleanedStartLine" : 313,
      "cleanedEndLine" : 324
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/guide.kt",
        "extension" : "kt",
        "linesOfCode" : 128,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 119,
      "startLine" : 37,
      "endLine" : 49,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/guide.kt",
        "extension" : "kt",
        "linesOfCode" : 128,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 119,
      "startLine" : 83,
      "endLine" : 94,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 454,
      "endLine" : 465,
      "cleanedStartLine" : 168,
      "cleanedEndLine" : 179
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 638,
      "endLine" : 649,
      "cleanedStartLine" : 248,
      "cleanedEndLine" : 259
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 226,
      "endLine" : 237,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 50,
      "endLine" : 61,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 67,
      "endLine" : 78,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 132,
      "endLine" : 143,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 442,
      "endLine" : 453,
      "cleanedStartLine" : 369,
      "cleanedEndLine" : 380
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 546,
      "endLine" : 557,
      "cleanedStartLine" : 467,
      "cleanedEndLine" : 478
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 773,
      "endLine" : 784,
      "cleanedStartLine" : 313,
      "cleanedEndLine" : 324
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 978,
      "endLine" : 989,
      "cleanedStartLine" : 399,
      "cleanedEndLine" : 410
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 525,
      "endLine" : 536,
      "cleanedStartLine" : 206,
      "cleanedEndLine" : 217
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 773,
      "endLine" : 784,
      "cleanedStartLine" : 313,
      "cleanedEndLine" : 324
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 442,
      "endLine" : 453,
      "cleanedStartLine" : 369,
      "cleanedEndLine" : 380
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 169,
      "endLine" : 180,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 84,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 398,
      "endLine" : 409,
      "cleanedStartLine" : 147,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 773,
      "endLine" : 784,
      "cleanedStartLine" : 313,
      "cleanedEndLine" : 324
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 240,
      "endLine" : 251,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 133,
      "endLine" : 144,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 64,
      "endLine" : 75,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 211,
      "endLine" : 222,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 64,
      "endLine" : 75,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 140,
      "endLine" : 151,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 65,
      "endLine" : 76,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 188,
      "endLine" : 199,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 79
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 180,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 172,
      "endLine" : 186,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 110
    }, {
      "file" : {
        "relativePath" : "toolkit/geotools/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 87,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 81,
      "endLine" : 95,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 63
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 91,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 156,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TextMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 40,
      "endLine" : 51,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TextRepelMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 38,
      "endLine" : 49,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 926,
      "endLine" : 937,
      "cleanedStartLine" : 810,
      "cleanedEndLine" : 821
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 151,
      "endLine" : 162,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 77,
      "endLine" : 88,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 773,
      "endLine" : 784,
      "cleanedStartLine" : 313,
      "cleanedEndLine" : 324
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 88,
      "endLine" : 99,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 95,
      "endLine" : 106,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 49,
      "endLine" : 60,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 117,
      "endLine" : 128,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 130,
      "endLine" : 141,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 108,
      "endLine" : 119,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 180,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 146,
      "endLine" : 161,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 96
    }, {
      "file" : {
        "relativePath" : "toolkit/json/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 79,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 46,
      "endLine" : 61,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 83,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 681,
      "endLine" : 692,
      "cleanedStartLine" : 592,
      "cleanedEndLine" : 603
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 106,
      "endLine" : 117,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 611,
      "endLine" : 622,
      "cleanedStartLine" : 529,
      "cleanedEndLine" : 540
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 191,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 243,
      "endLine" : 254,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 128
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 611,
      "endLine" : 622,
      "cleanedStartLine" : 529,
      "cleanedEndLine" : 540
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 212,
      "endLine" : 223,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 116
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 188,
      "endLine" : 199,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 63,
      "endLine" : 74,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 52,
      "endLine" : 66,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 59,
      "endLine" : 73,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 180,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 172,
      "endLine" : 186,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 110
    }, {
      "file" : {
        "relativePath" : "toolkit/jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 104,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 100,
      "endLine" : 114,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 74
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 97,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 65,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 97,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 123,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 826,
      "endLine" : 836,
      "cleanedStartLine" : 722,
      "cleanedEndLine" : 732
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 95,
      "endLine" : 105,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 66,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 123,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1066,
      "endLine" : 1076,
      "cleanedStartLine" : 440,
      "cleanedEndLine" : 450
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 186,
      "endLine" : 196,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1066,
      "endLine" : 1076,
      "cleanedStartLine" : 440,
      "cleanedEndLine" : 450
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 276,
      "endLine" : 286,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 408,
      "endLine" : 418,
      "cleanedStartLine" : 338,
      "cleanedEndLine" : 348
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 448,
      "endLine" : 458,
      "cleanedStartLine" : 375,
      "cleanedEndLine" : 385
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 136,
      "endLine" : 146,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 109
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 852,
      "endLine" : 862,
      "cleanedStartLine" : 745,
      "cleanedEndLine" : 755
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 489,
      "endLine" : 499,
      "cleanedStartLine" : 413,
      "cleanedEndLine" : 423
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 134,
      "endLine" : 144,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 88,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 67,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 66,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 88,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 784,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 324
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 66,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 88,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 123,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 88,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 65,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 111,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 84,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 66,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 215,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 78
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 150,
      "endLine" : 162,
      "cleanedStartLine" : 112,
      "cleanedEndLine" : 122
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 170,
      "endLine" : 182,
      "cleanedStartLine" : 129,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 150,
      "endLine" : 162,
      "cleanedStartLine" : 112,
      "cleanedEndLine" : 122
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 188,
      "endLine" : 200,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 529,
      "endLine" : 539,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 207
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 585,
      "endLine" : 595,
      "cleanedStartLine" : 219,
      "cleanedEndLine" : 229
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 123,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 66,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 336,
      "endLine" : 348,
      "cleanedStartLine" : 277,
      "cleanedEndLine" : 287
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 355,
      "endLine" : 368,
      "cleanedStartLine" : 294,
      "cleanedEndLine" : 304
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 336,
      "endLine" : 348,
      "cleanedStartLine" : 277,
      "cleanedEndLine" : 287
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 375,
      "endLine" : 387,
      "cleanedStartLine" : 311,
      "cleanedEndLine" : 321
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 989,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 410
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 67,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 97,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 67,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 66,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 784,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 324
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 260,
      "endLine" : 270,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 96
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 325,
      "endLine" : 335,
      "cleanedStartLine" : 110,
      "cleanedEndLine" : 120
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 536,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 217
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 67,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 386,
      "endLine" : 396,
      "cleanedStartLine" : 135,
      "cleanedEndLine" : 145
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 638,
      "endLine" : 648,
      "cleanedStartLine" : 248,
      "cleanedEndLine" : 258
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 227,
      "endLine" : 237,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 186,
      "endLine" : 196,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 66,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 989,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 410
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 386,
      "endLine" : 396,
      "cleanedStartLine" : 135,
      "cleanedEndLine" : 145
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 454,
      "endLine" : 464,
      "cleanedStartLine" : 168,
      "cleanedEndLine" : 178
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 845,
      "endLine" : 855,
      "cleanedStartLine" : 345,
      "cleanedEndLine" : 355
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 907,
      "endLine" : 917,
      "cleanedStartLine" : 370,
      "cleanedEndLine" : 380
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 409,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 66,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 215,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 65,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 215,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 123,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 44,
      "endLine" : 54,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 44,
      "endLine" : 54,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 227,
      "endLine" : 237,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 276,
      "endLine" : 286,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GuidesTest.kt",
        "extension" : "kt",
        "linesOfCode" : 162,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 141,
      "startLine" : 20,
      "endLine" : 32,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GuidesTest.kt",
        "extension" : "kt",
        "linesOfCode" : 162,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 141,
      "startLine" : 70,
      "endLine" : 82,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 111,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 103,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 826,
      "endLine" : 836,
      "cleanedStartLine" : 722,
      "cleanedEndLine" : 732
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 96,
      "endLine" : 106,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 156,
      "endLine" : 166,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 276,
      "endLine" : 286,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 156,
      "endLine" : 166,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 186,
      "endLine" : 196,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 139,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 172,
      "endLine" : 182,
      "cleanedStartLine" : 118,
      "cleanedEndLine" : 128
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 271,
      "endLine" : 281,
      "cleanedStartLine" : 188,
      "cleanedEndLine" : 198
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 94,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 123,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 124,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 43,
      "endLine" : 53,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 44,
      "endLine" : 54,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 133,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 96,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 215,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 66,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 536,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 217
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 66,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 784,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 324
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 123,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 784,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 324
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 65,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 170,
      "endLine" : 182,
      "cleanedStartLine" : 129,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 188,
      "endLine" : 200,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 66,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 409,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 115,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 131,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 989,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 410
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 65,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 66,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 536,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 124,
      "endLine" : 134,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 109,
      "endLine" : 119,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 408,
      "endLine" : 418,
      "cleanedStartLine" : 338,
      "cleanedEndLine" : 348
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 146,
      "endLine" : 156,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 127,
      "endLine" : 137,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 134,
      "endLine" : 144,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 989,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 410
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 123,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 139,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 197,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 253,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 109
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 112,
      "endLine" : 124,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 131,
      "endLine" : 143,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 105
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 95,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 146,
      "endLine" : 156,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 139,
      "endLine" : 149,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 156,
      "endLine" : 166,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1066,
      "endLine" : 1076,
      "cleanedStartLine" : 440,
      "cleanedEndLine" : 450
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 156,
      "endLine" : 166,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1142,
      "endLine" : 1152,
      "cleanedStartLine" : 471,
      "cleanedEndLine" : 481
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 312,
      "endLine" : 322,
      "cleanedStartLine" : 184,
      "cleanedEndLine" : 194
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 352,
      "endLine" : 362,
      "cleanedStartLine" : 221,
      "cleanedEndLine" : 231
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 215,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 67,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 312,
      "endLine" : 322,
      "cleanedStartLine" : 184,
      "cleanedEndLine" : 194
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 338,
      "endLine" : 348,
      "cleanedStartLine" : 208,
      "cleanedEndLine" : 218
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 157,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 325,
      "endLine" : 335,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 206
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 352,
      "endLine" : 362,
      "cleanedStartLine" : 221,
      "cleanedEndLine" : 231
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 579,
      "endLine" : 589,
      "cleanedStartLine" : 224,
      "cleanedEndLine" : 234
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 700,
      "endLine" : 710,
      "cleanedStartLine" : 274,
      "cleanedEndLine" : 284
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 325,
      "endLine" : 335,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 206
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 338,
      "endLine" : 348,
      "cleanedStartLine" : 208,
      "cleanedEndLine" : 218
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 312,
      "endLine" : 322,
      "cleanedStartLine" : 184,
      "cleanedEndLine" : 194
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 325,
      "endLine" : 335,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 206
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 44,
      "endLine" : 54,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 45,
      "endLine" : 55,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 409,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 67,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 140,
      "endLine" : 150,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 61,
      "endLine" : 71,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 989,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 410
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 66,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 403,
      "endLine" : 413,
      "cleanedStartLine" : 333,
      "cleanedEndLine" : 343
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 158,
      "endLine" : 168,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 44,
      "endLine" : 54,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 43,
      "endLine" : 53,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 183,
      "endLine" : 193,
      "cleanedStartLine" : 140,
      "cleanedEndLine" : 150
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 211,
      "endLine" : 221,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 175
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 88,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 66,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 243,
      "endLine" : 255,
      "cleanedStartLine" : 194,
      "cleanedEndLine" : 204
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 262,
      "endLine" : 274,
      "cleanedStartLine" : 211,
      "cleanedEndLine" : 221
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 243,
      "endLine" : 255,
      "cleanedStartLine" : 194,
      "cleanedEndLine" : 204
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 281,
      "endLine" : 293,
      "cleanedStartLine" : 228,
      "cleanedEndLine" : 238
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 131,
      "endLine" : 143,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 150,
      "endLine" : 162,
      "cleanedStartLine" : 112,
      "cleanedEndLine" : 122
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 131,
      "endLine" : 143,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 170,
      "endLine" : 182,
      "cleanedStartLine" : 129,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 131,
      "endLine" : 143,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 188,
      "endLine" : 200,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 168,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "toolkit/geotools-jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 106,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 51,
      "endLine" : 67,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "toolkit/jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 104,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 47,
      "endLine" : 63,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 591,
      "endLine" : 601,
      "cleanedStartLine" : 236,
      "cleanedEndLine" : 246
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 712,
      "endLine" : 722,
      "cleanedStartLine" : 286,
      "cleanedEndLine" : 296
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 45,
      "endLine" : 55,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 44,
      "endLine" : 54,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 107,
      "endLine" : 117,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 80,
      "endLine" : 90,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 157,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 195,
      "endLine" : 205,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 251,
      "endLine" : 261,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 97
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 68,
      "endLine" : 78,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 138,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 800,
      "endLine" : 810,
      "cleanedStartLine" : 699,
      "cleanedEndLine" : 709
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 96,
      "endLine" : 106,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 338,
      "endLine" : 348,
      "cleanedStartLine" : 208,
      "cleanedEndLine" : 218
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 352,
      "endLine" : 362,
      "cleanedStartLine" : 221,
      "cleanedEndLine" : 231
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 262,
      "endLine" : 274,
      "cleanedStartLine" : 211,
      "cleanedEndLine" : 221
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 281,
      "endLine" : 293,
      "cleanedStartLine" : 228,
      "cleanedEndLine" : 238
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 181,
      "endLine" : 191,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 233,
      "endLine" : 243,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 98
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 67,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 123,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 409,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 65,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 800,
      "endLine" : 810,
      "cleanedStartLine" : 699,
      "cleanedEndLine" : 709
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 95,
      "endLine" : 105,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 409,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 123,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 66,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 97,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "toolkit/geotools-jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 106,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 51,
      "endLine" : 67,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "toolkit/json/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 79,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 17,
      "endLine" : 32,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LabelMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 38,
      "endLine" : 48,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TextMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 45,
      "endLine" : 55,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 94,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 784,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 324
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 67,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 133,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 112,
      "endLine" : 124,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 150,
      "endLine" : 162,
      "cleanedStartLine" : 112,
      "cleanedEndLine" : 122
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 112,
      "endLine" : 124,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 170,
      "endLine" : 182,
      "cleanedStartLine" : 129,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 112,
      "endLine" : 124,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 188,
      "endLine" : 200,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 403,
      "endLine" : 413,
      "cleanedStartLine" : 333,
      "cleanedEndLine" : 343
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 489,
      "endLine" : 499,
      "cleanedStartLine" : 413,
      "cleanedEndLine" : 423
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 306,
      "endLine" : 316,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 119
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 361,
      "endLine" : 371,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 141
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 70,
      "endLine" : 80,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 126,
      "endLine" : 136,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 536,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 217
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 65,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 536,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 217
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 123,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 355,
      "endLine" : 368,
      "cleanedStartLine" : 294,
      "cleanedEndLine" : 304
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 375,
      "endLine" : 387,
      "cleanedStartLine" : 311,
      "cleanedEndLine" : 321
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 448,
      "endLine" : 458,
      "cleanedStartLine" : 375,
      "cleanedEndLine" : 385
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 139,
      "endLine" : 149,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 127,
      "endLine" : 137,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 110,
      "endLine" : 120,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 45,
      "endLine" : 55,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 43,
      "endLine" : 53,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1142,
      "endLine" : 1152,
      "cleanedStartLine" : 471,
      "cleanedEndLine" : 481
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 276,
      "endLine" : 286,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 272,
      "endLine" : 282,
      "cleanedStartLine" : 98,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 337,
      "endLine" : 347,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 132
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1142,
      "endLine" : 1152,
      "cleanedStartLine" : 471,
      "cleanedEndLine" : 481
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 186,
      "endLine" : 196,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 29,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 38,
      "endLine" : 49,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 27,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 29,
      "endLine" : 40,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 41,
      "endLine" : 51,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 32,
      "endLine" : 42,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 227,
      "endLine" : 237,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1066,
      "endLine" : 1076,
      "cleanedStartLine" : 440,
      "cleanedEndLine" : 450
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 227,
      "endLine" : 237,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1142,
      "endLine" : 1152,
      "cleanedStartLine" : 471,
      "cleanedEndLine" : 481
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 95,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 168,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 759,
      "endLine" : 769,
      "cleanedStartLine" : 299,
      "cleanedEndLine" : 309
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 832,
      "endLine" : 842,
      "cleanedStartLine" : 332,
      "cleanedEndLine" : 342
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 759,
      "endLine" : 769,
      "cleanedStartLine" : 299,
      "cleanedEndLine" : 309
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 894,
      "endLine" : 904,
      "cleanedStartLine" : 357,
      "cleanedEndLine" : 367
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 96,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 97,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 66,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 118,
      "endLine" : 130,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 90
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 176,
      "endLine" : 188,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 132
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 417,
      "endLine" : 427,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 163
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 473,
      "endLine" : 483,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 185
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 655,
      "endLine" : 665,
      "cleanedStartLine" : 569,
      "cleanedEndLine" : 579
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 94,
      "endLine" : 104,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "toolkit/json/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 79,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 17,
      "endLine" : 32,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "toolkit/jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 104,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 47,
      "endLine" : 63,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 237,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 347,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 132
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 237,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 478,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 192
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 117,
      "endLine" : 126,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 98,
      "endLine" : 107,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 146,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 282,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 478,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 192
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 379,
      "endLine" : 388,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 162
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 434,
      "endLine" : 443,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 184
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 246,
      "endLine" : 258,
      "cleanedStartLine" : 172,
      "cleanedEndLine" : 181
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 264,
      "endLine" : 275,
      "cleanedStartLine" : 177,
      "cleanedEndLine" : 186
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 524,
      "endLine" : 533,
      "cleanedStartLine" : 205,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 59,
      "endLine" : 68,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 237,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 601,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 246
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 917,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 380
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 286,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 237,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 662,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 272
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 237,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 722,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 296
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GuidesTest.kt",
        "extension" : "kt",
        "linesOfCode" : 162,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 141,
      "startLine" : 121,
      "endLine" : 130,
      "cleanedStartLine" : 94,
      "cleanedEndLine" : 103
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GuidesTest.kt",
        "extension" : "kt",
        "linesOfCode" : 162,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 141,
      "startLine" : 143,
      "endLine" : 152,
      "cleanedStartLine" : 114,
      "cleanedEndLine" : 123
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 237,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 855,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 355
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 917,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 380
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 196,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 121,
      "endLine" : 130,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 99,
      "endLine" : 108,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 255,
      "endLine" : 264,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 423,
      "endLine" : 432,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 173
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 662,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 272
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 286,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 282,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 917,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 380
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 66,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 170,
      "endLine" : 180,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 347,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 132
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 855,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 355
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 282,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 855,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 355
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 347,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 132
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 917,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 380
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 66,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 260,
      "endLine" : 270,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 166,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 855,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 355
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 31,
      "endLine" : 40,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 25,
      "endLine" : 34,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 118,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 131,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 166,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 917,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 380
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 662,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 272
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 196,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 282,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 662,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 272
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 347,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 132
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1076,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 450
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 282,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 601,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 246
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/ImageLineByte.kt",
        "extension" : "kt",
        "linesOfCode" : 146,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 123,
      "startLine" : 90,
      "endLine" : 102,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/ImageLineInt.kt",
        "extension" : "kt",
        "linesOfCode" : 144,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 106,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 347,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 132
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1152,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 481
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 277,
      "endLine" : 288,
      "cleanedStartLine" : 194,
      "cleanedEndLine" : 203
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 147,
      "endLine" : 158,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 203,
      "endLine" : 212,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 59,
      "endLine" : 68,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 601,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 246
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1152,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 481
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 601,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 246
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1076,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 450
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 282,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 722,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 296
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 237,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 282,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 108
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 347,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 132
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 478,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 192
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 347,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 132
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 601,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 246
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 347,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 132
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 662,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 272
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 193,
      "endLine" : 202,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 325,
      "endLine" : 334,
      "cleanedStartLine" : 110,
      "cleanedEndLine" : 119
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 102,
      "endLine" : 111,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 45,
      "endLine" : 54,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 347,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 132
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 722,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 296
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/themes/theme.kt",
        "extension" : "kt",
        "linesOfCode" : 327,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 319,
      "startLine" : 633,
      "endLine" : 642,
      "cleanedStartLine" : 262,
      "cleanedEndLine" : 271
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/themes/theme.kt",
        "extension" : "kt",
        "linesOfCode" : 327,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 319,
      "startLine" : 697,
      "endLine" : 706,
      "cleanedStartLine" : 283,
      "cleanedEndLine" : 292
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 279,
      "endLine" : 288,
      "cleanedStartLine" : 224,
      "cleanedEndLine" : 233
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 74,
      "endLine" : 84,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 130,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 119,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 478,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 192
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 917,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 380
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 237,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 917,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 380
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/Bin2dMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 41,
      "endLine" : 50,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/DensityMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 23,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 46,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 478,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 192
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 855,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 355
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 201,
      "endLine" : 210,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 184,
      "endLine" : 193,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 282,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 286,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 282,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 196,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 478,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 192
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1152,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 481
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 478,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 192
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1076,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 450
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 136,
      "endLine" : 145,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 97,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ScaleTest.kt",
        "extension" : "kt",
        "linesOfCode" : 197,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 17,
      "endLine" : 28,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ScaleTest.kt",
        "extension" : "kt",
        "linesOfCode" : 197,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 32,
      "endLine" : 43,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 515,
      "endLine" : 524,
      "cleanedStartLine" : 439,
      "cleanedEndLine" : 448
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 578,
      "endLine" : 587,
      "cleanedStartLine" : 499,
      "cleanedEndLine" : 508
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 266,
      "endLine" : 275,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 117
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 434,
      "endLine" : 443,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 184
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 266,
      "endLine" : 275,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 117
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 379,
      "endLine" : 388,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 162
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 266,
      "endLine" : 275,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 117
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 324,
      "endLine" : 333,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 722,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 296
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 855,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 355
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 722,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 296
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 917,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 380
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 601,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 246
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 286,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 601,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 246
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 196,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 722,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 296
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1076,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 450
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 722,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 296
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1152,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 481
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 114,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 106,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 258,
      "endLine" : 267,
      "cleanedStartLine" : 206,
      "cleanedEndLine" : 215
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 73,
      "endLine" : 82,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 76,
      "endLine" : 85,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 59,
      "endLine" : 68,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 142,
      "endLine" : 151,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 75,
      "endLine" : 84,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 85,
      "endLine" : 94,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 59,
      "endLine" : 68,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 193,
      "endLine" : 202,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 260,
      "endLine" : 269,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 95
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 114,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 119,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 515,
      "endLine" : 524,
      "cleanedStartLine" : 439,
      "cleanedEndLine" : 448
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 201,
      "endLine" : 210,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 977,
      "endLine" : 986,
      "cleanedStartLine" : 398,
      "cleanedEndLine" : 407
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 59,
      "endLine" : 68,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 176,
      "endLine" : 185,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 232,
      "endLine" : 241,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 97
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 141,
      "endLine" : 150,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 80,
      "endLine" : 89,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 166,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 347,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 132
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 201,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 179,
      "startLine" : 152,
      "endLine" : 163,
      "cleanedStartLine" : 112,
      "cleanedEndLine" : 121
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 201,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 179,
      "startLine" : 167,
      "endLine" : 178,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 133
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 212,
      "endLine" : 221,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 324,
      "endLine" : 333,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 166,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 478,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 192
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 212,
      "endLine" : 221,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 379,
      "endLine" : 388,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 162
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 282,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1152,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 481
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 212,
      "endLine" : 221,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 434,
      "endLine" : 443,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 184
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 282,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1076,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 450
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 201,
      "endLine" : 210,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 84
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 368,
      "endLine" : 377,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 151
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 277,
      "endLine" : 286,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 173
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 71,
      "endLine" : 80,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 201,
      "endLine" : 210,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 84
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 313,
      "endLine" : 322,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 128
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 236,
      "endLine" : 248,
      "cleanedStartLine" : 158,
      "cleanedEndLine" : 167
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 264,
      "endLine" : 275,
      "cleanedStartLine" : 177,
      "cleanedEndLine" : 186
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 166,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 601,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 246
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 166,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 662,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 272
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 313,
      "endLine" : 322,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 128
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 368,
      "endLine" : 377,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 151
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 166,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 722,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 296
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 212,
      "endLine" : 221,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 266,
      "endLine" : 275,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 117
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 397,
      "endLine" : 406,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 59,
      "endLine" : 68,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 295,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 115
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 61,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/DotplotMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 31,
      "endLine" : 40,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/YDotplotMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 32,
      "endLine" : 41,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 45,
      "endLine" : 54,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 102,
      "endLine" : 111,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 139,
      "endLine" : 149,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 146,
      "endLine" : 156,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 153,
      "endLine" : 162,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 212,
      "endLine" : 221,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 95
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 855,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 355
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 286,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 855,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 355
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 196,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 82,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 213,
      "endLine" : 222,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 76
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 260,
      "endLine" : 270,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 213,
      "endLine" : 222,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 76
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 170,
      "endLine" : 180,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 87,
      "endLine" : 96,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 66
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 211,
      "endLine" : 220,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 154
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 118,
      "endLine" : 127,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 120,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 153,
      "endLine" : 162,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 324,
      "endLine" : 333,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 324,
      "endLine" : 333,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 379,
      "endLine" : 388,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 162
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 153,
      "endLine" : 162,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 266,
      "endLine" : 275,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 117
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 153,
      "endLine" : 162,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 434,
      "endLine" : 443,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 184
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 136,
      "endLine" : 145,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 108
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 81,
      "endLine" : 90,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 153,
      "endLine" : 162,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 379,
      "endLine" : 388,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 162
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 478,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 192
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 286,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 142,
      "endLine" : 151,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 201,
      "endLine" : 210,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 84
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 324,
      "endLine" : 333,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 434,
      "endLine" : 443,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 184
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 478,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 192
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 196,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 70,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 61,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 722,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 296
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 286,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 722,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 296
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 196,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 917,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 380
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1152,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 481
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 917,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 380
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1076,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 450
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 514,
      "endLine" : 523,
      "cleanedStartLine" : 195,
      "cleanedEndLine" : 204
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 579,
      "endLine" : 588,
      "cleanedStartLine" : 224,
      "cleanedEndLine" : 233
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 514,
      "endLine" : 523,
      "cleanedStartLine" : 195,
      "cleanedEndLine" : 204
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 700,
      "endLine" : 709,
      "cleanedStartLine" : 274,
      "cleanedEndLine" : 283
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 78,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 852,
      "endLine" : 861,
      "cleanedStartLine" : 745,
      "cleanedEndLine" : 754
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 81,
      "endLine" : 90,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 46,
      "endLine" : 55,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 102,
      "endLine" : 111,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 115,
      "endLine" : 124,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 241,
      "endLine" : 250,
      "cleanedStartLine" : 167,
      "cleanedEndLine" : 176
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 146,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 277,
      "endLine" : 288,
      "cleanedStartLine" : 194,
      "cleanedEndLine" : 203
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 236,
      "endLine" : 248,
      "cleanedStartLine" : 158,
      "cleanedEndLine" : 167
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 205,
      "endLine" : 214,
      "cleanedStartLine" : 159,
      "cleanedEndLine" : 168
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 223,
      "endLine" : 232,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 184
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 115,
      "endLine" : 124,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 143,
      "endLine" : 152,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 347,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 132
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 286,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 347,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 132
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 196,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 142,
      "endLine" : 151,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 260,
      "endLine" : 270,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 142,
      "endLine" : 151,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 170,
      "endLine" : 180,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 125,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 118,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 90,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 75,
      "endLine" : 84,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ScaleSizeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 20,
      "endLine" : 30,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ScaleSizeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 43,
      "endLine" : 53,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 181,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 70,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 295,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 478,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 192
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 722,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 296
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 478,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 192
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 601,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 246
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 166,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 282,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 108
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 213,
      "endLine" : 222,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 76
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 75,
      "endLine" : 84,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 431,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 161
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 366,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 140
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 142,
      "endLine" : 151,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 313,
      "endLine" : 322,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 128
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 142,
      "endLine" : 151,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 368,
      "endLine" : 377,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 151
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 855,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 355
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1076,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 450
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 855,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 355
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1152,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 481
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 662,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 272
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1076,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 450
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 662,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 272
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1152,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 481
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 852,
      "endLine" : 861,
      "cleanedStartLine" : 745,
      "cleanedEndLine" : 754
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 97,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 130,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 106,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 601,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 246
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 917,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 380
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 662,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 272
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 855,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 355
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 601,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 246
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 855,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 355
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 662,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 272
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 917,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 380
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 88,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 70,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 237,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 88
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 662,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 272
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 722,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 296
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 148,
      "endLine" : 159,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 111
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 264,
      "endLine" : 275,
      "cleanedStartLine" : 177,
      "cleanedEndLine" : 186
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 601,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 246
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 662,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 272
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/BinHexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 36,
      "endLine" : 45,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/DensityMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 23,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 46,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 119,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 106,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 78,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 75,
      "endLine" : 84,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 201,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 179,
      "startLine" : 51,
      "endLine" : 62,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 201,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 179,
      "startLine" : 68,
      "endLine" : 79,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 147,
      "endLine" : 158,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 264,
      "endLine" : 275,
      "cleanedStartLine" : 177,
      "cleanedEndLine" : 186
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 578,
      "endLine" : 587,
      "cleanedStartLine" : 499,
      "cleanedEndLine" : 508
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 184,
      "endLine" : 193,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 514,
      "endLine" : 525,
      "cleanedStartLine" : 425,
      "cleanedEndLine" : 434
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 545,
      "endLine" : 556,
      "cleanedStartLine" : 450,
      "cleanedEndLine" : 459
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 451,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 181
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 388,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 162
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 51,
      "endLine" : 59,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 218,
      "endLine" : 226,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 451,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 181
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 333,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 51,
      "endLine" : 59,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 276,
      "endLine" : 284,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 104
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 515,
      "endLine" : 523,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 204
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 640,
      "endLine" : 648,
      "cleanedStartLine" : 250,
      "cleanedEndLine" : 258
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 451,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 181
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 275,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 117
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 168,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 54,
      "endLine" : 64,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 80,
      "endLine" : 90,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 987,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 408
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/DataSeriesTest.kt",
        "extension" : "kt",
        "linesOfCode" : 144,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 150,
      "endLine" : 162,
      "cleanedStartLine" : 112,
      "cleanedEndLine" : 120
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/DataSeriesTimeStandardizeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 88,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 69,
      "startLine" : 98,
      "endLine" : 110,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 145,
      "endLine" : 153,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 176,
      "endLine" : 184,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 580,
      "endLine" : 588,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 233
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 640,
      "endLine" : 648,
      "cleanedStartLine" : 250,
      "cleanedEndLine" : 258
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 98,
      "endLine" : 106,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 88,
      "endLine" : 96,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 515,
      "endLine" : 523,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 204
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 834,
      "endLine" : 842,
      "cleanedStartLine" : 334,
      "cleanedEndLine" : 342
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 110,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 82,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 90,
      "endLine" : 98,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 76,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 515,
      "endLine" : 523,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 204
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 896,
      "endLine" : 904,
      "cleanedStartLine" : 359,
      "cleanedEndLine" : 367
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 218,
      "endLine" : 226,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 276,
      "endLine" : 284,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 104
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 515,
      "endLine" : 523,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 204
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 761,
      "endLine" : 769,
      "cleanedStartLine" : 301,
      "cleanedEndLine" : 309
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 580,
      "endLine" : 588,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 233
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 761,
      "endLine" : 769,
      "cleanedStartLine" : 301,
      "cleanedEndLine" : 309
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 896,
      "endLine" : 904,
      "cleanedStartLine" : 359,
      "cleanedEndLine" : 367
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1129,
      "endLine" : 1137,
      "cleanedStartLine" : 458,
      "cleanedEndLine" : 466
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 94,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 74,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 580,
      "endLine" : 588,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 233
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 896,
      "endLine" : 904,
      "cleanedStartLine" : 359,
      "cleanedEndLine" : 367
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 580,
      "endLine" : 588,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 233
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 834,
      "endLine" : 842,
      "cleanedStartLine" : 334,
      "cleanedEndLine" : 342
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 896,
      "endLine" : 904,
      "cleanedStartLine" : 359,
      "cleanedEndLine" : 367
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1053,
      "endLine" : 1061,
      "cleanedStartLine" : 427,
      "cleanedEndLine" : 435
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 580,
      "endLine" : 588,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 233
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 968,
      "endLine" : 976,
      "cleanedStartLine" : 389,
      "cleanedEndLine" : 397
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 211,
      "endLine" : 219,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 173
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 161,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 227,
      "endLine" : 235,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 130,
      "endLine" : 138,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 326,
      "endLine" : 334,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 119
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 456,
      "endLine" : 464,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 178
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 138,
      "endLine" : 146,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 139,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 227,
      "endLine" : 235,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 326,
      "endLine" : 334,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 119
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 388,
      "endLine" : 396,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 145
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/Bin2dMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 28,
      "endLine" : 36,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 326,
      "endLine" : 334,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 119
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 515,
      "endLine" : 523,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/BoxplotStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 15,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 22,
      "endLine" : 31,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/Count2dStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 15,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 19,
      "endLine" : 28,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 45,
      "endLine" : 53,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 32,
      "endLine" : 40,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 433,
      "endLine" : 441,
      "cleanedStartLine" : 163,
      "cleanedEndLine" : 171
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 483,
      "endLine" : 491,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 191
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 296,
      "endLine" : 304,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 107
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 351,
      "endLine" : 359,
      "cleanedStartLine" : 121,
      "cleanedEndLine" : 129
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 33,
      "endLine" : 41,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 278,
      "endLine" : 286,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 173
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 108,
      "endLine" : 116,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 94,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 153,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmMain/kotlin/org/jetbrains/letsPlot/frontend/DefaultSwingBatikFrontendContext.kt",
        "extension" : "kt",
        "linesOfCode" : 28,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 18,
      "endLine" : 28,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmMain/kotlin/org/jetbrains/letsPlot/frontend/DefaultSwingJfxFrontendContext.kt",
        "extension" : "kt",
        "linesOfCode" : 28,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 18,
      "endLine" : 28,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 326,
      "endLine" : 334,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 119
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 834,
      "endLine" : 842,
      "cleanedStartLine" : 334,
      "cleanedEndLine" : 342
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 65,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 326,
      "endLine" : 334,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 119
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 761,
      "endLine" : 769,
      "cleanedStartLine" : 301,
      "cleanedEndLine" : 309
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 834,
      "endLine" : 842,
      "cleanedStartLine" : 334,
      "cleanedEndLine" : 342
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 968,
      "endLine" : 976,
      "cleanedStartLine" : 389,
      "cleanedEndLine" : 397
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/guide.kt",
        "extension" : "kt",
        "linesOfCode" : 128,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 119,
      "startLine" : 198,
      "endLine" : 206,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/guide.kt",
        "extension" : "kt",
        "linesOfCode" : 128,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 119,
      "startLine" : 226,
      "endLine" : 234,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 107
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 326,
      "endLine" : 334,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 119
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 896,
      "endLine" : 904,
      "cleanedStartLine" : 359,
      "cleanedEndLine" : 367
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 501,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 201
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 451,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 181
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 326,
      "endLine" : 334,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 119
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 968,
      "endLine" : 976,
      "cleanedStartLine" : 389,
      "cleanedEndLine" : 397
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 183,
      "endLine" : 191,
      "cleanedStartLine" : 140,
      "cleanedEndLine" : 148
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 87,
      "endLine" : 95,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 640,
      "endLine" : 648,
      "cleanedStartLine" : 250,
      "cleanedEndLine" : 258
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 968,
      "endLine" : 976,
      "cleanedStartLine" : 389,
      "cleanedEndLine" : 397
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 640,
      "endLine" : 648,
      "cleanedStartLine" : 250,
      "cleanedEndLine" : 258
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 834,
      "endLine" : 842,
      "cleanedStartLine" : 334,
      "cleanedEndLine" : 342
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 241,
      "endLine" : 249,
      "cleanedStartLine" : 191,
      "cleanedEndLine" : 199
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 136,
      "endLine" : 144,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 640,
      "endLine" : 648,
      "cleanedStartLine" : 250,
      "cleanedEndLine" : 258
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 896,
      "endLine" : 904,
      "cleanedStartLine" : 359,
      "cleanedEndLine" : 367
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 640,
      "endLine" : 648,
      "cleanedStartLine" : 250,
      "cleanedEndLine" : 258
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 761,
      "endLine" : 769,
      "cleanedStartLine" : 301,
      "cleanedEndLine" : 309
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 94,
      "endLine" : 102,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 94,
      "endLine" : 102,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 98,
      "endLine" : 106,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 278,
      "endLine" : 286,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 173
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ContourfMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 38,
      "endLine" : 46,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PolygonMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 28,
      "endLine" : 36,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 121,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 326,
      "endLine" : 334,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 119
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 580,
      "endLine" : 588,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 233
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 326,
      "endLine" : 334,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 119
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 701,
      "endLine" : 709,
      "cleanedStartLine" : 275,
      "cleanedEndLine" : 283
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 102,
      "endLine" : 110,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 94,
      "endLine" : 102,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 326,
      "endLine" : 334,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 119
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 640,
      "endLine" : 648,
      "cleanedStartLine" : 250,
      "cleanedEndLine" : 258
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PolygonMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 28,
      "endLine" : 36,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SmoothMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 32,
      "endLine" : 40,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 640,
      "endLine" : 648,
      "cleanedStartLine" : 250,
      "cleanedEndLine" : 258
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1129,
      "endLine" : 1137,
      "cleanedStartLine" : 458,
      "cleanedEndLine" : 466
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 640,
      "endLine" : 648,
      "cleanedStartLine" : 250,
      "cleanedEndLine" : 258
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1053,
      "endLine" : 1061,
      "cleanedStartLine" : 427,
      "cleanedEndLine" : 435
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 400,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 451,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 181
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 400,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 501,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 201
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 101,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 110,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 515,
      "endLine" : 523,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 204
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1129,
      "endLine" : 1137,
      "cleanedStartLine" : 458,
      "cleanedEndLine" : 466
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 261,
      "endLine" : 269,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 388,
      "endLine" : 396,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 145
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 701,
      "endLine" : 709,
      "cleanedStartLine" : 275,
      "cleanedEndLine" : 283
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 896,
      "endLine" : 904,
      "cleanedStartLine" : 359,
      "cleanedEndLine" : 367
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 261,
      "endLine" : 269,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 515,
      "endLine" : 523,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 261,
      "endLine" : 269,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 456,
      "endLine" : 464,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 178
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 701,
      "endLine" : 709,
      "cleanedStartLine" : 275,
      "cleanedEndLine" : 283
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 968,
      "endLine" : 976,
      "cleanedStartLine" : 389,
      "cleanedEndLine" : 397
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 33,
      "endLine" : 41,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 88,
      "endLine" : 96,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 515,
      "endLine" : 523,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 204
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1053,
      "endLine" : 1061,
      "cleanedStartLine" : 427,
      "cleanedEndLine" : 435
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 896,
      "endLine" : 904,
      "cleanedStartLine" : 359,
      "cleanedEndLine" : 367
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 968,
      "endLine" : 976,
      "cleanedStartLine" : 389,
      "cleanedEndLine" : 397
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 111,
      "endLine" : 119,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 278,
      "endLine" : 286,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 173
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 161,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 107,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 701,
      "endLine" : 709,
      "cleanedStartLine" : 275,
      "cleanedEndLine" : 283
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1129,
      "endLine" : 1137,
      "cleanedStartLine" : 458,
      "cleanedEndLine" : 466
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 261,
      "endLine" : 269,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 580,
      "endLine" : 588,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 233
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 701,
      "endLine" : 709,
      "cleanedStartLine" : 275,
      "cleanedEndLine" : 283
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1053,
      "endLine" : 1061,
      "cleanedStartLine" : 427,
      "cleanedEndLine" : 435
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 301,
      "endLine" : 311,
      "cleanedStartLine" : 246,
      "cleanedEndLine" : 254
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 319,
      "endLine" : 329,
      "cleanedStartLine" : 262,
      "cleanedEndLine" : 270
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 261,
      "endLine" : 269,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 701,
      "endLine" : 709,
      "cleanedStartLine" : 275,
      "cleanedEndLine" : 283
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 834,
      "endLine" : 842,
      "cleanedStartLine" : 334,
      "cleanedEndLine" : 342
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1053,
      "endLine" : 1061,
      "cleanedStartLine" : 427,
      "cleanedEndLine" : 435
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 326,
      "endLine" : 334,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 119
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1129,
      "endLine" : 1137,
      "cleanedStartLine" : 458,
      "cleanedEndLine" : 466
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 773,
      "endLine" : 781,
      "cleanedStartLine" : 313,
      "cleanedEndLine" : 321
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 60,
      "endLine" : 68,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 261,
      "endLine" : 269,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 640,
      "endLine" : 648,
      "cleanedStartLine" : 250,
      "cleanedEndLine" : 258
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 501,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 201
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 443,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 184
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 326,
      "endLine" : 334,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 119
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1053,
      "endLine" : 1061,
      "cleanedStartLine" : 427,
      "cleanedEndLine" : 435
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 501,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 201
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 333,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 501,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 201
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 388,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 162
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 834,
      "endLine" : 842,
      "cleanedStartLine" : 334,
      "cleanedEndLine" : 342
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1129,
      "endLine" : 1137,
      "cleanedStartLine" : 458,
      "cleanedEndLine" : 466
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 501,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 201
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 275,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 117
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 400,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 350,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 140
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 261,
      "endLine" : 269,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 761,
      "endLine" : 769,
      "cleanedStartLine" : 301,
      "cleanedEndLine" : 309
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 701,
      "endLine" : 709,
      "cleanedStartLine" : 275,
      "cleanedEndLine" : 283
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 834,
      "endLine" : 842,
      "cleanedStartLine" : 334,
      "cleanedEndLine" : 342
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 261,
      "endLine" : 269,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 896,
      "endLine" : 904,
      "cleanedStartLine" : 359,
      "cleanedEndLine" : 367
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 261,
      "endLine" : 269,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 834,
      "endLine" : 842,
      "cleanedStartLine" : 334,
      "cleanedEndLine" : 342
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 451,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 181
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 443,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 184
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 701,
      "endLine" : 709,
      "cleanedStartLine" : 275,
      "cleanedEndLine" : 283
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 761,
      "endLine" : 769,
      "cleanedStartLine" : 301,
      "cleanedEndLine" : 309
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 142,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 463,
      "endLine" : 471,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 173
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 519,
      "endLine" : 527,
      "cleanedStartLine" : 187,
      "cleanedEndLine" : 195
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 102,
      "endLine" : 110,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 114,
      "endLine" : 122,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 400,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 99,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 146,
      "endLine" : 155,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 161,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 350,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 140
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 501,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 201
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 120,
      "endLine" : 130,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 90
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 174,
      "endLine" : 184,
      "cleanedStartLine" : 116,
      "cleanedEndLine" : 124
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 451,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 181
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 94,
      "endLine" : 102,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 278,
      "endLine" : 286,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 173
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 162,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 73
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 221,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 185,
      "endLine" : 193,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 575,
      "endLine" : 583,
      "cleanedStartLine" : 209,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 100,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 82,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 130,
      "endLine" : 138,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 276,
      "endLine" : 284,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 168,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 130,
      "endLine" : 138,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 186,
      "endLine" : 194,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 38,
      "endLine" : 46,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 400,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 162,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 73
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 33,
      "endLine" : 41,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 94,
      "endLine" : 102,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 400,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 221,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 153,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 64,
      "endLine" : 72,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 94,
      "endLine" : 103,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 98,
      "endLine" : 106,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 94,
      "endLine" : 102,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/DataSeriesTest.kt",
        "extension" : "kt",
        "linesOfCode" : 144,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 125,
      "endLine" : 139,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/DataSeriesTimeStandardizeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 88,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 69,
      "startLine" : 81,
      "endLine" : 95,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 183,
      "endLine" : 191,
      "cleanedStartLine" : 140,
      "cleanedEndLine" : 148
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 108,
      "endLine" : 116,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 168,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 38,
      "endLine" : 46,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 32,
      "endLine" : 40,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 168,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 94,
      "endLine" : 102,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 72,
      "endLine" : 80,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 183,
      "endLine" : 191,
      "cleanedStartLine" : 140,
      "cleanedEndLine" : 148
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 111,
      "endLine" : 119,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 72,
      "endLine" : 80,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 67,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 61,
      "endLine" : 69,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/MappingAsDiscreteTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 61,
      "endLine" : 69,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/MappingAsDiscreteTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 99,
      "endLine" : 107,
      "cleanedStartLine" : 72,
      "cleanedEndLine" : 80
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 35,
      "endLine" : 43,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 45,
      "endLine" : 53,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 507,
      "endLine" : 515,
      "cleanedStartLine" : 431,
      "cleanedEndLine" : 439
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 145,
      "endLine" : 153,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 241,
      "endLine" : 249,
      "cleanedStartLine" : 191,
      "cleanedEndLine" : 199
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 112,
      "endLine" : 120,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 107,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 98,
      "endLine" : 106,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 72,
      "endLine" : 80,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 178,
      "endLine" : 188,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 132
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 122,
      "endLine" : 132,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 88
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 194,
      "endLine" : 202,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1129,
      "endLine" : 1137,
      "cleanedStartLine" : 458,
      "cleanedEndLine" : 466
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 194,
      "endLine" : 202,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1053,
      "endLine" : 1061,
      "cleanedStartLine" : 427,
      "cleanedEndLine" : 435
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 301,
      "endLine" : 309,
      "cleanedStartLine" : 243,
      "cleanedEndLine" : 251
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 75,
      "endLine" : 84,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 194,
      "endLine" : 202,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 896,
      "endLine" : 904,
      "cleanedStartLine" : 359,
      "cleanedEndLine" : 367
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 194,
      "endLine" : 202,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 834,
      "endLine" : 842,
      "cleanedStartLine" : 334,
      "cleanedEndLine" : 342
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 194,
      "endLine" : 202,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 761,
      "endLine" : 769,
      "cleanedStartLine" : 301,
      "cleanedEndLine" : 309
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 580,
      "endLine" : 588,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 233
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1053,
      "endLine" : 1061,
      "cleanedStartLine" : 427,
      "cleanedEndLine" : 435
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 54,
      "endLine" : 64,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 72,
      "endLine" : 82,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 185,
      "endLine" : 193,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 463,
      "endLine" : 471,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 173
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 580,
      "endLine" : 588,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 233
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1129,
      "endLine" : 1137,
      "cleanedStartLine" : 458,
      "cleanedEndLine" : 466
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 194,
      "endLine" : 202,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 701,
      "endLine" : 709,
      "cleanedStartLine" : 275,
      "cleanedEndLine" : 283
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/intern/standardizing/TimeZoneDetectionTest.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 50,
      "endLine" : 59,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/intern/standardizing/TimeZoneDetectionTest.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 63,
      "endLine" : 72,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 161,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 194,
      "endLine" : 202,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 640,
      "endLine" : 648,
      "cleanedStartLine" : 250,
      "cleanedEndLine" : 258
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 917,
      "endLine" : 925,
      "cleanedStartLine" : 801,
      "cleanedEndLine" : 809
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 194,
      "endLine" : 202,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 580,
      "endLine" : 588,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 233
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 276,
      "endLine" : 284,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 94,
      "endLine" : 102,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 88,
      "endLine" : 96,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 79,
      "endLine" : 87,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 76,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 186,
      "endLine" : 194,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 138,
      "endLine" : 146,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 146,
      "endLine" : 155,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 194,
      "endLine" : 202,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 456,
      "endLine" : 464,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 178
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 142,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 161,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 168,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 142,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 99,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 139,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 111,
      "endLine" : 119,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 88,
      "endLine" : 96,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 125,
      "endLine" : 133,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 146,
      "endLine" : 155,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 125,
      "endLine" : 133,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 139,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ContourfMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 38,
      "endLine" : 46,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/RibbonMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 23,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 36,
      "endLine" : 44,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 350,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 140
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 451,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 181
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 98,
      "endLine" : 106,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 87,
      "endLine" : 95,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 350,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 140
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 501,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 201
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 350,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 140
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 162,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 73
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 519,
      "endLine" : 527,
      "cleanedStartLine" : 187,
      "cleanedEndLine" : 195
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 575,
      "endLine" : 583,
      "cleanedStartLine" : 209,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 350,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 140
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 221,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 350,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 140
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 400,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 221,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 100,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 110,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 917,
      "endLine" : 925,
      "cleanedStartLine" : 801,
      "cleanedEndLine" : 809
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 141,
      "endLine" : 149,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 162,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 73
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 153,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 65,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 153,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 95,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 38,
      "endLine" : 46,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 45,
      "endLine" : 53,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/RibbonMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 23,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 36,
      "endLine" : 44,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SmoothMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 32,
      "endLine" : 40,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/BinHexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 32,
      "endLine" : 40,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 30,
      "endLine" : 38,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 48,
      "endLine" : 56,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 368,
      "endLine" : 376,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 150
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 125,
      "endLine" : 133,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 99,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 48,
      "endLine" : 56,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 313,
      "endLine" : 321,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 127
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 168,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 211,
      "endLine" : 219,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 173
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 98,
      "endLine" : 106,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 35,
      "endLine" : 43,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 74,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 501,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 201
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 221,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 501,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 201
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 162,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 73
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 241,
      "endLine" : 249,
      "cleanedStartLine" : 191,
      "cleanedEndLine" : 199
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 277,
      "endLine" : 285,
      "cleanedStartLine" : 223,
      "cleanedEndLine" : 231
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 142,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 105,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 114,
      "endLine" : 122,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 35,
      "endLine" : 43,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 32,
      "endLine" : 40,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 48,
      "endLine" : 56,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 201,
      "endLine" : 209,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 48,
      "endLine" : 56,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 142,
      "endLine" : 150,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 456,
      "endLine" : 464,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 178
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1053,
      "endLine" : 1061,
      "cleanedStartLine" : 427,
      "cleanedEndLine" : 435
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ContourfMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 38,
      "endLine" : 46,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SmoothMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 32,
      "endLine" : 40,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 76,
      "endLine" : 84,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 76,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 456,
      "endLine" : 464,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 178
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1129,
      "endLine" : 1137,
      "cleanedStartLine" : 458,
      "cleanedEndLine" : 466
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 161,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 74,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 456,
      "endLine" : 464,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 178
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 761,
      "endLine" : 769,
      "cleanedStartLine" : 301,
      "cleanedEndLine" : 309
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 456,
      "endLine" : 464,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 178
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 896,
      "endLine" : 904,
      "cleanedStartLine" : 359,
      "cleanedEndLine" : 367
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 456,
      "endLine" : 464,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 178
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 834,
      "endLine" : 842,
      "cleanedStartLine" : 334,
      "cleanedEndLine" : 342
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 456,
      "endLine" : 464,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 178
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 968,
      "endLine" : 976,
      "cleanedStartLine" : 389,
      "cleanedEndLine" : 397
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 142,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1066,
      "endLine" : 1074,
      "cleanedStartLine" : 440,
      "cleanedEndLine" : 448
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 101,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 100,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 138,
      "endLine" : 146,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 99,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 72,
      "endLine" : 82,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 61,
      "endLine" : 71,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 456,
      "endLine" : 464,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 178
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 580,
      "endLine" : 588,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 233
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 456,
      "endLine" : 464,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 178
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 701,
      "endLine" : 709,
      "cleanedStartLine" : 275,
      "cleanedEndLine" : 283
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1066,
      "endLine" : 1074,
      "cleanedStartLine" : 440,
      "cleanedEndLine" : 448
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 130,
      "endLine" : 138,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 456,
      "endLine" : 464,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 178
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 515,
      "endLine" : 523,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 61,
      "endLine" : 71,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 80,
      "endLine" : 90,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 156,
      "endLine" : 164,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 130,
      "endLine" : 138,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 156,
      "endLine" : 164,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 86,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 153,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 261,
      "endLine" : 269,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 968,
      "endLine" : 976,
      "cleanedStartLine" : 389,
      "cleanedEndLine" : 397
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 388,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 162
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 277,
      "endLine" : 285,
      "cleanedStartLine" : 223,
      "cleanedEndLine" : 231
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 129,
      "endLine" : 137,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 443,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 184
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 86,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 332,
      "endLine" : 340,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 382,
      "endLine" : 390,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 150
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 451,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 181
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 501,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 201
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 350,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 140
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 388,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 162
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 350,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 140
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 443,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 184
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 350,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 140
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 275,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 117
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 332,
      "endLine" : 340,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 433,
      "endLine" : 441,
      "cleanedStartLine" : 163,
      "cleanedEndLine" : 171
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 332,
      "endLine" : 340,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 483,
      "endLine" : 491,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 191
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 350,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 140
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 333,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 261,
      "endLine" : 269,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1053,
      "endLine" : 1061,
      "cleanedStartLine" : 427,
      "cleanedEndLine" : 435
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 153,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 782,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 322
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 275,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 117
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 261,
      "endLine" : 269,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1129,
      "endLine" : 1137,
      "cleanedStartLine" : 458,
      "cleanedEndLine" : 466
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 211,
      "endLine" : 219,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 173
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 87,
      "endLine" : 95,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 333,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 95,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 761,
      "endLine" : 769,
      "cleanedStartLine" : 301,
      "cleanedEndLine" : 309
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1053,
      "endLine" : 1061,
      "cleanedStartLine" : 427,
      "cleanedEndLine" : 435
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 414,
      "endLine" : 422,
      "cleanedStartLine" : 344,
      "cleanedEndLine" : 352
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 507,
      "endLine" : 515,
      "cleanedStartLine" : 431,
      "cleanedEndLine" : 439
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 443,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 184
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 761,
      "endLine" : 769,
      "cleanedStartLine" : 301,
      "cleanedEndLine" : 309
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1129,
      "endLine" : 1137,
      "cleanedStartLine" : 458,
      "cleanedEndLine" : 466
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 388,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 162
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 333,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 208,
      "endLine" : 218,
      "cleanedStartLine" : 163,
      "cleanedEndLine" : 171
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 226,
      "endLine" : 236,
      "cleanedStartLine" : 179,
      "cleanedEndLine" : 187
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 275,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 117
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 146,
      "endLine" : 155,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 110,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 153,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 987,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 408
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/BinHexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 32,
      "endLine" : 40,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 28,
      "endLine" : 36,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 94,
      "endLine" : 102,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 111,
      "endLine" : 119,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 451,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 181
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 221,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 95
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 382,
      "endLine" : 390,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 150
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 483,
      "endLine" : 491,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 191
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 139,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 382,
      "endLine" : 390,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 150
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 433,
      "endLine" : 441,
      "cleanedStartLine" : 163,
      "cleanedEndLine" : 171
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 761,
      "endLine" : 769,
      "cleanedStartLine" : 301,
      "cleanedEndLine" : 309
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 968,
      "endLine" : 976,
      "cleanedStartLine" : 389,
      "cleanedEndLine" : 397
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 400,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 275,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 117
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 400,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 443,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 184
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 33,
      "endLine" : 41,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 72,
      "endLine" : 80,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 277,
      "endLine" : 285,
      "cleanedStartLine" : 223,
      "cleanedEndLine" : 231
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 136,
      "endLine" : 144,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 400,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 388,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 162
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 241,
      "endLine" : 249,
      "cleanedStartLine" : 191,
      "cleanedEndLine" : 199
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 129,
      "endLine" : 137,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 112,
      "endLine" : 120,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 168,
      "endLine" : 176,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 35,
      "endLine" : 43,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 38,
      "endLine" : 46,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 414,
      "endLine" : 422,
      "cleanedStartLine" : 344,
      "cleanedEndLine" : 352
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 176,
      "endLine" : 184,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 122,
      "endLine" : 132,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 174,
      "endLine" : 184,
      "cleanedStartLine" : 116,
      "cleanedEndLine" : 124
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 88,
      "endLine" : 96,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 278,
      "endLine" : 286,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 173
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PolygonMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 28,
      "endLine" : 36,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/RibbonMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 23,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 36,
      "endLine" : 44,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 153,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 161,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 577,
      "endLine" : 587,
      "cleanedStartLine" : 475,
      "cleanedEndLine" : 483
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 594,
      "endLine" : 604,
      "cleanedStartLine" : 490,
      "cleanedEndLine" : 498
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/Bin2dMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 37,
      "endLine" : 45,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 30,
      "endLine" : 38,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 185,
      "endLine" : 193,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 241,
      "endLine" : 249,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 85
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 117,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 640,
      "endLine" : 648,
      "cleanedStartLine" : 250,
      "cleanedEndLine" : 258
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 701,
      "endLine" : 709,
      "cleanedStartLine" : 275,
      "cleanedEndLine" : 283
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 168,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 102,
      "endLine" : 110,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 102,
      "endLine" : 110,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 231,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 94,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 451,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 181
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 162,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 73
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 388,
      "endLine" : 396,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 145
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1129,
      "endLine" : 1137,
      "cleanedStartLine" : 458,
      "cleanedEndLine" : 466
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 241,
      "endLine" : 249,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 407,
      "endLine" : 415,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 151
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 241,
      "endLine" : 249,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 519,
      "endLine" : 527,
      "cleanedStartLine" : 187,
      "cleanedEndLine" : 195
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 388,
      "endLine" : 396,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 145
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1053,
      "endLine" : 1061,
      "cleanedStartLine" : 427,
      "cleanedEndLine" : 435
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 99,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 153,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 121,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 125,
      "endLine" : 133,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 138,
      "endLine" : 146,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 45,
      "endLine" : 54,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 27,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 34,
      "endLine" : 43,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 388,
      "endLine" : 396,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 145
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 896,
      "endLine" : 904,
      "cleanedStartLine" : 359,
      "cleanedEndLine" : 367
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 388,
      "endLine" : 396,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 145
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 834,
      "endLine" : 842,
      "cleanedStartLine" : 334,
      "cleanedEndLine" : 342
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 145,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 277,
      "endLine" : 285,
      "cleanedStartLine" : 223,
      "cleanedEndLine" : 231
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 112,
      "endLine" : 120,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 388,
      "endLine" : 396,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 145
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 761,
      "endLine" : 769,
      "cleanedStartLine" : 301,
      "cleanedEndLine" : 309
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 118,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 213,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 128,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 142,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 168,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 153,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 407,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 156
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 388,
      "endLine" : 396,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 145
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 580,
      "endLine" : 588,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 233
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 45,
      "endLine" : 53,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 388,
      "endLine" : 396,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 145
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 701,
      "endLine" : 709,
      "cleanedStartLine" : 275,
      "cleanedEndLine" : 283
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 122,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 407,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 156
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1142,
      "endLine" : 1150,
      "cleanedStartLine" : 471,
      "cleanedEndLine" : 479
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 130,
      "endLine" : 138,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 211,
      "endLine" : 219,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 173
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 108,
      "endLine" : 116,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1142,
      "endLine" : 1150,
      "cleanedStartLine" : 471,
      "cleanedEndLine" : 479
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 62,
      "endLine" : 70,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 105,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 94,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 407,
      "endLine" : 415,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 151
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 575,
      "endLine" : 583,
      "cleanedStartLine" : 209,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 100,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 534,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 215
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 183,
      "endLine" : 191,
      "cleanedStartLine" : 140,
      "cleanedEndLine" : 148
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 98,
      "endLine" : 106,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 123,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 132,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 117,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 173,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 94,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 97,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 142,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 153,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 107,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 74,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 88,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 782,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 322
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/chunks/PngChunkBKGD.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 103,
      "endLine" : 113,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/chunks/PngChunkTRNS.kt",
        "extension" : "kt",
        "linesOfCode" : 91,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 86,
      "endLine" : 96,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 186,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 102,
      "endLine" : 110,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 94,
      "endLine" : 102,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 142,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 161,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 407,
      "endLine" : 415,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 151
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 463,
      "endLine" : 471,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 173
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 153,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 534,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 215
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 84,
      "endLine" : 92,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 154,
      "endLine" : 161,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 139,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 253,
      "endLine" : 266,
      "cleanedStartLine" : 178,
      "cleanedEndLine" : 185
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 102,
      "endLine" : 115,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 51,
      "endLine" : 58,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 127,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 51,
      "endLine" : 58,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 168,
      "endLine" : 175,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 253,
      "endLine" : 266,
      "cleanedStartLine" : 178,
      "cleanedEndLine" : 185
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 216,
      "endLine" : 229,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 153
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 253,
      "endLine" : 266,
      "cleanedStartLine" : 178,
      "cleanedEndLine" : 185
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 127,
      "endLine" : 140,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 92
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 116,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 391,
      "endLine" : 398,
      "cleanedStartLine" : 151,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 54,
      "endLine" : 61,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 585,
      "endLine" : 592,
      "cleanedStartLine" : 219,
      "cleanedEndLine" : 226
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 250,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 391,
      "endLine" : 398,
      "cleanedStartLine" : 151,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 102,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 185,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 59
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 172,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 216,
      "endLine" : 229,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 153
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 243,
      "endLine" : 256,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 171
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 126,
      "endLine" : 133,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/DensityRidgesStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/YDensityStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 529,
      "endLine" : 536,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 172,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 138,
      "endLine" : 145,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 138,
      "endLine" : 145,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 250,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 165,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 116,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 473,
      "endLine" : 480,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 417,
      "endLine" : 424,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 361,
      "endLine" : 368,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 306,
      "endLine" : 313,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 116
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 138,
      "endLine" : 145,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 172,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 306,
      "endLine" : 313,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 116
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 250,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 529,
      "endLine" : 536,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 204
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 126,
      "endLine" : 133,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 127,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 529,
      "endLine" : 536,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 204
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 97,
      "endLine" : 110,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 154,
      "endLine" : 167,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 97,
      "endLine" : 110,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 223,
      "endLine" : 236,
      "cleanedStartLine" : 157,
      "cleanedEndLine" : 164
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 128,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 585,
      "endLine" : 592,
      "cleanedStartLine" : 219,
      "cleanedEndLine" : 226
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/BinHexStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 17,
      "endLine" : 25,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/Density2dStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 139,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 97,
      "endLine" : 110,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 253,
      "endLine" : 266,
      "cleanedStartLine" : 178,
      "cleanedEndLine" : 185
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 116,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 185,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 161,
      "endLine" : 168,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 146,
      "endLine" : 153,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 35,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 27,
      "endLine" : 34,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 140,
      "endLine" : 147,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 115,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 529,
      "endLine" : 536,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 230,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 473,
      "endLine" : 480,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 306,
      "endLine" : 313,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 116
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 127,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 369,
      "endLine" : 376,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 150
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 42,
      "endLine" : 49,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 117,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 417,
      "endLine" : 424,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 659,
      "endLine" : 666,
      "cleanedStartLine" : 573,
      "cleanedEndLine" : 580
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 748,
      "endLine" : 755,
      "cleanedStartLine" : 653,
      "cleanedEndLine" : 660
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 361,
      "endLine" : 368,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 431,
      "endLine" : 440,
      "cleanedStartLine" : 361,
      "cleanedEndLine" : 368
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 459,
      "endLine" : 468,
      "cleanedStartLine" : 383,
      "cleanedEndLine" : 390
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 492,
      "endLine" : 499,
      "cleanedStartLine" : 192,
      "cleanedEndLine" : 199
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 115,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 116,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 585,
      "endLine" : 592,
      "cleanedStartLine" : 219,
      "cleanedEndLine" : 226
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 251,
      "endLine" : 258,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 250,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/Density2dStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/DensityRidgesStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 104,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 84,
      "endLine" : 92,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 529,
      "endLine" : 536,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 251,
      "endLine" : 258,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 126,
      "endLine" : 133,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 473,
      "endLine" : 480,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 139,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 251,
      "endLine" : 258,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 417,
      "endLine" : 424,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 44,
      "endLine" : 51,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 17,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 30,
      "endLine" : 37,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 361,
      "endLine" : 368,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 139,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 251,
      "endLine" : 258,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 116,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 130,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 115,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 283,
      "endLine" : 293,
      "cleanedStartLine" : 200,
      "cleanedEndLine" : 207
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 179,
      "endLine" : 189,
      "cleanedStartLine" : 121,
      "cleanedEndLine" : 128
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 116,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 165,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/themes/theme.kt",
        "extension" : "kt",
        "linesOfCode" : 327,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 319,
      "startLine" : 643,
      "endLine" : 650,
      "cleanedStartLine" : 272,
      "cleanedEndLine" : 279
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/themes/theme.kt",
        "extension" : "kt",
        "linesOfCode" : 327,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 319,
      "startLine" : 708,
      "endLine" : 715,
      "cleanedStartLine" : 294,
      "cleanedEndLine" : 301
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 117,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 183,
      "endLine" : 193,
      "cleanedStartLine" : 129,
      "cleanedEndLine" : 136
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 270,
      "endLine" : 280,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/Density2dStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/YDensityStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 74,
      "endLine" : 81,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 154,
      "endLine" : 167,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 115
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 216,
      "endLine" : 229,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 153
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 306,
      "endLine" : 313,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 116
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 306,
      "endLine" : 313,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 116
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 306,
      "endLine" : 313,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 116
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 126,
      "endLine" : 133,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 115,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 529,
      "endLine" : 536,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 361,
      "endLine" : 368,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 306,
      "endLine" : 313,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 116
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 473,
      "endLine" : 480,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ABLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SpokeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 417,
      "endLine" : 424,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 239,
      "endLine" : 246,
      "cleanedStartLine" : 190,
      "cleanedEndLine" : 197
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 63,
      "endLine" : 71,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 17,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 30,
      "endLine" : 37,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SpokeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 143,
      "endLine" : 150,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 42,
      "endLine" : 49,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 585,
      "endLine" : 592,
      "cleanedStartLine" : 219,
      "cleanedEndLine" : 226
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 103,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 585,
      "endLine" : 592,
      "cleanedStartLine" : 219,
      "cleanedEndLine" : 226
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 250,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 176,
      "endLine" : 183,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 232,
      "endLine" : 239,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 95
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 134,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 139,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ABLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/VLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 17,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 30,
      "endLine" : 37,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/VLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 94,
      "endLine" : 101,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 120,
      "endLine" : 127,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/Bin2dStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 22,
      "endLine" : 30,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/DensityRidgesStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 251,
      "endLine" : 258,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 102,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 103,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 195,
      "endLine" : 202,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 138,
      "endLine" : 145,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 585,
      "endLine" : 592,
      "cleanedStartLine" : 219,
      "cleanedEndLine" : 226
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 306,
      "endLine" : 313,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 116
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 128,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 585,
      "endLine" : 592,
      "cleanedStartLine" : 219,
      "cleanedEndLine" : 226
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 126,
      "endLine" : 133,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 585,
      "endLine" : 592,
      "cleanedStartLine" : 219,
      "cleanedEndLine" : 226
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/BinHexStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 17,
      "endLine" : 25,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/YDensityStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 35,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 154,
      "endLine" : 167,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 115
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 102,
      "endLine" : 115,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 127,
      "endLine" : 140,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 92
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 243,
      "endLine" : 256,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 171
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 35,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SpokeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 154,
      "endLine" : 167,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 115
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 127,
      "endLine" : 140,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 92
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 127,
      "endLine" : 140,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 92
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 216,
      "endLine" : 229,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 153
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 202,
      "endLine" : 209,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 42,
      "endLine" : 49,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 27,
      "endLine" : 34,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/VLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 442,
      "endLine" : 449,
      "cleanedStartLine" : 172,
      "cleanedEndLine" : 179
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 97,
      "endLine" : 110,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 127,
      "endLine" : 140,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 92
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 127,
      "endLine" : 140,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 92
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 153,
      "endLine" : 166,
      "cleanedStartLine" : 103,
      "cleanedEndLine" : 110
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 297,
      "endLine" : 304,
      "cleanedStartLine" : 241,
      "cleanedEndLine" : 248
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 130,
      "endLine" : 137,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 93,
      "endLine" : 100,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 140,
      "endLine" : 147,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 140,
      "endLine" : 147,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 195,
      "endLine" : 202,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 116,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 17,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 30,
      "endLine" : 37,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 35,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 140,
      "endLine" : 147,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 251,
      "endLine" : 258,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 125,
      "endLine" : 138,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 102,
      "endLine" : 115,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/PlotSizeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/PlotTitleTest.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 20,
      "endLine" : 28,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 130,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 44,
      "endLine" : 51,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 27,
      "endLine" : 34,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/Density2dStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/PointDensityStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 35,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/VLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/Bin2dStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 22,
      "endLine" : 30,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/SinaStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 130,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 250,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 102,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 223,
      "endLine" : 236,
      "cleanedStartLine" : 157,
      "cleanedEndLine" : 164
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 243,
      "endLine" : 256,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 171
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 26,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 36,
      "endLine" : 44,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 31,
      "endLine" : 39,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 27,
      "endLine" : 34,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SpokeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 126,
      "endLine" : 133,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 361,
      "endLine" : 368,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 417,
      "endLine" : 424,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 115,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/spatial/SpatialParamTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 103,
      "endLine" : 111,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 58
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/spatial/SpatialParamTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 127,
      "endLine" : 135,
      "cleanedStartLine" : 72,
      "cleanedEndLine" : 79
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 75,
      "endLine" : 82,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 223,
      "endLine" : 236,
      "cleanedStartLine" : 157,
      "cleanedEndLine" : 164
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 153,
      "endLine" : 166,
      "cleanedStartLine" : 103,
      "cleanedEndLine" : 110
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/joint/JointPlotBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/residual/ResidualPlotBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 116,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SpokeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/VLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 58,
      "endLine" : 65,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 76,
      "endLine" : 83,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 361,
      "endLine" : 368,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 529,
      "endLine" : 536,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 115,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 47,
      "endLine" : 54,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 232,
      "endLine" : 239,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 95
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 47,
      "endLine" : 54,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 176,
      "endLine" : 183,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 154,
      "endLine" : 161,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 179,
      "endLine" : 189,
      "cleanedStartLine" : 121,
      "cleanedEndLine" : 128
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 270,
      "endLine" : 280,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 165,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 250,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 117,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 17,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 30,
      "endLine" : 37,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 154,
      "endLine" : 161,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 146,
      "endLine" : 153,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 191,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 191,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 235,
      "endLine" : 242,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 116
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 185,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 473,
      "endLine" : 480,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 182
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 529,
      "endLine" : 536,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 115,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 76,
      "endLine" : 83,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 62,
      "endLine" : 69,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SpokeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GuidesTest.kt",
        "extension" : "kt",
        "linesOfCode" : 162,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 141,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GuidesTest.kt",
        "extension" : "kt",
        "linesOfCode" : 162,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 141,
      "startLine" : 85,
      "endLine" : 92,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 70
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 185,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 128,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 127,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/guide.kt",
        "extension" : "kt",
        "linesOfCode" : 128,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 119,
      "startLine" : 37,
      "endLine" : 44,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/guide.kt",
        "extension" : "kt",
        "linesOfCode" : 128,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 119,
      "startLine" : 198,
      "endLine" : 205,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 87
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/guide.kt",
        "extension" : "kt",
        "linesOfCode" : 128,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 119,
      "startLine" : 37,
      "endLine" : 44,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/guide.kt",
        "extension" : "kt",
        "linesOfCode" : 128,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 119,
      "startLine" : 226,
      "endLine" : 233,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 185,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 59
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/DotplotAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 28,
      "endLine" : 36,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/YDotplotAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 23,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 29,
      "endLine" : 37,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/VLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 117,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 132,
      "endLine" : 139,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 194,
      "endLine" : 201,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 195,
      "endLine" : 202,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 585,
      "endLine" : 592,
      "cleanedStartLine" : 219,
      "cleanedEndLine" : 226
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 132,
      "endLine" : 139,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 261,
      "endLine" : 268,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 117,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 165,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 230,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 76
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 195,
      "endLine" : 202,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 361,
      "endLine" : 368,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 117,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 195,
      "endLine" : 202,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 473,
      "endLine" : 480,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 341,
      "endLine" : 348,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 140,
      "endLine" : 147,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 103,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 130,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 103,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 128,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 117,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/Bin2dStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 22,
      "endLine" : 30,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/Density2dStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 44,
      "endLine" : 51,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 183,
      "endLine" : 193,
      "cleanedStartLine" : 129,
      "cleanedEndLine" : 136
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 283,
      "endLine" : 293,
      "cleanedStartLine" : 200,
      "cleanedEndLine" : 207
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 659,
      "endLine" : 666,
      "cleanedStartLine" : 573,
      "cleanedEndLine" : 580
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 128,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ABLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/PointDensityStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/YDensityStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 165,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 29,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 51,
      "endLine" : 58,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 27,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 41,
      "endLine" : 48,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 128,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 316,
      "endLine" : 323,
      "cleanedStartLine" : 258,
      "cleanedEndLine" : 265
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/Bin2dStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 22,
      "endLine" : 30,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/YDensityStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 417,
      "endLine" : 424,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 126,
      "endLine" : 133,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 417,
      "endLine" : 424,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 177,
      "endLine" : 184,
      "cleanedStartLine" : 58,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 168,
      "endLine" : 175,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 276,
      "endLine" : 283,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 103
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 168,
      "endLine" : 175,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 218,
      "endLine" : 225,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 417,
      "endLine" : 424,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 250,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 120,
      "endLine" : 127,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 75,
      "endLine" : 82,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 261,
      "endLine" : 268,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 194,
      "endLine" : 201,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 117,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 417,
      "endLine" : 424,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 120,
      "endLine" : 127,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 172,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 102,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ABLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 27,
      "endLine" : 34,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 127,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 103,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 115,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 185,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 128,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 230,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 102,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 473,
      "endLine" : 480,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 182
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 297,
      "endLine" : 304,
      "cleanedStartLine" : 241,
      "cleanedEndLine" : 248
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 108,
      "endLine" : 115,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 97,
      "endLine" : 110,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 243,
      "endLine" : 256,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 171
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/corr/CorrPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 376,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 318,
      "startLine" : 96,
      "endLine" : 103,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/corr/CorrPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 376,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 318,
      "startLine" : 110,
      "endLine" : 117,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 117,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 473,
      "endLine" : 480,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 182
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 54,
      "endLine" : 61,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 125,
      "endLine" : 138,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 243,
      "endLine" : 256,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 171
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 473,
      "endLine" : 480,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 182
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 126,
      "endLine" : 133,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 97,
      "endLine" : 110,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 153,
      "endLine" : 166,
      "cleanedStartLine" : 103,
      "cleanedEndLine" : 110
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 94,
      "endLine" : 101,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 97,
      "endLine" : 110,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 216,
      "endLine" : 229,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 153
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ABLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 44,
      "endLine" : 51,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 185,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 35,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 115,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/Bin2dStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 22,
      "endLine" : 30,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/PointDensityStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 138,
      "endLine" : 145,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 195,
      "endLine" : 202,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 316,
      "endLine" : 323,
      "cleanedStartLine" : 258,
      "cleanedEndLine" : 265
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 118,
      "endLine" : 125,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 251,
      "endLine" : 258,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 24,
      "endLine" : 34,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 29,
      "endLine" : 39,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 58,
      "endLine" : 65,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/DensityRidgesStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/SinaStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 161,
      "endLine" : 168,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 117,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 153,
      "endLine" : 166,
      "cleanedStartLine" : 103,
      "cleanedEndLine" : 110
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 216,
      "endLine" : 229,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 153
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 102,
      "endLine" : 115,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 216,
      "endLine" : 229,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 153
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 54,
      "endLine" : 61,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 407,
      "endLine" : 414,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 150
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 115,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 195,
      "endLine" : 202,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 126,
      "endLine" : 133,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 195,
      "endLine" : 202,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 54,
      "endLine" : 61,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 463,
      "endLine" : 470,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 103,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 195,
      "endLine" : 202,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 250,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 135,
      "endLine" : 142,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 195,
      "endLine" : 202,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 102,
      "endLine" : 115,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 243,
      "endLine" : 256,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 171
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 54,
      "endLine" : 61,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 519,
      "endLine" : 526,
      "cleanedStartLine" : 187,
      "cleanedEndLine" : 194
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 17,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 30,
      "endLine" : 37,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 146,
      "endLine" : 153,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 135,
      "endLine" : 142,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 146,
      "endLine" : 153,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 44,
      "endLine" : 51,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 138,
      "endLine" : 145,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 251,
      "endLine" : 258,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 195,
      "endLine" : 202,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 161,
      "endLine" : 168,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 139,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 138,
      "endLine" : 145,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 251,
      "endLine" : 258,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 138,
      "endLine" : 145,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 195,
      "endLine" : 202,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 54,
      "endLine" : 61,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 575,
      "endLine" : 582,
      "cleanedStartLine" : 209,
      "cleanedEndLine" : 216
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 125,
      "endLine" : 138,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 216,
      "endLine" : 229,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 153
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 125,
      "endLine" : 138,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 153,
      "endLine" : 166,
      "cleanedStartLine" : 103,
      "cleanedEndLine" : 110
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 185,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 165,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 26,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 36,
      "endLine" : 44,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 29,
      "endLine" : 37,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/BinHexStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 17,
      "endLine" : 25,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/PointDensityStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 130,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 44,
      "endLine" : 51,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SpokeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 223,
      "endLine" : 236,
      "cleanedStartLine" : 157,
      "cleanedEndLine" : 164
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 102,
      "endLine" : 115,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 102,
      "endLine" : 115,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 153,
      "endLine" : 166,
      "cleanedStartLine" : 103,
      "cleanedEndLine" : 110
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 117,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 172,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 93,
      "endLine" : 100,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 120,
      "endLine" : 127,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 171,
      "endLine" : 178,
      "cleanedStartLine" : 113,
      "cleanedEndLine" : 120
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 261,
      "endLine" : 268,
      "cleanedStartLine" : 174,
      "cleanedEndLine" : 181
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 223,
      "endLine" : 236,
      "cleanedStartLine" : 157,
      "cleanedEndLine" : 164
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 127,
      "endLine" : 140,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 92
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 138,
      "endLine" : 145,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 585,
      "endLine" : 592,
      "cleanedStartLine" : 219,
      "cleanedEndLine" : 226
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 575,
      "endLine" : 582,
      "cleanedStartLine" : 209,
      "cleanedEndLine" : 216
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 103,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 130,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 32,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 29,
      "endLine" : 37,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 230,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 76
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 230,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 76
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 102,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 140,
      "endLine" : 147,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 250,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 172,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 140,
      "endLine" : 147,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 138,
      "endLine" : 145,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 529,
      "endLine" : 536,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/DensityRidgesStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/PointDensityStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 54,
      "endLine" : 61,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 241,
      "endLine" : 248,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 84
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 288,
      "endLine" : 295,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 115
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 103,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 54,
      "endLine" : 61,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 185,
      "endLine" : 192,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 62
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 130,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 407,
      "endLine" : 414,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 150
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 27,
      "endLine" : 34,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 463,
      "endLine" : 470,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 128,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 519,
      "endLine" : 526,
      "cleanedStartLine" : 187,
      "cleanedEndLine" : 194
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/ImageLineByte.kt",
        "extension" : "kt",
        "linesOfCode" : 146,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 123,
      "startLine" : 141,
      "endLine" : 153,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 87
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/ImageLineInt.kt",
        "extension" : "kt",
        "linesOfCode" : 144,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 154,
      "endLine" : 166,
      "cleanedStartLine" : 71,
      "cleanedEndLine" : 78
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 361,
      "endLine" : 368,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 165,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 64,
      "endLine" : 73,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 80,
      "endLine" : 89,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 117,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 64,
      "endLine" : 73,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 361,
      "endLine" : 368,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 250,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 102,
      "endLine" : 115,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 127,
      "endLine" : 140,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 92
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 115,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 361,
      "endLine" : 368,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 361,
      "endLine" : 368,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 126,
      "endLine" : 133,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/SinaStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/YDensityStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 115,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 97,
      "endLine" : 110,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 125,
      "endLine" : 138,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 128,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 172,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 130,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 32,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 31,
      "endLine" : 39,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 154,
      "endLine" : 167,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 115
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 223,
      "endLine" : 236,
      "cleanedStartLine" : 157,
      "cleanedEndLine" : 164
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 103,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 165,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 140,
      "endLine" : 147,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 361,
      "endLine" : 368,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 165,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 140,
      "endLine" : 147,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 417,
      "endLine" : 424,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 140,
      "endLine" : 147,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 306,
      "endLine" : 313,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 116
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/BinHexStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 17,
      "endLine" : 25,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/SinaStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 140,
      "endLine" : 147,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 473,
      "endLine" : 480,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 140,
      "endLine" : 147,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 529,
      "endLine" : 536,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 103,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 230,
      "endLine" : 237,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 165,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 116,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 473,
      "endLine" : 480,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 182
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 250,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LabelAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TextAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 230,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 76
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 132,
      "endLine" : 139,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1053,
      "endLine" : 1060,
      "cleanedStartLine" : 427,
      "cleanedEndLine" : 434
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 251,
      "endLine" : 258,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 38,
      "endLine" : 48,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 44,
      "endLine" : 54,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ABLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 17,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 30,
      "endLine" : 37,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 127,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 132,
      "endLine" : 139,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1129,
      "endLine" : 1136,
      "cleanedStartLine" : 458,
      "cleanedEndLine" : 465
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 126,
      "endLine" : 133,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 250,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 144,
      "endLine" : 151,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 121,
      "endLine" : 128,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 103,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 49,
      "endLine" : 56,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 42,
      "endLine" : 49,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 165,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 230,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 76
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 74,
      "endLine" : 81,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 126,
      "endLine" : 133,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 116,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 306,
      "endLine" : 313,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 116
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 585,
      "endLine" : 592,
      "cleanedStartLine" : 219,
      "cleanedEndLine" : 226
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 195,
      "endLine" : 202,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 251,
      "endLine" : 258,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 529,
      "endLine" : 536,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 132,
      "endLine" : 139,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 761,
      "endLine" : 768,
      "cleanedStartLine" : 301,
      "cleanedEndLine" : 308
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 132,
      "endLine" : 139,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 834,
      "endLine" : 841,
      "cleanedStartLine" : 334,
      "cleanedEndLine" : 341
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 251,
      "endLine" : 258,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 417,
      "endLine" : 424,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 127,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 80,
      "endLine" : 89,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 96,
      "endLine" : 105,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 103,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 128,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 132,
      "endLine" : 139,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 968,
      "endLine" : 975,
      "cleanedStartLine" : 389,
      "cleanedEndLine" : 396
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 251,
      "endLine" : 258,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 306,
      "endLine" : 313,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 116
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 102,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 185,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 59
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 132,
      "endLine" : 139,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 896,
      "endLine" : 903,
      "cleanedStartLine" : 359,
      "cleanedEndLine" : 366
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 172,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 140,
      "endLine" : 147,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 585,
      "endLine" : 592,
      "cleanedStartLine" : 219,
      "cleanedEndLine" : 226
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 102,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 165,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 32,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 26,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 36,
      "endLine" : 44,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1074,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 448
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/joint/JointPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 32,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/residual/ResidualPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 40,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 104,
      "endLine" : 111,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 127,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 102,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 146,
      "endLine" : 153,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 132,
      "endLine" : 139,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 701,
      "endLine" : 708,
      "cleanedStartLine" : 275,
      "cleanedEndLine" : 282
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 185,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 59
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 132,
      "endLine" : 139,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 580,
      "endLine" : 587,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 232
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 130,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/MappingAsDiscreteTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 28,
      "endLine" : 35,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/MappingAsDiscreteTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 53,
      "endLine" : 60,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 132,
      "endLine" : 139,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 640,
      "endLine" : 647,
      "cleanedStartLine" : 250,
      "cleanedEndLine" : 257
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 218,
      "endLine" : 225,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 132,
      "endLine" : 139,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 515,
      "endLine" : 522,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 203
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 103,
      "endLine" : 110,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/Bin2dStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 22,
      "endLine" : 30,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/BinHexStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 17,
      "endLine" : 25,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 172,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 103,
      "endLine" : 110,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 120,
      "endLine" : 127,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 276,
      "endLine" : 283,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 103
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 138,
      "endLine" : 145,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 306,
      "endLine" : 313,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 116
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/BinHexStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 17,
      "endLine" : 25,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/DensityRidgesStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 138,
      "endLine" : 145,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 361,
      "endLine" : 368,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 90,
      "endLine" : 97,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 62,
      "endLine" : 69,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 138,
      "endLine" : 145,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 417,
      "endLine" : 424,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 138,
      "endLine" : 145,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 473,
      "endLine" : 480,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 132,
      "endLine" : 139,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 456,
      "endLine" : 463,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 177
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SinaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 27,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 30,
      "endLine" : 38,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ViolinAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 26,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 132,
      "endLine" : 139,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 326,
      "endLine" : 333,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 118
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 132,
      "endLine" : 139,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 388,
      "endLine" : 395,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 144
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 306,
      "endLine" : 313,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 116
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 473,
      "endLine" : 480,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 165,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 212,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 533,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 915,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 378
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/ImageLineByte.kt",
        "extension" : "kt",
        "linesOfCode" : 146,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 123,
      "startLine" : 175,
      "endLine" : 187,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 115
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/ImageLineInt.kt",
        "extension" : "kt",
        "linesOfCode" : 144,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 192,
      "endLine" : 208,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 107
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 130,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 314,
      "endLine" : 321,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 127
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 42,
      "endLine" : 49,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 230,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 76
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/PointDensityStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/SinaStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 165,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 185,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 130,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 172,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1053,
      "endLine" : 1060,
      "cleanedStartLine" : 427,
      "cleanedEndLine" : 434
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1129,
      "endLine" : 1136,
      "cleanedStartLine" : 458,
      "cleanedEndLine" : 465
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 127,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PolygonAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 32,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SmoothAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 29,
      "endLine" : 37,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 250,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 986,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 407
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 126,
      "endLine" : 133,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 280,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 17,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 30,
      "endLine" : 37,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 27,
      "endLine" : 34,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 250,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 135,
      "endLine" : 142,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 139,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 185,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 230,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 76
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 223,
      "endLine" : 236,
      "cleanedStartLine" : 157,
      "cleanedEndLine" : 164
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 253,
      "endLine" : 266,
      "cleanedStartLine" : 178,
      "cleanedEndLine" : 185
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 968,
      "endLine" : 975,
      "cleanedStartLine" : 389,
      "cleanedEndLine" : 396
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 123,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 106,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 761,
      "endLine" : 768,
      "cleanedStartLine" : 301,
      "cleanedEndLine" : 308
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 834,
      "endLine" : 841,
      "cleanedStartLine" : 334,
      "cleanedEndLine" : 341
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 165,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 128,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 164,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 896,
      "endLine" : 903,
      "cleanedStartLine" : 359,
      "cleanedEndLine" : 366
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 230,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SpokeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 130,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/ImageLineByte.kt",
        "extension" : "kt",
        "linesOfCode" : 146,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 123,
      "startLine" : 73,
      "endLine" : 82,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/ImageLineInt.kt",
        "extension" : "kt",
        "linesOfCode" : 144,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 87,
      "endLine" : 96,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 102,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 130,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 127,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 529,
      "endLine" : 536,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 204
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 128,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 781,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 321
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 529,
      "endLine" : 536,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 204
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 250,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 640,
      "endLine" : 647,
      "cleanedStartLine" : 250,
      "cleanedEndLine" : 257
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ABLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 35,
      "endLine" : 42,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 701,
      "endLine" : 708,
      "cleanedStartLine" : 275,
      "cleanedEndLine" : 282
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/VLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 230,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 417,
      "endLine" : 424,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 585,
      "endLine" : 592,
      "cleanedStartLine" : 219,
      "cleanedEndLine" : 226
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 63,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 44,
      "endLine" : 51,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/VLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 345,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 406,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 127,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 125,
      "endLine" : 138,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 154,
      "endLine" : 167,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 241,
      "endLine" : 248,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 84
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 302,
      "endLine" : 309,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 182
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 341,
      "endLine" : 348,
      "cleanedStartLine" : 211,
      "cleanedEndLine" : 218
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 580,
      "endLine" : 587,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 232
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 302,
      "endLine" : 309,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 182
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 355,
      "endLine" : 362,
      "cleanedStartLine" : 224,
      "cleanedEndLine" : 231
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/guide.kt",
        "extension" : "kt",
        "linesOfCode" : 128,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 119,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/guide.kt",
        "extension" : "kt",
        "linesOfCode" : 128,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 119,
      "startLine" : 198,
      "endLine" : 205,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 87
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/spatial/SpatialParamTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 50,
      "endLine" : 58,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/spatial/SpatialParamTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 127,
      "endLine" : 135,
      "cleanedStartLine" : 72,
      "cleanedEndLine" : 79
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/guide.kt",
        "extension" : "kt",
        "linesOfCode" : 128,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 119,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/guide.kt",
        "extension" : "kt",
        "linesOfCode" : 128,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 119,
      "startLine" : 226,
      "endLine" : 233,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 172,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 116,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/spatial/SpatialParamTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 50,
      "endLine" : 58,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/spatial/SpatialParamTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 103,
      "endLine" : 111,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 62,
      "endLine" : 69,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 388,
      "endLine" : 395,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 144
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 70,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 102,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 116,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 456,
      "endLine" : 463,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 177
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 515,
      "endLine" : 522,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 203
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 302,
      "endLine" : 309,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 182
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 315,
      "endLine" : 322,
      "cleanedStartLine" : 187,
      "cleanedEndLine" : 194
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 230,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 76
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 660,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 270
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 130,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 93,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 720,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 294
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 326,
      "endLine" : 333,
      "cleanedStartLine" : 111,
      "cleanedEndLine" : 118
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 130,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 146,
      "endLine" : 153,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 185,
      "endLine" : 192,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 62
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 109,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/Density2dStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/SinaStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 13,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 19,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 284,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 100
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 99,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1150,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 479
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 293,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 125,
      "endLine" : 138,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 253,
      "endLine" : 266,
      "cleanedStartLine" : 178,
      "cleanedEndLine" : 185
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 235,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 125,
      "endLine" : 138,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 223,
      "endLine" : 236,
      "cleanedStartLine" : 157,
      "cleanedEndLine" : 164
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 853,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 353
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 302,
      "endLine" : 309,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 182
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_imshow.kt",
        "extension" : "kt",
        "linesOfCode" : 316,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 266,
      "startLine" : 328,
      "endLine" : 335,
      "cleanedStartLine" : 199,
      "cleanedEndLine" : 206
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 158,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 172,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ABLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 64,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 476,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 190
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 79,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 599,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 244
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 152,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 68,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 102,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 475,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 189
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 84,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 475,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 189
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 93,
      "endLine" : 100,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 776,
      "endLine" : 782,
      "cleanedStartLine" : 678,
      "cleanedEndLine" : 684
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 802,
      "endLine" : 808,
      "cleanedStartLine" : 701,
      "cleanedEndLine" : 707
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 107,
      "endLine" : 114,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 151,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 30,
      "endLine" : 36,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 776,
      "endLine" : 782,
      "cleanedStartLine" : 678,
      "cleanedEndLine" : 684
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 828,
      "endLine" : 834,
      "cleanedStartLine" : 724,
      "cleanedEndLine" : 730
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 84,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 86,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 532,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 213
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 243,
      "endLine" : 249,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 116,
      "endLine" : 122,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 84,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 151,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 91,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 475,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 189
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 210,
      "endLine" : 218,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 171
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 285,
      "endLine" : 293,
      "cleanedStartLine" : 232,
      "cleanedEndLine" : 238
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 210,
      "endLine" : 218,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 171
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 266,
      "endLine" : 274,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 221
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 84,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 151,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 475,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 189
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 91,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/BinHexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 39,
      "endLine" : 45,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/Density2dMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 40,
      "endLine" : 46,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 532,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 213
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 151,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 166,
      "endLine" : 173,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 318,
      "endLine" : 325,
      "cleanedStartLine" : 252,
      "cleanedEndLine" : 258
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 245,
      "endLine" : 251,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 251,
      "endLine" : 257,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 245,
      "endLine" : 251,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 195,
      "endLine" : 201,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 138,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 143,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 166,
      "endLine" : 173,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 374,
      "endLine" : 381,
      "cleanedStartLine" : 294,
      "cleanedEndLine" : 300
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 49,
      "endLine" : 55,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 166,
      "endLine" : 173,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 347,
      "endLine" : 354,
      "cleanedStartLine" : 274,
      "cleanedEndLine" : 280
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 276,
      "endLine" : 282,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 102
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 143,
      "endLine" : 149,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 276,
      "endLine" : 282,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 102
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 202,
      "endLine" : 208,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 166,
      "endLine" : 173,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 274,
      "endLine" : 281,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 221
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 405,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 405,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1073,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 447
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 170,
      "endLine" : 176,
      "cleanedStartLine" : 129,
      "cleanedEndLine" : 135
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 410,
      "endLine" : 416,
      "cleanedStartLine" : 342,
      "cleanedEndLine" : 348
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 139,
      "endLine" : 145,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 63,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 223,
      "endLine" : 229,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 181
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 103,
      "endLine" : 109,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 245,
      "endLine" : 251,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 138,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 166,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 166,
      "endLine" : 173,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 185,
      "endLine" : 192,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 152
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 210,
      "endLine" : 218,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 171
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 247,
      "endLine" : 255,
      "cleanedStartLine" : 198,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 120,
      "endLine" : 126,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 99,
      "endLine" : 105,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 166,
      "endLine" : 173,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 241,
      "endLine" : 248,
      "cleanedStartLine" : 189,
      "cleanedEndLine" : 195
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 193,
      "endLine" : 199,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 585,
      "endLine" : 591,
      "cleanedStartLine" : 219,
      "cleanedEndLine" : 225
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 86,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 95,
      "endLine" : 101,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 96,
      "endLine" : 102,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 166,
      "endLine" : 173,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 207,
      "endLine" : 214,
      "cleanedStartLine" : 162,
      "cleanedEndLine" : 168
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 99,
      "endLine" : 105,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 826,
      "endLine" : 832,
      "cleanedStartLine" : 722,
      "cleanedEndLine" : 728
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/PlotSizeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 19,
      "endLine" : 26,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ScaleSizeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 43,
      "endLine" : 50,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 75,
      "endLine" : 81,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 75,
      "endLine" : 81,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 532,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 213
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 598,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 243
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 532,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 213
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 78,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 134,
      "endLine" : 141,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 116,
      "endLine" : 122,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 138,
      "endLine" : 144,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 115,
      "endLine" : 121,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 134,
      "endLine" : 141,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 193,
      "endLine" : 199,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 473,
      "endLine" : 479,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 181
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 598,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 243
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 193,
      "endLine" : 199,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 529,
      "endLine" : 535,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 203
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 94,
      "endLine" : 100,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 193,
      "endLine" : 199,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 361,
      "endLine" : 367,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 118,
      "endLine" : 124,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 42,
      "endLine" : 48,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 126,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 138,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 193,
      "endLine" : 199,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 417,
      "endLine" : 423,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 159
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 193,
      "endLine" : 199,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 306,
      "endLine" : 312,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 852,
      "endLine" : 858,
      "cleanedStartLine" : 745,
      "cleanedEndLine" : 751
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_function.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 73,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 107,
      "endLine" : 114,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 81,
      "endLine" : 89,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 110,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 58,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 136,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 185,
      "endLine" : 192,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 152
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 207,
      "endLine" : 214,
      "cleanedStartLine" : 162,
      "cleanedEndLine" : 168
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 100,
      "endLine" : 106,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 130,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 178,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 116,
      "endLine" : 122,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 137,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 134,
      "endLine" : 141,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 292,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 185,
      "endLine" : 192,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 152
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 241,
      "endLine" : 248,
      "cleanedStartLine" : 189,
      "cleanedEndLine" : 195
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 985,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 406
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 283,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 985,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 406
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 283,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 985,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 406
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 283,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 97,
      "endLine" : 105,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 135,
      "endLine" : 143,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 283,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 985,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 406
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 103,
      "endLine" : 109,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 99,
      "endLine" : 105,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 97,
      "endLine" : 105,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 185,
      "endLine" : 192,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 152
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 274,
      "endLine" : 281,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 221
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 117,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 185,
      "endLine" : 192,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 152
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 374,
      "endLine" : 381,
      "cleanedStartLine" : 294,
      "cleanedEndLine" : 300
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 719,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 293
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 185,
      "endLine" : 192,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 152
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 347,
      "endLine" : 354,
      "cleanedStartLine" : 274,
      "cleanedEndLine" : 280
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 138,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 185,
      "endLine" : 192,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 152
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 318,
      "endLine" : 325,
      "cleanedStartLine" : 252,
      "cleanedEndLine" : 258
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 91,
      "endLine" : 97,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 127,
      "endLine" : 133,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 118,
      "endLine" : 124,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 598,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 243
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 598,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 243
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/corr/CorrPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 376,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 318,
      "startLine" : 413,
      "endLine" : 419,
      "cleanedStartLine" : 226,
      "cleanedEndLine" : 232
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/corr/CorrPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 376,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 318,
      "startLine" : 424,
      "endLine" : 430,
      "cleanedStartLine" : 235,
      "cleanedEndLine" : 241
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 168,
      "endLine" : 174,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 64,
      "endLine" : 70,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 914,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 377
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 112,
      "endLine" : 118,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 117,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 107,
      "endLine" : 114,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 914,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 377
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 914,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 377
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 780,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 320
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 780,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 320
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 126,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 114,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 914,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 377
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 110,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 95,
      "endLine" : 101,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 95,
      "endLine" : 101,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 136,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/ImageLineByte.kt",
        "extension" : "kt",
        "linesOfCode" : 146,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 123,
      "startLine" : 130,
      "endLine" : 136,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/ImageLineInt.kt",
        "extension" : "kt",
        "linesOfCode" : 144,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 144,
      "endLine" : 150,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 185,
      "endLine" : 192,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 152
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 483,
      "endLine" : 490,
      "cleanedStartLine" : 384,
      "cleanedEndLine" : 390
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 81,
      "endLine" : 89,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 135,
      "endLine" : 143,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 776,
      "endLine" : 782,
      "cleanedStartLine" : 678,
      "cleanedEndLine" : 684
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 98,
      "endLine" : 104,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 185,
      "endLine" : 192,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 152
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 456,
      "endLine" : 463,
      "cleanedStartLine" : 364,
      "cleanedEndLine" : 370
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 118,
      "endLine" : 124,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 314,
      "endLine" : 320,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 126
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 67,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 118,
      "endLine" : 124,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 369,
      "endLine" : 375,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 279,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 347,
      "endLine" : 354,
      "cleanedStartLine" : 274,
      "cleanedEndLine" : 280
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 511,
      "endLine" : 518,
      "cleanedStartLine" : 405,
      "cleanedEndLine" : 411
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 218,
      "endLine" : 224,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 58,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 279,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/MappingAsDiscreteTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 101,
      "endLine" : 107,
      "cleanedStartLine" : 74,
      "cleanedEndLine" : 80
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/MappingToCollectionTest.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 42,
      "endLine" : 48,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 276,
      "endLine" : 282,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 598,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 243
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/SummaryBinStatMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 12,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 9,
      "startLine" : 13,
      "endLine" : 19,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/SummaryStatMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 12,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 9,
      "startLine" : 18,
      "endLine" : 24,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 63,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 598,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 243
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 63,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 123
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 107,
      "endLine" : 113,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 94,
      "endLine" : 100,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 279,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 153,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 63,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 279,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 215,
      "endLine" : 221,
      "cleanedStartLine" : 169,
      "cleanedEndLine" : 175
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 688,
      "endLine" : 694,
      "cleanedStartLine" : 599,
      "cleanedEndLine" : 605
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 800,
      "endLine" : 806,
      "cleanedStartLine" : 699,
      "cleanedEndLine" : 705
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 95,
      "endLine" : 101,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 146,
      "endLine" : 152,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 176,
      "endLine" : 182,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 128
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 185,
      "endLine" : 192,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 152
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 511,
      "endLine" : 518,
      "cleanedStartLine" : 405,
      "cleanedEndLine" : 411
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 719,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 293
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 318,
      "endLine" : 325,
      "cleanedStartLine" : 252,
      "cleanedEndLine" : 258
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 511,
      "endLine" : 518,
      "cleanedStartLine" : 405,
      "cleanedEndLine" : 411
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 99,
      "endLine" : 105,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 75,
      "endLine" : 81,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 486,
      "endLine" : 494,
      "cleanedStartLine" : 403,
      "cleanedEndLine" : 409
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 515,
      "endLine" : 523,
      "cleanedStartLine" : 426,
      "cleanedEndLine" : 432
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 318,
      "endLine" : 325,
      "cleanedStartLine" : 252,
      "cleanedEndLine" : 258
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 483,
      "endLine" : 490,
      "cleanedStartLine" : 384,
      "cleanedEndLine" : 390
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 318,
      "endLine" : 325,
      "cleanedStartLine" : 252,
      "cleanedEndLine" : 258
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 456,
      "endLine" : 463,
      "cleanedStartLine" : 364,
      "cleanedEndLine" : 370
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 66,
      "endLine" : 72,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 59,
      "endLine" : 65,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 76,
      "endLine" : 82,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 67,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 63,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 780,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 320
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 780,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 320
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 347,
      "endLine" : 354,
      "cleanedStartLine" : 274,
      "cleanedEndLine" : 280
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 456,
      "endLine" : 463,
      "cleanedStartLine" : 364,
      "cleanedEndLine" : 370
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 780,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 320
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1073,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 447
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1073,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 447
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 780,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 320
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1073,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 447
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 780,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 320
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 347,
      "endLine" : 354,
      "cleanedStartLine" : 274,
      "cleanedEndLine" : 280
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 483,
      "endLine" : 490,
      "cleanedStartLine" : 384,
      "cleanedEndLine" : 390
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LabelRepelMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 32,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 45,
      "endLine" : 51,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TextMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 45,
      "endLine" : 51,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 93,
      "endLine" : 100,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 486,
      "endLine" : 494,
      "cleanedStartLine" : 403,
      "cleanedEndLine" : 409
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 546,
      "endLine" : 554,
      "cleanedStartLine" : 451,
      "cleanedEndLine" : 457
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 26,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 36,
      "endLine" : 43,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 42,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 110,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 780,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 320
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/RibbonAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 29,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SmoothAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 29,
      "endLine" : 36,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 318,
      "endLine" : 325,
      "cleanedStartLine" : 252,
      "cleanedEndLine" : 258
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 374,
      "endLine" : 381,
      "cleanedStartLine" : 294,
      "cleanedEndLine" : 300
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 51,
      "endLine" : 57,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 42,
      "endLine" : 48,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 780,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 320
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 318,
      "endLine" : 325,
      "cleanedStartLine" : 252,
      "cleanedEndLine" : 258
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 347,
      "endLine" : 354,
      "cleanedStartLine" : 274,
      "cleanedEndLine" : 280
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 780,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 320
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1073,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 447
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 85,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 433,
      "endLine" : 439,
      "cleanedStartLine" : 163,
      "cleanedEndLine" : 169
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 256,
      "endLine" : 262,
      "cleanedStartLine" : 98,
      "cleanedEndLine" : 104
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 344,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 30,
      "endLine" : 36,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 138,
      "endLine" : 144,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 57,
      "endLine" : 63,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 233,
      "endLine" : 239,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 94
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1073,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 447
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 344,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 914,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 377
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 344,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 914,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 377
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 115,
      "endLine" : 121,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 93,
      "endLine" : 100,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 483,
      "endLine" : 489,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 189
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 424,
      "endLine" : 430,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 171
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 344,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 35,
      "endLine" : 42,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 31,
      "endLine" : 38,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 433,
      "endLine" : 439,
      "cleanedStartLine" : 163,
      "cleanedEndLine" : 169
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 424,
      "endLine" : 430,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 171
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 115,
      "endLine" : 121,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 57,
      "endLine" : 63,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 181,
      "endLine" : 187,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 292,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 112
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 625,
      "endLine" : 631,
      "cleanedStartLine" : 543,
      "cleanedEndLine" : 549
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 224,
      "endLine" : 230,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 123
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 347,
      "endLine" : 354,
      "cleanedStartLine" : 274,
      "cleanedEndLine" : 280
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 374,
      "endLine" : 381,
      "cleanedStartLine" : 294,
      "cleanedEndLine" : 300
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 51,
      "endLine" : 57,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 49,
      "endLine" : 55,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 985,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 406
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 67,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 985,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 406
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 985,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 406
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 188,
      "endLine" : 194,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 151
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 410,
      "endLine" : 416,
      "cleanedStartLine" : 342,
      "cleanedEndLine" : 348
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 58,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 985,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 406
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 748,
      "endLine" : 754,
      "cleanedStartLine" : 653,
      "cleanedEndLine" : 659
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 98,
      "endLine" : 104,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 374,
      "endLine" : 381,
      "cleanedStartLine" : 294,
      "cleanedEndLine" : 300
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 456,
      "endLine" : 463,
      "cleanedStartLine" : 364,
      "cleanedEndLine" : 370
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 405,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 118,
      "endLine" : 124,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 143,
      "endLine" : 149,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 374,
      "endLine" : 381,
      "cleanedStartLine" : 294,
      "cleanedEndLine" : 300
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 483,
      "endLine" : 490,
      "cleanedStartLine" : 384,
      "cleanedEndLine" : 390
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 118,
      "endLine" : 124,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 202,
      "endLine" : 208,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 405,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 405,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 405,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 245,
      "endLine" : 251,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 76,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 228,
      "endLine" : 236,
      "cleanedStartLine" : 181,
      "cleanedEndLine" : 187
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 247,
      "endLine" : 255,
      "cleanedStartLine" : 198,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 30,
      "endLine" : 36,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 116,
      "endLine" : 122,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/PlotSizeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 19,
      "endLine" : 26,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ScaleSizeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 20,
      "endLine" : 27,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 164,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 115,
      "endLine" : 121,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 136,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 126,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 292,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 112
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 67,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 58,
      "endLine" : 64,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 76,
      "endLine" : 82,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 59
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 30,
      "endLine" : 36,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 243,
      "endLine" : 249,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 283,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 63,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 94,
      "endLine" : 100,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 283,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 405,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 405,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 58,
      "endLine" : 64,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 75,
      "endLine" : 81,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 58,
      "endLine" : 64,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 116,
      "endLine" : 122,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 107,
      "endLine" : 113,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 136,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/joint/JointPlotBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 24,
      "endLine" : 30,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/residual/ResidualPlotBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 29,
      "endLine" : 35,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 93,
      "endLine" : 100,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 203,
      "endLine" : 209,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 66,
      "endLine" : 72,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 134,
      "endLine" : 141,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 140,
      "endLine" : 146,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 193,
      "endLine" : 199,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 79
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 245,
      "endLine" : 251,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 159,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 178,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_function.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 73,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 134,
      "endLine" : 141,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 59,
      "endLine" : 65,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 66,
      "endLine" : 72,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 115,
      "endLine" : 121,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 58,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 58,
      "endLine" : 64,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 852,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 352
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 852,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 352
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 42,
      "endLine" : 48,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 852,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 352
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 168,
      "endLine" : 174,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 42,
      "endLine" : 48,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 852,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 352
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 374,
      "endLine" : 381,
      "cleanedStartLine" : 294,
      "cleanedEndLine" : 300
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 511,
      "endLine" : 518,
      "cleanedStartLine" : 405,
      "cleanedEndLine" : 411
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 241,
      "endLine" : 248,
      "cleanedStartLine" : 189,
      "cleanedEndLine" : 195
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 137,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 137,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 303,
      "endLine" : 311,
      "cleanedStartLine" : 248,
      "cleanedEndLine" : 254
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 340,
      "endLine" : 348,
      "cleanedStartLine" : 281,
      "cleanedEndLine" : 287
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 137,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 166,
      "endLine" : 173,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 532,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 213
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 185,
      "endLine" : 192,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 152
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 137,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 207,
      "endLine" : 214,
      "cleanedStartLine" : 162,
      "cleanedEndLine" : 168
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 32,
      "endLine" : 39,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 42,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 75,
      "endLine" : 81,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 67,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 532,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 213
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 96,
      "endLine" : 102,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 303,
      "endLine" : 311,
      "cleanedStartLine" : 248,
      "cleanedEndLine" : 254
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 359,
      "endLine" : 368,
      "cleanedStartLine" : 298,
      "cleanedEndLine" : 304
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 532,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 213
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 532,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 213
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 429,
      "endLine" : 437,
      "cleanedStartLine" : 359,
      "cleanedEndLine" : 365
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 515,
      "endLine" : 523,
      "cleanedStartLine" : 426,
      "cleanedEndLine" : 432
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 429,
      "endLine" : 437,
      "cleanedStartLine" : 359,
      "cleanedEndLine" : 365
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 486,
      "endLine" : 494,
      "cleanedStartLine" : 403,
      "cleanedEndLine" : 409
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 30,
      "endLine" : 36,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 279,
      "endLine" : 285,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 231
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 58,
      "endLine" : 64,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 303,
      "endLine" : 311,
      "cleanedStartLine" : 248,
      "cleanedEndLine" : 254
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 379,
      "endLine" : 387,
      "cleanedStartLine" : 315,
      "cleanedEndLine" : 321
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 42,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 29,
      "endLine" : 36,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 429,
      "endLine" : 437,
      "cleanedStartLine" : 359,
      "cleanedEndLine" : 365
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 546,
      "endLine" : 554,
      "cleanedStartLine" : 451,
      "cleanedEndLine" : 457
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 140,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 852,
      "endLine" : 858,
      "cleanedStartLine" : 745,
      "cleanedEndLine" : 751
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 94,
      "endLine" : 100,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 91,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 524,
      "endLine" : 530,
      "cleanedStartLine" : 205,
      "cleanedEndLine" : 211
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 66,
      "endLine" : 72,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 107,
      "endLine" : 114,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 598,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 243
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 137,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 193,
      "endLine" : 199,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 126,
      "endLine" : 132,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 598,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 243
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 193,
      "endLine" : 199,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 292,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 137,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 598,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 243
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 144,
      "cleanedEndLine" : 150
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 95,
      "endLine" : 101,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 193,
      "endLine" : 199,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 249,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 137,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 598,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 243
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 137,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 292,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 292,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 152,
      "endLine" : 158,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/DataSeriesTest.kt",
        "extension" : "kt",
        "linesOfCode" : 144,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 139,
      "endLine" : 146,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 111
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/DataSeriesTest.kt",
        "extension" : "kt",
        "linesOfCode" : 144,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 162,
      "endLine" : 169,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 126
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 292,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 59,
      "endLine" : 65,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 137,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 63,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/coord/coord.kt",
        "extension" : "kt",
        "linesOfCode" : 87,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 79,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/coord/coord.kt",
        "extension" : "kt",
        "linesOfCode" : 87,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 79,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 116,
      "endLine" : 122,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 114,
      "endLine" : 120,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 147,
      "endLine" : 153,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 118,
      "endLine" : 124,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 51,
      "endLine" : 57,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 159,
      "cleanedEndLine" : 165
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 103,
      "endLine" : 109,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1149,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 478
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 134,
      "endLine" : 141,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 127,
      "endLine" : 133,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 233,
      "endLine" : 239,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 94
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 84,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 127,
      "endLine" : 133,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 181,
      "endLine" : 187,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 84,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 84,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1149,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 478
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 178,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 166,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 84,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 532,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 213
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 532,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 213
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 66,
      "endLine" : 72,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 95,
      "endLine" : 101,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 77,
      "endLine" : 83,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 115,
      "endLine" : 121,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 802,
      "endLine" : 808,
      "cleanedStartLine" : 701,
      "cleanedEndLine" : 707
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 598,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 243
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/PlotTitleTest.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 20,
      "endLine" : 27,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ScaleSizeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 43,
      "endLine" : 50,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 112,
      "endLine" : 118,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 143,
      "endLine" : 149,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 592,
      "endLine" : 598,
      "cleanedStartLine" : 237,
      "cleanedEndLine" : 243
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 176,
      "endLine" : 182,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 128
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 244,
      "endLine" : 250,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 176
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 86,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 168,
      "endLine" : 174,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 49,
      "endLine" : 55,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 112,
      "endLine" : 118,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 202,
      "endLine" : 208,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 136,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 719,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 293
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 129,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 719,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 293
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 35,
      "endLine" : 42,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 32,
      "endLine" : 39,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 159,
      "cleanedEndLine" : 165
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 103,
      "endLine" : 109,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 166,
      "endLine" : 173,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 511,
      "endLine" : 518,
      "cleanedStartLine" : 405,
      "cleanedEndLine" : 411
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 852,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 352
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 852,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 352
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 279,
      "endLine" : 285,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 231
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 116,
      "endLine" : 122,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 114,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 51,
      "endLine" : 57,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 852,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 352
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 719,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 293
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 58,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 719,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 293
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 110,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 40,
      "endLine" : 46,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 49,
      "endLine" : 55,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 166,
      "endLine" : 173,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 483,
      "endLine" : 490,
      "cleanedStartLine" : 384,
      "cleanedEndLine" : 390
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 40,
      "endLine" : 46,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 76,
      "endLine" : 82,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 59
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 40,
      "endLine" : 46,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 58,
      "endLine" : 64,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 166,
      "endLine" : 173,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 456,
      "endLine" : 463,
      "cleanedStartLine" : 364,
      "cleanedEndLine" : 370
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 279,
      "endLine" : 285,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 231
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 659,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 269
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_function.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 73,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 94,
      "endLine" : 100,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 659,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 269
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 70,
      "endLine" : 76,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 245,
      "endLine" : 251,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 75,
      "endLine" : 81,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 91,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PolygonAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 32,
      "endLine" : 39,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/RibbonAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 29,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 33,
      "endLine" : 40,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 852,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 352
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1149,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 478
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 776,
      "endLine" : 782,
      "cleanedStartLine" : 678,
      "cleanedEndLine" : 684
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 94,
      "endLine" : 100,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 81,
      "endLine" : 89,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 192,
      "endLine" : 200,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 223,
      "endLine" : 229,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 181
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 95,
      "endLine" : 101,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 94,
      "endLine" : 100,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 114,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1149,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 478
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1149,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 478
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 852,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 352
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 852,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 352
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 107,
      "endLine" : 114,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 134,
      "endLine" : 141,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 91,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 424,
      "endLine" : 430,
      "cleanedStartLine" : 354,
      "cleanedEndLine" : 360
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 451,
      "endLine" : 457,
      "cleanedStartLine" : 375,
      "cleanedEndLine" : 381
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 116,
      "endLine" : 122,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/Density2dfMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 35,
      "endLine" : 41,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PolygonMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 26,
      "endLine" : 32,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 107,
      "endLine" : 114,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 107,
      "endLine" : 114,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 85,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1149,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 478
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 81,
      "endLine" : 89,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 174,
      "endLine" : 182,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 94,
      "endLine" : 100,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 99,
      "endLine" : 105,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 81,
      "endLine" : 89,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 154,
      "endLine" : 162,
      "cleanedStartLine" : 116,
      "cleanedEndLine" : 122
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 719,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 293
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 120,
      "endLine" : 126,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 84
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 145,
      "endLine" : 151,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 101
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 159,
      "cleanedEndLine" : 165
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 95,
      "endLine" : 101,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 719,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 293
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 75,
      "endLine" : 81,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 659,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 269
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 659,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 269
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 395,
      "endLine" : 403,
      "cleanedStartLine" : 329,
      "cleanedEndLine" : 335
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 414,
      "endLine" : 422,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 352
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 659,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 269
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 93,
      "endLine" : 100,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 659,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 269
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 51,
      "endLine" : 57,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 202,
      "endLine" : 208,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 51,
      "endLine" : 57,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 143,
      "endLine" : 149,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 76,
      "endLine" : 82,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 136,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 140,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 126,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 136,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 130,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 27,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 37,
      "endLine" : 43,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/RibbonAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 29,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 39,
      "endLine" : 45,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 203,
      "endLine" : 209,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 202,
      "endLine" : 208,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 143,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 283,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 136,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 138,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 143,
      "endLine" : 149,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 166,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 114,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 283,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 131,
      "endLine" : 138,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 112,
      "endLine" : 119,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 166,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 64,
      "endLine" : 70,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 115,
      "endLine" : 121,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 688,
      "endLine" : 694,
      "cleanedStartLine" : 599,
      "cleanedEndLine" : 605
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 95,
      "endLine" : 101,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 72,
      "endLine" : 78,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/Bin2dMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 44,
      "endLine" : 50,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/Density2dMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 40,
      "endLine" : 46,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 207,
      "endLine" : 214,
      "cleanedStartLine" : 162,
      "cleanedEndLine" : 168
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 511,
      "endLine" : 518,
      "cleanedStartLine" : 405,
      "cleanedEndLine" : 411
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 91,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 205,
      "endLine" : 211,
      "cleanedStartLine" : 159,
      "cleanedEndLine" : 165
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 95,
      "endLine" : 101,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 134,
      "endLine" : 141,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 105,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1149,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 478
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1149,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 478
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 86,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 86,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 86,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 86,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 780,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 320
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 207,
      "endLine" : 214,
      "cleanedStartLine" : 162,
      "cleanedEndLine" : 168
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 456,
      "endLine" : 463,
      "cleanedStartLine" : 364,
      "cleanedEndLine" : 370
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 279,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 140,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 91,
      "endLine" : 97,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 138,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 207,
      "endLine" : 214,
      "cleanedStartLine" : 162,
      "cleanedEndLine" : 168
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 483,
      "endLine" : 490,
      "cleanedStartLine" : 384,
      "cleanedEndLine" : 390
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 138,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LabelMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 38,
      "endLine" : 44,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TextRepelMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 93,
      "endLine" : 100,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 774,
      "endLine" : 780,
      "cleanedStartLine" : 314,
      "cleanedEndLine" : 320
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 33,
      "endLine" : 39,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/DensityMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 23,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 35,
      "endLine" : 41,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 95,
      "endLine" : 101,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 397,
      "endLine" : 403,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 152
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 128,
      "endLine" : 134,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 119,
      "endLine" : 125,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 115,
      "endLine" : 121,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 120,
      "endLine" : 126,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 84
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 234,
      "endLine" : 240,
      "cleanedStartLine" : 156,
      "cleanedEndLine" : 162
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 279,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 215,
      "endLine" : 221,
      "cleanedStartLine" : 169,
      "cleanedEndLine" : 175
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 95,
      "endLine" : 101,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 374,
      "endLine" : 381,
      "cleanedStartLine" : 294,
      "cleanedEndLine" : 300
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 276,
      "endLine" : 282,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 102
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 369,
      "endLine" : 375,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 168,
      "endLine" : 174,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 202,
      "endLine" : 208,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 107,
      "endLine" : 114,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 245,
      "endLine" : 251,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 243,
      "endLine" : 249,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 58,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 276,
      "endLine" : 282,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 102
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 314,
      "endLine" : 320,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 126
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 137,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 245,
      "endLine" : 251,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 318,
      "endLine" : 325,
      "cleanedStartLine" : 252,
      "cleanedEndLine" : 258
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 137,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/corr/CorrPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 376,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 318,
      "startLine" : 391,
      "endLine" : 397,
      "cleanedStartLine" : 208,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/corr/CorrPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 376,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 318,
      "startLine" : 402,
      "endLine" : 408,
      "cleanedStartLine" : 217,
      "cleanedEndLine" : 223
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 126,
      "endLine" : 132,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 347,
      "endLine" : 354,
      "cleanedStartLine" : 274,
      "cleanedEndLine" : 280
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 58,
      "endLine" : 64,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 107,
      "endLine" : 114,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 168,
      "endLine" : 174,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 143,
      "endLine" : 149,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 274,
      "endLine" : 281,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 221
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 511,
      "endLine" : 518,
      "cleanedStartLine" : 405,
      "cleanedEndLine" : 411
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 136,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 143,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 118,
      "endLine" : 124,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 112,
      "endLine" : 118,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 245,
      "endLine" : 251,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 118,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 274,
      "endLine" : 281,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 221
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 118,
      "endLine" : 124,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 168,
      "endLine" : 174,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 118,
      "endLine" : 124,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 218,
      "endLine" : 224,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 207,
      "endLine" : 214,
      "cleanedStartLine" : 162,
      "cleanedEndLine" : 168
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 374,
      "endLine" : 381,
      "cleanedStartLine" : 294,
      "cleanedEndLine" : 300
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 30,
      "endLine" : 36,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 114,
      "endLine" : 120,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 118,
      "endLine" : 124,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 276,
      "endLine" : 282,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 321,
      "endLine" : 329,
      "cleanedStartLine" : 264,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 340,
      "endLine" : 348,
      "cleanedStartLine" : 281,
      "cleanedEndLine" : 287
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 75,
      "endLine" : 81,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 321,
      "endLine" : 329,
      "cleanedStartLine" : 264,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 359,
      "endLine" : 368,
      "cleanedStartLine" : 298,
      "cleanedEndLine" : 304
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 131,
      "endLine" : 137,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 101
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 410,
      "endLine" : 416,
      "cleanedStartLine" : 342,
      "cleanedEndLine" : 348
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 178,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 143,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 218,
      "endLine" : 224,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 42,
      "endLine" : 48,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 30,
      "endLine" : 36,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 137,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 207,
      "endLine" : 214,
      "cleanedStartLine" : 162,
      "cleanedEndLine" : 168
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 318,
      "endLine" : 325,
      "cleanedStartLine" : 252,
      "cleanedEndLine" : 258
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 207,
      "endLine" : 214,
      "cleanedStartLine" : 162,
      "cleanedEndLine" : 168
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 347,
      "endLine" : 354,
      "cleanedStartLine" : 274,
      "cleanedEndLine" : 280
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 115,
      "endLine" : 121,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 134,
      "endLine" : 141,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 207,
      "endLine" : 214,
      "cleanedStartLine" : 162,
      "cleanedEndLine" : 168
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 274,
      "endLine" : 281,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 221
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 136,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 166,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 382,
      "endLine" : 388,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 148
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 256,
      "endLine" : 262,
      "cleanedStartLine" : 98,
      "cleanedEndLine" : 104
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 58,
      "endLine" : 64,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 134,
      "endLine" : 141,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 274,
      "endLine" : 281,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 221
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 483,
      "endLine" : 490,
      "cleanedStartLine" : 384,
      "cleanedEndLine" : 390
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 63,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 274,
      "endLine" : 281,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 221
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 456,
      "endLine" : 463,
      "cleanedStartLine" : 364,
      "cleanedEndLine" : 370
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 63,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 99,
      "endLine" : 105,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 483,
      "endLine" : 490,
      "cleanedStartLine" : 384,
      "cleanedEndLine" : 390
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 321,
      "endLine" : 329,
      "cleanedStartLine" : 264,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 379,
      "endLine" : 387,
      "cleanedStartLine" : 315,
      "cleanedEndLine" : 321
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 123,
      "endLine" : 129,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 59,
      "endLine" : 65,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 90,
      "endLine" : 96,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 456,
      "endLine" : 463,
      "cleanedStartLine" : 364,
      "cleanedEndLine" : 370
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 114,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 107,
      "endLine" : 114,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 75,
      "endLine" : 81,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 58,
      "endLine" : 64,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 207,
      "endLine" : 214,
      "cleanedStartLine" : 162,
      "cleanedEndLine" : 168
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 241,
      "endLine" : 248,
      "cleanedStartLine" : 189,
      "cleanedEndLine" : 195
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 63,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 138,
      "endLine" : 144,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 98,
      "endLine" : 104,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 96,
      "endLine" : 102,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 114,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 75,
      "endLine" : 81,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 58,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 276,
      "endLine" : 282,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 102
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 49,
      "endLine" : 55,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 57,
      "endLine" : 63,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 274,
      "endLine" : 281,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 221
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 318,
      "endLine" : 325,
      "cleanedStartLine" : 252,
      "cleanedEndLine" : 258
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 274,
      "endLine" : 281,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 221
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 374,
      "endLine" : 381,
      "cleanedStartLine" : 294,
      "cleanedEndLine" : 300
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 36,
      "endLine" : 43,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HistogramAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 31,
      "endLine" : 38,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 138,
      "endLine" : 144,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 274,
      "endLine" : 281,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 221
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 347,
      "endLine" : 354,
      "cleanedStartLine" : 274,
      "cleanedEndLine" : 280
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 483,
      "endLine" : 490,
      "cleanedStartLine" : 384,
      "cleanedEndLine" : 390
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 511,
      "endLine" : 518,
      "cleanedStartLine" : 405,
      "cleanedEndLine" : 411
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 155,
      "endLine" : 161,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 147,
      "endLine" : 154,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 511,
      "endLine" : 518,
      "cleanedStartLine" : 405,
      "cleanedEndLine" : 411
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 143,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 92,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 532,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 213
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 110,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 203,
      "endLine" : 209,
      "cleanedStartLine" : 158,
      "cleanedEndLine" : 164
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 553,
      "endLine" : 559,
      "cleanedStartLine" : 456,
      "cleanedEndLine" : 462
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 93,
      "endLine" : 100,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 130,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 144,
      "cleanedEndLine" : 150
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 688,
      "endLine" : 694,
      "cleanedStartLine" : 599,
      "cleanedEndLine" : 605
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 29,
      "endLine" : 36,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SpokeAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 23,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 24,
      "endLine" : 31,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 95,
      "endLine" : 101,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGGridThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 251,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 207,
      "endLine" : 213,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 143
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 64,
      "endLine" : 70,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 84,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 526,
      "endLine" : 532,
      "cleanedStartLine" : 207,
      "cleanedEndLine" : 213
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 107,
      "endLine" : 114,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 93,
      "endLine" : 100,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 193,
      "endLine" : 199,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 70,
      "endLine" : 76,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 243,
      "endLine" : 249,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 985,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 406
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 228,
      "endLine" : 236,
      "cleanedStartLine" : 181,
      "cleanedEndLine" : 187
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 285,
      "endLine" : 293,
      "cleanedStartLine" : 232,
      "cleanedEndLine" : 238
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 985,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 406
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 91,
      "endLine" : 97,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 228,
      "endLine" : 236,
      "cleanedStartLine" : 181,
      "cleanedEndLine" : 187
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 266,
      "endLine" : 274,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 221
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 117,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 292,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 138,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 130,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 475,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 189
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 292,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 93,
      "endLine" : 100,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 134,
      "endLine" : 141,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 475,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 189
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 91,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 114,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 143,
      "endLine" : 149,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 120,
      "endLine" : 126,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 136,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 159,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 625,
      "endLine" : 631,
      "cleanedStartLine" : 543,
      "cleanedEndLine" : 549
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 191,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 255,
      "endLine" : 261,
      "cleanedStartLine" : 129,
      "cleanedEndLine" : 135
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 114,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 112,
      "endLine" : 118,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 99,
      "endLine" : 105,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 123
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 80,
      "endLine" : 86,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LabelRepelAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TextAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 42,
      "endLine" : 48,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 456,
      "endLine" : 463,
      "cleanedStartLine" : 364,
      "cleanedEndLine" : 370
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 483,
      "endLine" : 490,
      "cleanedStartLine" : 384,
      "cleanedEndLine" : 390
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 223,
      "endLine" : 229,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 181
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 95,
      "endLine" : 101,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 397,
      "endLine" : 403,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 152
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 66,
      "endLine" : 72,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 137,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 131,
      "endLine" : 137,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 112,
      "endLine" : 118,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 369,
      "endLine" : 375,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 112,
      "endLine" : 118,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 314,
      "endLine" : 320,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 126
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 158,
      "endLine" : 164,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 114,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 93,
      "endLine" : 100,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 178,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 115,
      "endLine" : 121,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 107,
      "endLine" : 114,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 659,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 269
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 168,
      "endLine" : 174,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 314,
      "endLine" : 320,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 126
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 344,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 105,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 159,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 659,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 269
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 168,
      "endLine" : 174,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 369,
      "endLine" : 375,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 344,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 133,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 126,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 94,
      "endLine" : 100,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 332,
      "endLine" : 338,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 128
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 424,
      "endLine" : 430,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 171
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 659,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 269
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 659,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 269
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 659,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 269
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 653,
      "endLine" : 659,
      "cleanedStartLine" : 263,
      "cleanedEndLine" : 269
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 93,
      "endLine" : 100,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/BandAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 37,
      "endLine" : 43,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/RectAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 41,
      "endLine" : 47,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 193,
      "endLine" : 199,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_function.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 73,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 93,
      "endLine" : 100,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 456,
      "endLine" : 463,
      "cleanedStartLine" : 364,
      "cleanedEndLine" : 370
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 511,
      "endLine" : 518,
      "cleanedStartLine" : 405,
      "cleanedEndLine" : 411
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 138,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 159,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 91,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1073,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 447
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1073,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 447
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 110,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 524,
      "endLine" : 530,
      "cleanedStartLine" : 205,
      "cleanedEndLine" : 211
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/DotplotAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 37,
      "endLine" : 43,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/YDotplotAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 23,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 39,
      "endLine" : 45,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 112,
      "endLine" : 118,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 84
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 410,
      "endLine" : 416,
      "cleanedStartLine" : 342,
      "cleanedEndLine" : 348
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 58,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 218,
      "endLine" : 224,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 202,
      "endLine" : 208,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 115,
      "endLine" : 121,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 218,
      "endLine" : 224,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 143,
      "endLine" : 149,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 279,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 914,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 377
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 218,
      "endLine" : 224,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 49,
      "endLine" : 55,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 914,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 377
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 193,
      "endLine" : 199,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 195,
      "endLine" : 201,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 110,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 92,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 193,
      "endLine" : 199,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 251,
      "endLine" : 257,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 279,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 344,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 193,
      "endLine" : 199,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 138,
      "endLine" : 144,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 150,
      "endLine" : 156,
      "cleanedStartLine" : 112,
      "cleanedEndLine" : 118
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 410,
      "endLine" : 416,
      "cleanedStartLine" : 342,
      "cleanedEndLine" : 348
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/joint/JointPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 32,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/residual/ResidualPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 40,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 86,
      "endLine" : 92,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 344,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 344,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 140,
      "endLine" : 146,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 344,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 80,
      "endLine" : 86,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 115,
      "endLine" : 121,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 42,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 31,
      "endLine" : 38,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 977,
      "endLine" : 983,
      "cleanedStartLine" : 398,
      "cleanedEndLine" : 404
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 68,
      "endLine" : 74,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 79,
      "endLine" : 85,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 162,
      "endLine" : 168,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 75,
      "endLine" : 81,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 314,
      "endLine" : 320,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 126
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 98,
      "endLine" : 104,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 178,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 369,
      "endLine" : 375,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 84,
      "endLine" : 90,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 58,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 115,
      "endLine" : 121,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 382,
      "endLine" : 388,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 148
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 424,
      "endLine" : 430,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 171
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 151,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 914,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 377
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 51,
      "endLine" : 57,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 369,
      "endLine" : 375,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 93,
      "endLine" : 100,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 914,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 377
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 51,
      "endLine" : 57,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 314,
      "endLine" : 320,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 126
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 914,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 377
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 144,
      "cleanedEndLine" : 150
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 908,
      "endLine" : 914,
      "cleanedStartLine" : 371,
      "cleanedEndLine" : 377
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 215,
      "endLine" : 221,
      "cleanedStartLine" : 169,
      "cleanedEndLine" : 175
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 134,
      "endLine" : 141,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 151,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 245,
      "endLine" : 251,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 529,
      "endLine" : 535,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 203
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 110,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 138,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 140,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 178,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 140,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 64,
      "endLine" : 70,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_function.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 73,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 245,
      "endLine" : 251,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 473,
      "endLine" : 479,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 181
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LabelAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 48,
      "endLine" : 54,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TextRepelAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 41,
      "endLine" : 47,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 151,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 245,
      "endLine" : 251,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 417,
      "endLine" : 423,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 159
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/PlotTitleTest.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 20,
      "endLine" : 27,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ScaleSizeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 20,
      "endLine" : 27,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 114,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 115,
      "endLine" : 121,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 245,
      "endLine" : 251,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 361,
      "endLine" : 367,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 67,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 245,
      "endLine" : 251,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 306,
      "endLine" : 312,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 241,
      "endLine" : 248,
      "cleanedStartLine" : 189,
      "cleanedEndLine" : 195
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 274,
      "endLine" : 281,
      "cleanedStartLine" : 215,
      "cleanedEndLine" : 221
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 67,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 91,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 130,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 178,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 114,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 58,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 985,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 406
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 86,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 93,
      "endLine" : 100,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 107,
      "endLine" : 114,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 86,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1149,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 478
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 979,
      "endLine" : 985,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 406
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 138,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 86,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 80,
      "endLine" : 86,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 147,
      "endLine" : 153,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/MappingAsDiscreteTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/MappingToCollectionTest.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 42,
      "endLine" : 48,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1149,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 478
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 241,
      "endLine" : 248,
      "cleanedStartLine" : 189,
      "cleanedEndLine" : 195
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 318,
      "endLine" : 325,
      "cleanedStartLine" : 252,
      "cleanedEndLine" : 258
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 283,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 151,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 58,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 241,
      "endLine" : 248,
      "cleanedStartLine" : 189,
      "cleanedEndLine" : 195
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 347,
      "endLine" : 354,
      "cleanedStartLine" : 274,
      "cleanedEndLine" : 280
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 151,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 283,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1149,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 478
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 151,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 241,
      "endLine" : 248,
      "cleanedStartLine" : 189,
      "cleanedEndLine" : 195
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 374,
      "endLine" : 381,
      "cleanedStartLine" : 294,
      "cleanedEndLine" : 300
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 283,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1143,
      "endLine" : 1149,
      "cleanedStartLine" : 472,
      "cleanedEndLine" : 478
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 277,
      "endLine" : 283,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 134,
      "endLine" : 141,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 108,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 475,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 189
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 292,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 276,
      "endLine" : 282,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 102
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 42,
      "endLine" : 48,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 475,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 189
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 292,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 107,
      "endLine" : 114,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 125,
      "endLine" : 131,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 286,
      "endLine" : 292,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 97,
      "endLine" : 105,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 154,
      "endLine" : 162,
      "cleanedStartLine" : 116,
      "cleanedEndLine" : 122
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 114,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 97,
      "endLine" : 105,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 192,
      "endLine" : 200,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/DateTime.kt",
        "extension" : "kt",
        "linesOfCode" : 123,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 245,
      "endLine" : 251,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 585,
      "endLine" : 591,
      "cleanedStartLine" : 219,
      "cleanedEndLine" : 225
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 97,
      "endLine" : 105,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 174,
      "endLine" : 182,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 279,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 279,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 223,
      "endLine" : 229,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 181
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 103,
      "endLine" : 109,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 61,
      "endLine" : 67,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 279,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 273,
      "endLine" : 279,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 36,
      "endLine" : 43,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/BarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 32,
      "endLine" : 39,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_function.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 73,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 815,
      "endLine" : 824,
      "cleanedStartLine" : 714,
      "cleanedEndLine" : 720
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 841,
      "endLine" : 850,
      "cleanedStartLine" : 737,
      "cleanedEndLine" : 743
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 475,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 189
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 30,
      "endLine" : 37,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SpokeAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 23,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 24,
      "endLine" : 31,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 96,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 475,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 189
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 475,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 189
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 977,
      "endLine" : 983,
      "cleanedStartLine" : 398,
      "cleanedEndLine" : 404
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 66,
      "endLine" : 72,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 241,
      "endLine" : 248,
      "cleanedStartLine" : 189,
      "cleanedEndLine" : 195
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 456,
      "endLine" : 463,
      "cleanedStartLine" : 364,
      "cleanedEndLine" : 370
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 469,
      "endLine" : 475,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 189
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 76,
      "endLine" : 82,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 66,
      "endLine" : 72,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 138,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 178,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 241,
      "endLine" : 248,
      "cleanedStartLine" : 189,
      "cleanedEndLine" : 195
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 483,
      "endLine" : 490,
      "cleanedStartLine" : 384,
      "cleanedEndLine" : 390
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 98,
      "endLine" : 104,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 90,
      "endLine" : 96,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 719,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 293
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 136,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 93,
      "endLine" : 100,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 134,
      "endLine" : 141,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 241,
      "endLine" : 248,
      "cleanedStartLine" : 189,
      "cleanedEndLine" : 195
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 511,
      "endLine" : 518,
      "cleanedStartLine" : 405,
      "cleanedEndLine" : 411
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 63,
      "endLine" : 69,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 49,
      "endLine" : 55,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 76,
      "endLine" : 82,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 59
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 800,
      "endLine" : 806,
      "cleanedStartLine" : 699,
      "cleanedEndLine" : 705
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 719,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 293
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 83,
      "endLine" : 89,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 67,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 719,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 293
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 64,
      "endLine" : 70,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 852,
      "endLine" : 858,
      "cleanedStartLine" : 745,
      "cleanedEndLine" : 751
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 713,
      "endLine" : 719,
      "cleanedStartLine" : 287,
      "cleanedEndLine" : 293
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 58,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 49,
      "endLine" : 55,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 58,
      "endLine" : 64,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 826,
      "endLine" : 832,
      "cleanedStartLine" : 722,
      "cleanedEndLine" : 728
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 95,
      "endLine" : 101,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 178,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 112,
      "endLine" : 118,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Shape.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 42,
      "endLine" : 48,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 84,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 48,
      "endLine" : 54,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/RibbonAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 29,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 39,
      "endLine" : 45,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 118,
      "endLine" : 124,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 49,
      "endLine" : 55,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 228,
      "endLine" : 234,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 405,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 342,
      "endLine" : 348,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 218,
      "endLine" : 224,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 314,
      "endLine" : 320,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 126
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 178,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 159,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 405,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 218,
      "endLine" : 224,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 369,
      "endLine" : 375,
      "cleanedStartLine" : 143,
      "cleanedEndLine" : 149
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 852,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 352
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 405,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 399,
      "endLine" : 405,
      "cleanedStartLine" : 148,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 846,
      "endLine" : 852,
      "cleanedStartLine" : 346,
      "cleanedEndLine" : 352
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 108,
      "endLine" : 114,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 122,
      "endLine" : 129,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/Density2dMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 40,
      "endLine" : 46,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/DensityMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 23,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 40,
      "endLine" : 46,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 110,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 828,
      "endLine" : 834,
      "cleanedStartLine" : 724,
      "cleanedEndLine" : 730
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 97,
      "endLine" : 103,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 65,
      "endLine" : 73,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 174,
      "endLine" : 182,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 114,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 134,
      "endLine" : 141,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 118,
      "endLine" : 124,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/GGBunchThemeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 275,
      "endLine" : 281,
      "cleanedStartLine" : 192,
      "cleanedEndLine" : 198
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 332,
      "endLine" : 338,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 128
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 256,
      "endLine" : 262,
      "cleanedStartLine" : 98,
      "cleanedEndLine" : 104
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 65,
      "endLine" : 73,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 192,
      "endLine" : 200,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 155
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 65,
      "endLine" : 73,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 154,
      "endLine" : 162,
      "cleanedStartLine" : 116,
      "cleanedEndLine" : 122
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 122,
      "endLine" : 128,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1073,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 447
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 325,
      "endLine" : 331,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 79,
      "endLine" : 85,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 112,
      "endLine" : 118,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 49,
      "endLine" : 55,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1073,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 447
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 267,
      "endLine" : 273,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 115
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 107,
      "endLine" : 114,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/BarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 32,
      "endLine" : 39,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HistogramAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 31,
      "endLine" : 38,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 344,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 338,
      "endLine" : 344,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 96,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1073,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 447
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 435,
      "endLine" : 441,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1067,
      "endLine" : 1073,
      "cleanedStartLine" : 441,
      "cleanedEndLine" : 447
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 380,
      "endLine" : 386,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 87,
      "endLine" : 93,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 688,
      "endLine" : 694,
      "cleanedStartLine" : 599,
      "cleanedEndLine" : 605
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 65,
      "endLine" : 73,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 135,
      "endLine" : 143,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 65,
      "endLine" : 73,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 180,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 102,
      "endLine" : 110,
      "cleanedStartLine" : 58,
      "cleanedEndLine" : 64
    }, {
      "file" : {
        "relativePath" : "toolkit/geotools/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 87,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 34,
      "endLine" : 42,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 93,
      "endLine" : 99,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 65,
      "endLine" : 71,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 56,
      "endLine" : 62,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 84,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 392,
      "endLine" : 398,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 145,
      "endLine" : 151,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 178,
      "endLine" : 184,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 84,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 443,
      "endLine" : 449,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 179
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 483,
      "endLine" : 489,
      "cleanedStartLine" : 183,
      "cleanedEndLine" : 189
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 256,
      "endLine" : 262,
      "cleanedStartLine" : 98,
      "cleanedEndLine" : 104
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 78,
      "endLine" : 84,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Identity.kt",
        "extension" : "kt",
        "linesOfCode" : 205,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 201,
      "startLine" : 493,
      "endLine" : 499,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 59,
      "endLine" : 65,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 79,
      "endLine" : 85,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 58,
      "endLine" : 64,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 91,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 126,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 178,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 280,
      "endLine" : 285,
      "cleanedStartLine" : 167,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/font/FontFeaturesTest.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/font/FontFeaturesTest.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 50,
      "endLine" : 55,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 105,
      "endLine" : 111,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 77,
      "endLine" : 82,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 104
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 66,
      "endLine" : 71,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 117,
      "endLine" : 122,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 118,
      "endLine" : 123,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 299,
      "endLine" : 304,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 107
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 578,
      "endLine" : 583,
      "cleanedStartLine" : 212,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ABLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 154,
      "endLine" : 159,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 26,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 47,
      "endLine" : 52,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 61,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 17,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 32,
      "endLine" : 37,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 183,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 299,
      "endLine" : 304,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 107
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 466,
      "endLine" : 471,
      "cleanedStartLine" : 168,
      "cleanedEndLine" : 173
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 29,
      "endLine" : 34,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/RibbonMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 23,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 30,
      "endLine" : 35,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "toolkit/json/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 79,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 34,
      "endLine" : 41,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "toolkit/jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 104,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 681,
      "endLine" : 686,
      "cleanedStartLine" : 592,
      "cleanedEndLine" : 597
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 715,
      "endLine" : 720,
      "cleanedStartLine" : 289,
      "cleanedEndLine" : 294
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ABLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 48,
      "endLine" : 53,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/Density2dMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HistogramMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 36,
      "endLine" : 41,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 77,
      "endLine" : 82,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 255,
      "endLine" : 260,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 102
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 313,
      "endLine" : 318,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 124
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 146,
      "endLine" : 151,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 163,
      "endLine" : 168,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 46,
      "endLine" : 51,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ABLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 106,
      "endLine" : 111,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 83,
      "endLine" : 88,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 299,
      "endLine" : 304,
      "cleanedStartLine" : 243,
      "cleanedEndLine" : 248
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 83,
      "endLine" : 88,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 66,
      "endLine" : 71,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 255,
      "endLine" : 260,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 102
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 368,
      "endLine" : 373,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 147
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 139,
      "endLine" : 144,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 83,
      "endLine" : 88,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 42,
      "endLine" : 47,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 188,
      "endLine" : 193,
      "cleanedStartLine" : 58,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 354,
      "endLine" : 359,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 129
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 118,
      "endLine" : 123,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 210,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/resources/testsuite1/PngSuite.htm",
        "extension" : "htm",
        "linesOfCode" : 541,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 454,
      "startLine" : 79,
      "endLine" : 85,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 30,
      "endLine" : 35,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 120,
      "endLine" : 126,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 105,
      "endLine" : 111,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 299,
      "endLine" : 304,
      "cleanedStartLine" : 243,
      "cleanedEndLine" : 248
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 138,
      "endLine" : 143,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 103,
      "endLine" : 109,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 89,
      "endLine" : 95,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 277,
      "endLine" : 282,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 169
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 280,
      "endLine" : 285,
      "cleanedStartLine" : 167,
      "cleanedEndLine" : 172
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 49,
      "endLine" : 54,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HistogramAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 38,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PointAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 39,
      "endLine" : 44,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "toolkit/geotools-jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 106,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 71,
      "endLine" : 78,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "toolkit/json/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 79,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 34,
      "endLine" : 41,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 408,
      "endLine" : 413,
      "cleanedStartLine" : 338,
      "cleanedEndLine" : 343
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 552,
      "endLine" : 557,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 478
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/spatial/SpatialParamTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/spatial/SpatialParamTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/PngReader.kt",
        "extension" : "kt",
        "linesOfCode" : 274,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 313,
      "endLine" : 319,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 84
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/PngReader.kt",
        "extension" : "kt",
        "linesOfCode" : 274,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 217,
      "startLine" : 375,
      "endLine" : 381,
      "cleanedStartLine" : 114,
      "cleanedEndLine" : 119
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 277,
      "endLine" : 282,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 169
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/ImageLineByte.kt",
        "extension" : "kt",
        "linesOfCode" : 146,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 123,
      "startLine" : 90,
      "endLine" : 96,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/ImageLineInt.kt",
        "extension" : "kt",
        "linesOfCode" : 144,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 126,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 126,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 66,
      "endLine" : 71,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 228,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 77,
      "endLine" : 82,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PointAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 39,
      "endLine" : 44,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 201,
      "endLine" : 206,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 80
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 255,
      "endLine" : 260,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 228,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 156,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 243,
      "endLine" : 248,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 198
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 299,
      "endLine" : 304,
      "cleanedStartLine" : 243,
      "cleanedEndLine" : 248
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 210,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 29,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 41,
      "endLine" : 47,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 30,
      "endLine" : 36,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 90,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 208,
      "endLine" : 213,
      "cleanedStartLine" : 101,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 274,
      "endLine" : 279,
      "cleanedStartLine" : 161,
      "cleanedEndLine" : 166
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 299,
      "endLine" : 304,
      "cleanedStartLine" : 243,
      "cleanedEndLine" : 248
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 170,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 170,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 275,
      "endLine" : 280,
      "cleanedStartLine" : 101,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 228,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 404,
      "endLine" : 409,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 158
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 180,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 99,
      "endLine" : 105,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "toolkit/json/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 79,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 17,
      "endLine" : 23,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 66
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 223,
      "endLine" : 228,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 181
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 29,
      "endLine" : 34,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "toolkit/geotools-jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 106,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 36,
      "endLine" : 46,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "toolkit/jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 104,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 32,
      "endLine" : 42,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 17,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 32,
      "endLine" : 37,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PointAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 42,
      "endLine" : 47,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SinaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 27,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 36,
      "endLine" : 41,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/guide.kt",
        "extension" : "kt",
        "linesOfCode" : 128,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 119,
      "startLine" : 135,
      "endLine" : 141,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/guide.kt",
        "extension" : "kt",
        "linesOfCode" : 128,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 119,
      "startLine" : 236,
      "endLine" : 242,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 114
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 368,
      "endLine" : 373,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 147
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 423,
      "endLine" : 428,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 169
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 106,
      "endLine" : 111,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/BarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 34,
      "endLine" : 39,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PointAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 39,
      "endLine" : 44,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 90,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ScaleTest.kt",
        "extension" : "kt",
        "linesOfCode" : 197,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 48,
      "endLine" : 53,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ScaleTest.kt",
        "extension" : "kt",
        "linesOfCode" : 197,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 65,
      "endLine" : 70,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 64,
      "endLine" : 69,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 118,
      "endLine" : 123,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 83,
      "endLine" : 88,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 77,
      "endLine" : 82,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 128,
      "endLine" : 133,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 206,
      "endLine" : 211,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 104
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 210,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 60,
      "endLine" : 65,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 408,
      "endLine" : 413,
      "cleanedStartLine" : 338,
      "cleanedEndLine" : 343
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 175,
      "endLine" : 180,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 61,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 27,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 26,
      "endLine" : 31,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/RibbonAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 29,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 27,
      "endLine" : 32,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 126,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 118,
      "endLine" : 123,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 170,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "toolkit/geotools/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 87,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 45,
      "endLine" : 52,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "toolkit/json/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 79,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 34,
      "endLine" : 41,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 64,
      "endLine" : 69,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 77,
      "endLine" : 82,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 745,
      "endLine" : 750,
      "cleanedStartLine" : 650,
      "cleanedEndLine" : 655
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 106,
      "endLine" : 111,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 90,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/RibbonAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 29,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 46,
      "endLine" : 51,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SmoothAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 40,
      "endLine" : 45,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 48,
      "endLine" : 53,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 46,
      "endLine" : 51,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/DensityMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 23,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HistogramMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 36,
      "endLine" : 41,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 90,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 60,
      "endLine" : 65,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 170,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 118,
      "endLine" : 123,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 278,
      "endLine" : 283,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 170
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 77,
      "endLine" : 82,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 852,
      "endLine" : 857,
      "cleanedStartLine" : 745,
      "cleanedEndLine" : 750
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 126,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1069,
      "endLine" : 1074,
      "cleanedStartLine" : 443,
      "cleanedEndLine" : 448
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ScaleSizeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/spatial/SpatialParamTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 154,
      "endLine" : 161,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "toolkit/geotools-jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 106,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 3,
      "endLine" : 8,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "toolkit/jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 104,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 1,
      "endLine" : 6,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/ECDFStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 11,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 8,
      "startLine" : 18,
      "endLine" : 24,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/QQ2StatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 11,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 8,
      "startLine" : 18,
      "endLine" : 24,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 75,
      "endLine" : 80,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 681,
      "endLine" : 686,
      "cleanedStartLine" : 592,
      "cleanedEndLine" : 597
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 852,
      "endLine" : 857,
      "cleanedStartLine" : 745,
      "cleanedEndLine" : 750
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 66,
      "endLine" : 71,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 83,
      "endLine" : 88,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/VLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 156,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 145,
      "endLine" : 150,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 210,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 340,
      "endLine" : 345,
      "cleanedStartLine" : 125,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 126,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 77,
      "endLine" : 82,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 210,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 448,
      "endLine" : 453,
      "cleanedStartLine" : 375,
      "cleanedEndLine" : 380
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 494,
      "endLine" : 499,
      "cleanedStartLine" : 418,
      "cleanedEndLine" : 423
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 183,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 527,
      "endLine" : 534,
      "cleanedStartLine" : 436,
      "cleanedEndLine" : 441
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 558,
      "endLine" : 565,
      "cleanedStartLine" : 461,
      "cleanedEndLine" : 466
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "toolkit/geotools-jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 106,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 71,
      "endLine" : 78,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "toolkit/geotools/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 87,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 45,
      "endLine" : 52,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 58,
      "endLine" : 63,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 528,
      "endLine" : 533,
      "cleanedStartLine" : 209,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 66,
      "endLine" : 71,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 138,
      "endLine" : 143,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/BarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 230,
      "endLine" : 235,
      "cleanedStartLine" : 84,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_function.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 73,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 471,
      "endLine" : 476,
      "cleanedStartLine" : 185,
      "cleanedEndLine" : 190
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 90,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 29,
      "endLine" : 34,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 594,
      "endLine" : 599,
      "cleanedStartLine" : 239,
      "cleanedEndLine" : 244
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HLineAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 28,
      "endLine" : 34,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/VLineAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 23,
      "endLine" : 29,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 156,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 118,
      "endLine" : 123,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 295,
      "endLine" : 300,
      "cleanedStartLine" : 181,
      "cleanedEndLine" : 186
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 156,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 128,
      "endLine" : 133,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 139,
      "endLine" : 144,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 126,
      "endLine" : 131,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 156,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 77,
      "endLine" : 82,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 183,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 848,
      "endLine" : 853,
      "cleanedStartLine" : 348,
      "cleanedEndLine" : 353
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 103,
      "endLine" : 108,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 57,
      "endLine" : 62,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 228,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 183,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 146,
      "endLine" : 151,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 48,
      "endLine" : 53,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 17,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 32,
      "endLine" : 37,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 210,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 83,
      "endLine" : 88,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/SizeContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 62,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/ImageLineInt.kt",
        "extension" : "kt",
        "linesOfCode" : 144,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 106,
      "endLine" : 112,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/ImageLineInt.kt",
        "extension" : "kt",
        "linesOfCode" : 144,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 129,
      "endLine" : 135,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 210,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SinaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 24,
      "endLine" : 29,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ViolinMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 776,
      "endLine" : 781,
      "cleanedStartLine" : 316,
      "cleanedEndLine" : 321
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 156,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 17,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 32,
      "endLine" : 37,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 279,
      "endLine" : 284,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 230
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 77,
      "endLine" : 82,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 83,
      "endLine" : 88,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 173,
      "endLine" : 178,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 494,
      "endLine" : 499,
      "cleanedStartLine" : 418,
      "cleanedEndLine" : 423
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 146,
      "endLine" : 151,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 984,
      "endLine" : 989,
      "cleanedStartLine" : 405,
      "cleanedEndLine" : 410
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 139,
      "endLine" : 144,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 27,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 26,
      "endLine" : 31,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SpokeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 48,
      "endLine" : 53,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SpokeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 30,
      "endLine" : 35,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 299,
      "endLine" : 304,
      "cleanedStartLine" : 243,
      "cleanedEndLine" : 248
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/MappingAsDiscreteTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 75,
      "endLine" : 82,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/MappingAsDiscreteTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 92
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 30,
      "endLine" : 36,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 27,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 167,
      "endLine" : 172,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 191,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 292,
      "endLine" : 297,
      "cleanedStartLine" : 166,
      "cleanedEndLine" : 171
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 258,
      "endLine" : 264,
      "cleanedStartLine" : 149,
      "cleanedEndLine" : 154
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 159,
      "endLine" : 164,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ScaleTest.kt",
        "extension" : "kt",
        "linesOfCode" : 197,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 82
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ScaleTest.kt",
        "extension" : "kt",
        "linesOfCode" : 197,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 97
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 279,
      "endLine" : 284,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 230
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/PlotSizeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 19,
      "endLine" : 25,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/spatial/SpatialParamTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 154,
      "endLine" : 161,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 873,
      "endLine" : 878,
      "cleanedStartLine" : 763,
      "cleanedEndLine" : 768
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 77,
      "endLine" : 82,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 205,
      "endLine" : 210,
      "cleanedStartLine" : 160,
      "cleanedEndLine" : 165
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/bistro/corr/OptionsConfiguratorTest.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/bistro/corr/OptionsConfiguratorTest.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 74,
      "cleanedEndLine" : 79
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 123,
      "endLine" : 128,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 156,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 401,
      "endLine" : 406,
      "cleanedStartLine" : 150,
      "cleanedEndLine" : 155
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 77,
      "endLine" : 82,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 277,
      "endLine" : 282,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 169
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 180,
      "endLine" : 185,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 59
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/BarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 39,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 146,
      "endLine" : 151,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 201,
      "endLine" : 206,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 80
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 423,
      "endLine" : 428,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 169
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 147,
      "endLine" : 152,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 133,
      "endLine" : 138,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 139,
      "endLine" : 144,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 106,
      "endLine" : 111,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 133,
      "endLine" : 138,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 183,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 210,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 770,
      "endLine" : 775,
      "cleanedStartLine" : 672,
      "cleanedEndLine" : 677
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 77,
      "endLine" : 82,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SinaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 27,
      "endLine" : 32,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 313,
      "endLine" : 318,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 124
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 423,
      "endLine" : 428,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 169
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 126,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 90,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 852,
      "endLine" : 857,
      "cleanedStartLine" : 745,
      "cleanedEndLine" : 750
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 189,
      "endLine" : 194,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 69
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 65,
      "endLine" : 70,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 138,
      "endLine" : 143,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 83,
      "endLine" : 88,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/ImageLineByte.kt",
        "extension" : "kt",
        "linesOfCode" : 146,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 123,
      "startLine" : 106,
      "endLine" : 112,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/ImageLineInt.kt",
        "extension" : "kt",
        "linesOfCode" : 144,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 121,
      "endLine" : 127,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 40,
      "endLine" : 45,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 64,
      "endLine" : 69,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 66,
      "endLine" : 71,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_function.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 73,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 139,
      "endLine" : 144,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 64,
      "endLine" : 69,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_function.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 73,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 66,
      "endLine" : 71,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 170,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/BandAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 27,
      "endLine" : 32,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/RectAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 31,
      "endLine" : 36,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 58,
      "endLine" : 63,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 228,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 126,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 26,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 47,
      "endLine" : 52,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 156,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 135,
      "endLine" : 140,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 119,
      "endLine" : 124,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 77,
      "endLine" : 82,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 126,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 243,
      "endLine" : 248,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 198
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 981,
      "endLine" : 986,
      "cleanedStartLine" : 402,
      "cleanedEndLine" : 407
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 770,
      "endLine" : 775,
      "cleanedStartLine" : 672,
      "cleanedEndLine" : 677
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 106,
      "endLine" : 111,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 173,
      "endLine" : 178,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 139,
      "endLine" : 144,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 40,
      "endLine" : 45,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 77,
      "endLine" : 82,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 66,
      "endLine" : 71,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 90,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/VLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PointMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 34,
      "endLine" : 39,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 61,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 42,
      "endLine" : 47,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 26,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 47,
      "endLine" : 52,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 42,
      "endLine" : 47,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 82
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 77,
      "endLine" : 82,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 873,
      "endLine" : 878,
      "cleanedStartLine" : 763,
      "cleanedEndLine" : 768
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 183,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SpokeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ScaleSizeTest.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 20,
      "endLine" : 26,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/spatial/SpatialParamTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 154,
      "endLine" : 161,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 83,
      "endLine" : 88,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 244,
      "endLine" : 249,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 299,
      "endLine" : 304,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 107
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 779,
      "endLine" : 784,
      "cleanedStartLine" : 319,
      "cleanedEndLine" : 324
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 210,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 210,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 59,
      "endLine" : 64,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorBrewer.kt",
        "extension" : "kt",
        "linesOfCode" : 95,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 83,
      "endLine" : 88,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 745,
      "endLine" : 750,
      "cleanedStartLine" : 650,
      "cleanedEndLine" : 655
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 770,
      "endLine" : 775,
      "cleanedStartLine" : 672,
      "cleanedEndLine" : 677
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 142,
      "endLine" : 147,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 58
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 255,
      "endLine" : 260,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/BandMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 30,
      "endLine" : 35,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/RectMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ABLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 83,
      "endLine" : 88,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/spatial/SpatialParamTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 60,
      "endLine" : 65,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/spatial/SpatialParamTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 103,
      "endLine" : 108,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/spatial/SpatialParamTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 60,
      "endLine" : 65,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/spatial/SpatialParamTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SpokeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 69,
      "endLine" : 74,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PointMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 34,
      "endLine" : 39,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SinaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 27,
      "endLine" : 32,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 228,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 210,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 103,
      "endLine" : 108,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 103,
      "endLine" : 108,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 156,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PointAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 31,
      "endLine" : 36,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 22,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/BinHexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 40,
      "endLine" : 45,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HistogramMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 36,
      "endLine" : 41,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 139,
      "endLine" : 144,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 27,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 29,
      "endLine" : 35,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/corr/CorrPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 376,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 318,
      "startLine" : 392,
      "endLine" : 397,
      "cleanedStartLine" : 209,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/corr/CorrPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 376,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 318,
      "startLine" : 425,
      "endLine" : 430,
      "cleanedStartLine" : 236,
      "cleanedEndLine" : 241
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 126,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 910,
      "endLine" : 915,
      "cleanedStartLine" : 373,
      "cleanedEndLine" : 378
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/corr/CorrPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 376,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 318,
      "startLine" : 392,
      "endLine" : 397,
      "cleanedStartLine" : 209,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/corr/CorrPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 376,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 318,
      "startLine" : 414,
      "endLine" : 419,
      "cleanedStartLine" : 227,
      "cleanedEndLine" : 232
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/QQ2StatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 11,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 8,
      "startLine" : 18,
      "endLine" : 24,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/SmoothStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 11,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 8,
      "startLine" : 18,
      "endLine" : 24,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/chunks/PngChunkOFFS.kt",
        "extension" : "kt",
        "linesOfCode" : 30,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 37,
      "endLine" : 43,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/chunks/PngChunkPHYS.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 17,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 32,
      "endLine" : 37,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 90,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 33,
      "endLine" : 38,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 118,
      "endLine" : 123,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 1145,
      "endLine" : 1150,
      "cleanedStartLine" : 474,
      "cleanedEndLine" : 479
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 82
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 83,
      "endLine" : 88,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 143,
      "endLine" : 148,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 156,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Linewidth.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 62,
      "endLine" : 67,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 228,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 48,
      "endLine" : 53,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 423,
      "endLine" : 428,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 169
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Alpha.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 61,
      "endLine" : 66,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 29,
      "endLine" : 34,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 104
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 66,
      "endLine" : 71,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 873,
      "endLine" : 878,
      "cleanedStartLine" : 763,
      "cleanedEndLine" : 768
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 146,
      "endLine" : 151,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HistogramAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 31,
      "endLine" : 37,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 90,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 138,
      "endLine" : 143,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 440,
      "endLine" : 449,
      "cleanedStartLine" : 368,
      "cleanedEndLine" : 373
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/ImshowTest.kt",
        "extension" : "kt",
        "linesOfCode" : 578,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 525,
      "startLine" : 497,
      "endLine" : 506,
      "cleanedStartLine" : 412,
      "cleanedEndLine" : 417
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 873,
      "endLine" : 878,
      "cleanedStartLine" : 763,
      "cleanedEndLine" : 768
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 191,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 150,
      "endLine" : 155,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 128,
      "endLine" : 133,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 62,
      "endLine" : 67,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/VLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 48,
      "endLine" : 53,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 170,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 183,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 48,
      "endLine" : 53,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 48,
      "endLine" : 53,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 29,
      "endLine" : 34,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PointAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 31,
      "endLine" : 36,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SinaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 27,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 24,
      "endLine" : 29,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 69,
      "endLine" : 74,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 207,
      "endLine" : 212,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "toolkit/geotools-jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 106,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 71,
      "endLine" : 78,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "toolkit/jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 104,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 175,
      "endLine" : 180,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 139,
      "endLine" : 144,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 30,
      "endLine" : 35,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 48,
      "endLine" : 53,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 255,
      "endLine" : 260,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SpokeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 20,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 170,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 183,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 121,
      "endLine" : 126,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 253,
      "endLine" : 260,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 150
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 302,
      "endLine" : 309,
      "cleanedStartLine" : 188,
      "cleanedEndLine" : 193
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 156,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 299,
      "endLine" : 304,
      "cleanedStartLine" : 243,
      "cleanedEndLine" : 248
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 128,
      "endLine" : 133,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 126,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 29,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 41,
      "endLine" : 47,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SpokeAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 23,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 24,
      "endLine" : 30,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 133,
      "endLine" : 138,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 146,
      "endLine" : 151,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 681,
      "endLine" : 686,
      "cleanedStartLine" : 592,
      "cleanedEndLine" : 597
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 770,
      "endLine" : 775,
      "cleanedStartLine" : 672,
      "cleanedEndLine" : 677
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 681,
      "endLine" : 686,
      "cleanedStartLine" : 592,
      "cleanedEndLine" : 597
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 745,
      "endLine" : 750,
      "cleanedStartLine" : 650,
      "cleanedEndLine" : 655
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 75,
      "endLine" : 80,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 48,
      "endLine" : 53,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/VLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 210,
      "endLine" : 215,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorViridis.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 279,
      "endLine" : 284,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 100
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 207,
      "endLine" : 212,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/RibbonAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 29,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 27,
      "endLine" : 32,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count2d.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 773,
      "endLine" : 778,
      "cleanedStartLine" : 313,
      "cleanedEndLine" : 318
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 228,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 117,
      "endLine" : 122,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/bistro/corr/OptionsConfiguratorTest.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/bistro/corr/OptionsConfiguratorTest.kt",
        "extension" : "kt",
        "linesOfCode" : 106,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 84,
      "cleanedEndLine" : 89
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 77,
      "endLine" : 82,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 228,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 156,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 170,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 279,
      "endLine" : 284,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 230
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 299,
      "endLine" : 304,
      "cleanedStartLine" : 243,
      "cleanedEndLine" : 248
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 161,
      "endLine" : 166,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 243,
      "endLine" : 248,
      "cleanedStartLine" : 193,
      "cleanedEndLine" : 198
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ydotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Stat.kt",
        "extension" : "kt",
        "linesOfCode" : 379,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 351,
      "startLine" : 299,
      "endLine" : 304,
      "cleanedStartLine" : 243,
      "cleanedEndLine" : 248
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 156,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 852,
      "endLine" : 857,
      "cleanedStartLine" : 745,
      "cleanedEndLine" : 750
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 90,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 183,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 745,
      "endLine" : 750,
      "cleanedStartLine" : 650,
      "cleanedEndLine" : 655
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 170,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ABLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 61,
      "endLine" : 66,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 873,
      "endLine" : 878,
      "cleanedStartLine" : 763,
      "cleanedEndLine" : 768
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 83,
      "endLine" : 88,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 104
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 170,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 126,
      "endLine" : 131,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 228,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 83,
      "endLine" : 88,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 48,
      "endLine" : 53,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_function.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 73,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/corr/CorrPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 376,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 318,
      "startLine" : 403,
      "endLine" : 408,
      "cleanedStartLine" : 218,
      "cleanedEndLine" : 223
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/corr/CorrPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 376,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 318,
      "startLine" : 414,
      "endLine" : 419,
      "cleanedStartLine" : 227,
      "cleanedEndLine" : 232
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 26,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 47,
      "endLine" : 52,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 40,
      "endLine" : 45,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 210,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 295,
      "endLine" : 300,
      "cleanedStartLine" : 181,
      "cleanedEndLine" : 186
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/corr/CorrPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 376,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 318,
      "startLine" : 403,
      "endLine" : 408,
      "cleanedStartLine" : 218,
      "cleanedEndLine" : 223
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/bistro/corr/CorrPlot.kt",
        "extension" : "kt",
        "linesOfCode" : 376,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 318,
      "startLine" : 425,
      "endLine" : 430,
      "cleanedStartLine" : 236,
      "cleanedEndLine" : 241
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 75,
      "endLine" : 80,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 133,
      "endLine" : 138,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 228,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 354,
      "endLine" : 359,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 522,
      "endLine" : 527,
      "cleanedStartLine" : 190,
      "cleanedEndLine" : 195
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 183,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 354,
      "endLine" : 359,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/XYContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 234,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 229,
      "startLine" : 410,
      "endLine" : 415,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 151
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/chunks/PngChunkBKGD.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 38,
      "endLine" : 44,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/chunks/PngChunkTRNS.kt",
        "extension" : "kt",
        "linesOfCode" : 91,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 44,
      "endLine" : 50,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 173,
      "endLine" : 178,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 146,
      "endLine" : 151,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 170,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 170,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 210,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 170,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 75,
      "endLine" : 80,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 123,
      "endLine" : 128,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 130,
      "endLine" : 135,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 228,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 873,
      "endLine" : 878,
      "cleanedStartLine" : 763,
      "cleanedEndLine" : 768
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 213,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 280,
      "endLine" : 285,
      "cleanedStartLine" : 167,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SinaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 27,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 21,
      "endLine" : 26,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ViolinAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 26,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 26,
      "endLine" : 31,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 104
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 83,
      "endLine" : 88,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 873,
      "endLine" : 878,
      "cleanedStartLine" : 763,
      "cleanedEndLine" : 768
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 46,
      "endLine" : 51,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 22,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SinaAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 27,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 24,
      "endLine" : 29,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 142,
      "endLine" : 147,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 58
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 423,
      "endLine" : 428,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 169
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PointDensityMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 34,
      "endLine" : 39,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SinaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 27,
      "endLine" : 32,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 173,
      "endLine" : 178,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaRidgesMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 29,
      "endLine" : 34,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 183,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 210,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 773,
      "endLine" : 778,
      "cleanedStartLine" : 313,
      "cleanedEndLine" : 318
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 69,
      "endLine" : 74,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 183,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 128,
      "endLine" : 133,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 146,
      "endLine" : 151,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/PlotTitleTest.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 20,
      "endLine" : 26,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/spatial/SpatialParamTest.kt",
        "extension" : "kt",
        "linesOfCode" : 120,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 105,
      "startLine" : 154,
      "endLine" : 161,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 46,
      "endLine" : 51,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 126,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 118,
      "endLine" : 123,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/ECDFStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 11,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 8,
      "startLine" : 18,
      "endLine" : 24,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/stat/SmoothStatAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 11,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 8,
      "startLine" : 18,
      "endLine" : 24,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HistogramAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 31,
      "endLine" : 37,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 39,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 106,
      "endLine" : 111,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 531,
      "endLine" : 536,
      "cleanedStartLine" : 212,
      "cleanedEndLine" : 217
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 873,
      "endLine" : 878,
      "cleanedStartLine" : 763,
      "cleanedEndLine" : 768
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_jitter.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 115,
      "endLine" : 121,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 98,
      "endLine" : 104,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 149,
      "endLine" : 154,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 156,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 79,
      "endLine" : 84,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 83,
      "endLine" : 88,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 61,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 40,
      "endLine" : 45,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 228,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 77,
      "endLine" : 82,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "toolkit/geotools/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 87,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 45,
      "endLine" : 52,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "toolkit/jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 104,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 67,
      "endLine" : 74,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PointDensityMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 34,
      "endLine" : 39,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/QQMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 205,
      "endLine" : 210,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HexMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 37,
      "endLine" : 42,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 29,
      "endLine" : 34,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 121,
      "endLine" : 126,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_density.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 90,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/chunks/PngChunkITXT.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 48,
      "endLine" : 55,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/chunks/PngChunkZTXT.kt",
        "extension" : "kt",
        "linesOfCode" : 38,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 36,
      "endLine" : 43,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/AreaMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 22,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 46,
      "endLine" : 51,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_count.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 139,
      "endLine" : 144,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 72,
      "endLine" : 77,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 113,
      "endLine" : 118,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 552,
      "endLine" : 557,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 478
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 139,
      "endLine" : 144,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/RibbonMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 23,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 30,
      "endLine" : 35,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_densityridges.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 183,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 873,
      "endLine" : 878,
      "cleanedStartLine" : 763,
      "cleanedEndLine" : 768
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 180,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 99,
      "endLine" : 105,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "toolkit/geotools-jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 106,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 51,
      "endLine" : 57,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_curve.kt",
        "extension" : "kt",
        "linesOfCode" : 59,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Stroke.kt",
        "extension" : "kt",
        "linesOfCode" : 33,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 58,
      "endLine" : 63,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_raster.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 59,
      "endLine" : 64,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ydensity.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 98,
      "endLine" : 103,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 118,
      "endLine" : 123,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 49,
      "endLine" : 54,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "plot-api/src/jvmTest/kotlin/org/jetbrains/letsPlot/util/pngj/DeflatedChunk2Test.kt",
        "extension" : "kt",
        "linesOfCode" : 81,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 126,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/Geom.kt",
        "extension" : "kt",
        "linesOfCode" : 905,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 866,
      "startLine" : 448,
      "endLine" : 453,
      "cleanedStartLine" : 375,
      "cleanedEndLine" : 380
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 89,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 163,
      "endLine" : 168,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_abline.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointrange.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 60,
      "endLine" : 65,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_smooth.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_segment.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 116,
      "endLine" : 121,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/TileMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 35,
      "endLine" : 40,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/VLineMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/CrossBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 45,
      "endLine" : 51,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 29,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/ErrorBarAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 29,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 41,
      "endLine" : 47,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PathAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 19,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 29,
      "endLine" : 35,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_count.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 183,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 126,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 115,
      "endLine" : 120,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 69,
      "endLine" : 74,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 170,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2df.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 117,
      "endLine" : 122,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ScaleDiscrete.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_boxplot.kt",
        "extension" : "kt",
        "linesOfCode" : 191,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 284,
      "endLine" : 289,
      "cleanedStartLine" : 158,
      "cleanedEndLine" : 163
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_function.kt",
        "extension" : "kt",
        "linesOfCode" : 90,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 73,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/ColorContinuous.kt",
        "extension" : "kt",
        "linesOfCode" : 504,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 481,
      "startLine" : 655,
      "endLine" : 660,
      "cleanedStartLine" : 265,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/scale/Manual.kt",
        "extension" : "kt",
        "linesOfCode" : 194,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary_bin.kt",
        "extension" : "kt",
        "linesOfCode" : 72,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 180,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 99,
      "endLine" : 105,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "toolkit/jupyter/build.gradle.kts",
        "extension" : "kts",
        "linesOfCode" : 104,
        "components" : [ "primary::toolkit" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 47,
      "endLine" : 53,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 93,
      "endLine" : 98,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 126,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 132,
      "endLine" : 137,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 228,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/Bin2dMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 45,
      "endLine" : 50,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/HistogramMapping.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 36,
      "endLine" : 41,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 85,
      "endLine" : 90,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_summary.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 120,
      "endLine" : 125,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 104,
      "endLine" : 109,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contourf.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/LineRangeAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 27,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SpokeAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 23,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 24,
      "endLine" : 30,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_histogram.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 133,
      "endLine" : 138,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density2d.kt",
        "extension" : "kt",
        "linesOfCode" : 65,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 121,
      "endLine" : 126,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_freqpoly.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 100,
      "endLine" : 105,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_line.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 82,
      "endLine" : 87,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 178,
      "endLine" : 183,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_density.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 101,
      "endLine" : 106,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PolygonAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/RibbonAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 29,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 46,
      "endLine" : 51,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/PolygonAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/intern/layer/geom/SmoothAesthetics.kt",
        "extension" : "kt",
        "linesOfCode" : 25,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 40,
      "endLine" : 45,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq2_line.kt",
        "extension" : "kt",
        "linesOfCode" : 54,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 73,
      "endLine" : 78,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_point.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 134,
      "endLine" : 139,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pointdensity.kt",
        "extension" : "kt",
        "linesOfCode" : 68,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 141,
      "endLine" : 146,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hline.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_spoke.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 225,
      "endLine" : 230,
      "cleanedStartLine" : 71,
      "cleanedEndLine" : 76
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_crossbar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 106,
      "endLine" : 111,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_ribbon.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 91,
      "endLine" : 96,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_linerange.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 105,
      "endLine" : 110,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_dotplot.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_errorbar.kt",
        "extension" : "kt",
        "linesOfCode" : 52,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 125,
      "endLine" : 130,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_ecdf.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_label_repel.kt",
        "extension" : "kt",
        "linesOfCode" : 97,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 223,
      "endLine" : 228,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_pie.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 172,
      "endLine" : 177,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area_ridges.kt",
        "extension" : "kt",
        "linesOfCode" : 71,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 151,
      "endLine" : 156,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bar.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 127,
      "endLine" : 132,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_text.kt",
        "extension" : "kt",
        "linesOfCode" : 70,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 165,
      "endLine" : 170,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_bin2d.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_sina.kt",
        "extension" : "kt",
        "linesOfCode" : 79,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 153,
      "endLine" : 158,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 122,
      "endLine" : 127,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_polygon.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 114,
      "endLine" : 119,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_vline.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_blank.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 88,
      "endLine" : 93,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_contour.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 80,
      "endLine" : 85,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_band.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_violin.kt",
        "extension" : "kt",
        "linesOfCode" : 73,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 160,
      "endLine" : 165,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_hex.kt",
        "extension" : "kt",
        "linesOfCode" : 69,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_path.kt",
        "extension" : "kt",
        "linesOfCode" : 57,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_step.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 74,
      "endLine" : 79,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_tile.kt",
        "extension" : "kt",
        "linesOfCode" : 56,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_map.kt",
        "extension" : "kt",
        "linesOfCode" : 53,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/stat/stat_sum.kt",
        "extension" : "kt",
        "linesOfCode" : 51,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_area.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 111,
      "endLine" : 116,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_lollipop.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_qq_line.kt",
        "extension" : "kt",
        "linesOfCode" : 58,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 89,
      "endLine" : 94,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/geom/geom_rect.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::plot-api" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 84,
      "endLine" : 89,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  } ],
  "overallDuplication" : null
}