{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 16:39:12",
  "duplicates" : [ {
    "blockSize" : 33,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgLineElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 64,
      "endLine" : 116,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgPathElement.java",
        "extension" : "java",
        "linesOfCode" : 67,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 46,
      "endLine" : 98,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 33,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgEllipseElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 64,
      "endLine" : 116,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgPathElement.java",
        "extension" : "java",
        "linesOfCode" : 67,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 46,
      "endLine" : 98,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 33,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgCircleElement.java",
        "extension" : "java",
        "linesOfCode" : 80,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 62,
      "endLine" : 114,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgPathElement.java",
        "extension" : "java",
        "linesOfCode" : 67,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 46,
      "endLine" : 98,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 33,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgCircleElement.java",
        "extension" : "java",
        "linesOfCode" : 80,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 62,
      "endLine" : 114,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgRectElement.java",
        "extension" : "java",
        "linesOfCode" : 89,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 73,
      "endLine" : 125,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 33,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgCircleElement.java",
        "extension" : "java",
        "linesOfCode" : 80,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 62,
      "endLine" : 114,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgLineElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 64,
      "endLine" : 116,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 33,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgPathElement.java",
        "extension" : "java",
        "linesOfCode" : 67,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 46,
      "endLine" : 98,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgRectElement.java",
        "extension" : "java",
        "linesOfCode" : 89,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 73,
      "endLine" : 125,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 33,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgCircleElement.java",
        "extension" : "java",
        "linesOfCode" : 80,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 62,
      "endLine" : 114,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgEllipseElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 64,
      "endLine" : 116,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 33,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgEllipseElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 64,
      "endLine" : 116,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgRectElement.java",
        "extension" : "java",
        "linesOfCode" : 89,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 73,
      "endLine" : 125,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 33,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgEllipseElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 64,
      "endLine" : 116,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgLineElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 64,
      "endLine" : 116,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 33,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgLineElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 64,
      "endLine" : 116,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgRectElement.java",
        "extension" : "java",
        "linesOfCode" : 89,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 73,
      "endLine" : 125,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 24,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTSpanElement.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 66,
      "endLine" : 103,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTextElement.java",
        "extension" : "java",
        "linesOfCode" : 103,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 92,
      "endLine" : 129,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 63
    } ]
  }, {
    "blockSize" : 23,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/toAwt/SvgElementMapper.java",
        "extension" : "java",
        "linesOfCode" : 108,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 49,
      "endLine" : 81,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/toDom/SvgElementMapper.java",
        "extension" : "java",
        "linesOfCode" : 128,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 86,
      "startLine" : 51,
      "endLine" : 83,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgRectElement.java",
        "extension" : "java",
        "linesOfCode" : 89,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 78,
      "endLine" : 113,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTextElement.java",
        "extension" : "java",
        "linesOfCode" : 103,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 92,
      "endLine" : 127,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgPathElement.java",
        "extension" : "java",
        "linesOfCode" : 67,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 51,
      "endLine" : 86,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTextElement.java",
        "extension" : "java",
        "linesOfCode" : 103,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 92,
      "endLine" : 127,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgLineElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 69,
      "endLine" : 104,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTSpanElement.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 66,
      "endLine" : 101,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgCircleElement.java",
        "extension" : "java",
        "linesOfCode" : 80,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 67,
      "endLine" : 102,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTSpanElement.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 66,
      "endLine" : 101,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/BaseCellMapper.java",
        "extension" : "java",
        "linesOfCode" : 224,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 160,
      "startLine" : 101,
      "endLine" : 136,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toView/BaseCellMapper.java",
        "extension" : "java",
        "linesOfCode" : 161,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 114,
      "startLine" : 76,
      "endLine" : 111,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgPathElement.java",
        "extension" : "java",
        "linesOfCode" : 67,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 51,
      "endLine" : 86,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTSpanElement.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 66,
      "endLine" : 101,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgCircleElement.java",
        "extension" : "java",
        "linesOfCode" : 80,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 67,
      "endLine" : 102,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTextElement.java",
        "extension" : "java",
        "linesOfCode" : 103,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 92,
      "endLine" : 127,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgEllipseElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 69,
      "endLine" : 104,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTextElement.java",
        "extension" : "java",
        "linesOfCode" : 103,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 92,
      "endLine" : 127,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgLineElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 69,
      "endLine" : 104,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTextElement.java",
        "extension" : "java",
        "linesOfCode" : 103,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 92,
      "endLine" : 127,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgEllipseElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 69,
      "endLine" : 104,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTSpanElement.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 66,
      "endLine" : 101,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgRectElement.java",
        "extension" : "java",
        "linesOfCode" : 89,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 78,
      "endLine" : 113,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTSpanElement.java",
        "extension" : "java",
        "linesOfCode" : 70,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 66,
      "endLine" : 101,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 20,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/IndentRootCellMapper.java",
        "extension" : "java",
        "linesOfCode" : 185,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 126,
      "startLine" : 113,
      "endLine" : 142,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 69
    }, {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toView/IndentRootCellMapper.java",
        "extension" : "java",
        "linesOfCode" : 187,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 108,
      "endLine" : 137,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 62
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "hybrid/src/main/java/jetbrains/jetpad/hybrid/HybridWrapperRoleCompletion.java",
        "extension" : "java",
        "linesOfCode" : 148,
        "components" : [ "primary::hybrid" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 101,
      "startLine" : 143,
      "endLine" : 169,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 93
    }, {
      "file" : {
        "relativePath" : "hybrid/src/main/java/jetbrains/jetpad/hybrid/TokenCompleter.java",
        "extension" : "java",
        "linesOfCode" : 311,
        "components" : [ "primary::hybrid" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 218,
      "startLine" : 299,
      "endLine" : 325,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 189
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/CellContainerToDomMapper.java",
        "extension" : "java",
        "linesOfCode" : 567,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 427,
      "startLine" : 549,
      "endLine" : 566,
      "cleanedStartLine" : 341,
      "cleanedEndLine" : 356
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/ViewContainerToElementMapper.java",
        "extension" : "java",
        "linesOfCode" : 394,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 286,
      "startLine" : 229,
      "endLine" : 246,
      "cleanedStartLine" : 125,
      "cleanedEndLine" : 140
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "grammar/src/main/java/jetbrains/jetpad/grammar/lr1/LR1Item.java",
        "extension" : "java",
        "linesOfCode" : 84,
        "components" : [ "primary::grammar" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 40,
      "endLine" : 63,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "grammar/src/main/java/jetbrains/jetpad/grammar/slr/SLRItem.java",
        "extension" : "java",
        "linesOfCode" : 76,
        "components" : [ "primary::grammar" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 37,
      "endLine" : 60,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/IndentRootCellMapper.java",
        "extension" : "java",
        "linesOfCode" : 185,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 126,
      "startLine" : 184,
      "endLine" : 204,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toView/IndentRootCellMapper.java",
        "extension" : "java",
        "linesOfCode" : 187,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 181,
      "endLine" : 203,
      "cleanedStartLine" : 94,
      "cleanedEndLine" : 107
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgShape.java",
        "extension" : "java",
        "linesOfCode" : 18,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 23,
      "endLine" : 41,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTextContent.java",
        "extension" : "java",
        "linesOfCode" : 19,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 14,
      "startLine" : 23,
      "endLine" : 41,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgClipPathElement.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 51,
      "endLine" : 68,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgGElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 28,
      "endLine" : 45,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "grammar/src/main/java/jetbrains/jetpad/grammar/lr1/LR1Item.java",
        "extension" : "java",
        "linesOfCode" : 84,
        "components" : [ "primary::grammar" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 98,
      "endLine" : 111,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "grammar/src/main/java/jetbrains/jetpad/grammar/slr/SLRItem.java",
        "extension" : "java",
        "linesOfCode" : 76,
        "components" : [ "primary::grammar" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 90,
      "endLine" : 103,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/CellContainerToDomMapper.java",
        "extension" : "java",
        "linesOfCode" : 567,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 427,
      "startLine" : 575,
      "endLine" : 592,
      "cleanedStartLine" : 361,
      "cleanedEndLine" : 372
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/ViewContainerToElementMapper.java",
        "extension" : "java",
        "linesOfCode" : 394,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 286,
      "startLine" : 255,
      "endLine" : 272,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 156
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgClipPathElement.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 51,
      "endLine" : 68,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgDefsElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 28,
      "endLine" : 45,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgDefsElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 28,
      "endLine" : 45,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgGElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 28,
      "endLine" : 45,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgElement.java",
        "extension" : "java",
        "linesOfCode" : 178,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 117,
      "startLine" : 145,
      "endLine" : 157,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/View.java",
        "extension" : "java",
        "linesOfCode" : 777,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 572,
      "startLine" : 352,
      "endLine" : 364,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 205
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/toAwt/SvgAwtPeer.java",
        "extension" : "java",
        "linesOfCode" : 86,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 102,
      "endLine" : 116,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/toDom/SvgGwtPeer.java",
        "extension" : "java",
        "linesOfCode" : 62,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 94,
      "endLine" : 108,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/indent/IndentCell.java",
        "extension" : "java",
        "linesOfCode" : 127,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 156,
      "endLine" : 168,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/View.java",
        "extension" : "java",
        "linesOfCode" : 777,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 572,
      "startLine" : 352,
      "endLine" : 364,
      "cleanedStartLine" : 196,
      "cleanedEndLine" : 205
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/indent/IndentCell.java",
        "extension" : "java",
        "linesOfCode" : 127,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 156,
      "endLine" : 168,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgElement.java",
        "extension" : "java",
        "linesOfCode" : 178,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 117,
      "startLine" : 145,
      "endLine" : 157,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgCircleElement.java",
        "extension" : "java",
        "linesOfCode" : 80,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 114,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgGElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 45,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgLineElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 104,
      "endLine" : 116,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTextElement.java",
        "extension" : "java",
        "linesOfCode" : 103,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 132,
      "endLine" : 144,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgDefsElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 45,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTextElement.java",
        "extension" : "java",
        "linesOfCode" : 103,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 132,
      "endLine" : 144,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgClipPathElement.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 68,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgPathElement.java",
        "extension" : "java",
        "linesOfCode" : 67,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 86,
      "endLine" : 98,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "projectional/src/main/java/jetbrains/jetpad/projectional/selection/SelectionSupport.java",
        "extension" : "java",
        "linesOfCode" : 378,
        "components" : [ "primary::projectional" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 283,
      "startLine" : 210,
      "endLine" : 220,
      "cleanedStartLine" : 115,
      "cleanedEndLine" : 123
    }, {
      "file" : {
        "relativePath" : "projectional/src/main/java/jetbrains/jetpad/projectional/selection/SelectionSupport.java",
        "extension" : "java",
        "linesOfCode" : 378,
        "components" : [ "primary::projectional" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 283,
      "startLine" : 281,
      "endLine" : 291,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgLineElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 104,
      "endLine" : 116,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgSvgElement.java",
        "extension" : "java",
        "linesOfCode" : 107,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 100,
      "endLine" : 112,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgClipPathElement.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 68,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTextElement.java",
        "extension" : "java",
        "linesOfCode" : 103,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 132,
      "endLine" : 144,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgEllipseElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 104,
      "endLine" : 116,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTextElement.java",
        "extension" : "java",
        "linesOfCode" : 103,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 132,
      "endLine" : 144,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/Svg.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 18,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/View.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 22,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 1,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgDefsElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 45,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgPathElement.java",
        "extension" : "java",
        "linesOfCode" : 67,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 86,
      "endLine" : 98,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgCircleElement.java",
        "extension" : "java",
        "linesOfCode" : 80,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 114,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgDefsElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 45,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgClipPathElement.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 68,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgLineElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 104,
      "endLine" : 116,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgClipPathElement.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 68,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgRectElement.java",
        "extension" : "java",
        "linesOfCode" : 89,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 113,
      "endLine" : 125,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgCircleElement.java",
        "extension" : "java",
        "linesOfCode" : 80,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 114,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgClipPathElement.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 68,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "hybrid/src/main/java/jetbrains/jetpad/hybrid/BaseHybridSynchronizer.java",
        "extension" : "java",
        "linesOfCode" : 678,
        "components" : [ "primary::hybrid" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 486,
      "startLine" : 257,
      "endLine" : 268,
      "cleanedStartLine" : 128,
      "cleanedEndLine" : 136
    }, {
      "file" : {
        "relativePath" : "projectional/src/main/java/jetbrains/jetpad/projectional/cell/BaseProjectionalSynchronizer.java",
        "extension" : "java",
        "linesOfCode" : 650,
        "components" : [ "primary::projectional" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 463,
      "startLine" : 354,
      "endLine" : 365,
      "cleanedStartLine" : 191,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/CellContainerToDomMapper.java",
        "extension" : "java",
        "linesOfCode" : 567,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 427,
      "startLine" : 605,
      "endLine" : 616,
      "cleanedStartLine" : 383,
      "cleanedEndLine" : 391
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/ViewContainerToElementMapper.java",
        "extension" : "java",
        "linesOfCode" : 394,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 286,
      "startLine" : 285,
      "endLine" : 296,
      "cleanedStartLine" : 167,
      "cleanedEndLine" : 175
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgRectElement.java",
        "extension" : "java",
        "linesOfCode" : 89,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 113,
      "endLine" : 125,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgSvgElement.java",
        "extension" : "java",
        "linesOfCode" : 107,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 100,
      "endLine" : 112,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgDefsElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 45,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgRectElement.java",
        "extension" : "java",
        "linesOfCode" : 89,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 113,
      "endLine" : 125,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgCircleElement.java",
        "extension" : "java",
        "linesOfCode" : 80,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 114,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTextElement.java",
        "extension" : "java",
        "linesOfCode" : 103,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 132,
      "endLine" : 144,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgDefsElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 45,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgLineElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 104,
      "endLine" : 116,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgEllipseElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 104,
      "endLine" : 116,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgSvgElement.java",
        "extension" : "java",
        "linesOfCode" : 107,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 100,
      "endLine" : 112,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgPathElement.java",
        "extension" : "java",
        "linesOfCode" : 67,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 86,
      "endLine" : 98,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTextElement.java",
        "extension" : "java",
        "linesOfCode" : 103,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 132,
      "endLine" : 144,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgRectElement.java",
        "extension" : "java",
        "linesOfCode" : 89,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 113,
      "endLine" : 125,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTextElement.java",
        "extension" : "java",
        "linesOfCode" : 103,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 132,
      "endLine" : 144,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgSvgElement.java",
        "extension" : "java",
        "linesOfCode" : 107,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 100,
      "endLine" : 112,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTextElement.java",
        "extension" : "java",
        "linesOfCode" : 103,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 132,
      "endLine" : 144,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgGElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 45,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgTextElement.java",
        "extension" : "java",
        "linesOfCode" : 103,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 132,
      "endLine" : 144,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/IndentRootCellMapper.java",
        "extension" : "java",
        "linesOfCode" : 185,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 126,
      "startLine" : 169,
      "endLine" : 182,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 97
    }, {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toView/IndentRootCellMapper.java",
        "extension" : "java",
        "linesOfCode" : 187,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 166,
      "endLine" : 179,
      "cleanedStartLine" : 84,
      "cleanedEndLine" : 92
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgDefsElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 45,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgSvgElement.java",
        "extension" : "java",
        "linesOfCode" : 107,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 100,
      "endLine" : 112,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/CellContainerToDomMapper.java",
        "extension" : "java",
        "linesOfCode" : 567,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 427,
      "startLine" : 471,
      "endLine" : 480,
      "cleanedStartLine" : 281,
      "cleanedEndLine" : 289
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/ViewContainerToElementMapper.java",
        "extension" : "java",
        "linesOfCode" : 394,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 286,
      "startLine" : 156,
      "endLine" : 165,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 74
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgClipPathElement.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 68,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgEllipseElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 104,
      "endLine" : 116,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "hybrid/src/main/java/jetbrains/jetpad/hybrid/ParsingHybridProperty.java",
        "extension" : "java",
        "linesOfCode" : 249,
        "components" : [ "primary::hybrid" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 178,
      "startLine" : 206,
      "endLine" : 216,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 127
    }, {
      "file" : {
        "relativePath" : "hybrid/src/main/java/jetbrains/jetpad/hybrid/PrettyHybridProperty.java",
        "extension" : "java",
        "linesOfCode" : 221,
        "components" : [ "primary::hybrid" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 146,
      "endLine" : 156,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 81
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgGElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 45,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgPathElement.java",
        "extension" : "java",
        "linesOfCode" : 67,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 86,
      "endLine" : 98,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgCircleElement.java",
        "extension" : "java",
        "linesOfCode" : 80,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 55,
      "startLine" : 102,
      "endLine" : 114,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgSvgElement.java",
        "extension" : "java",
        "linesOfCode" : 107,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 100,
      "endLine" : 112,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgPathElement.java",
        "extension" : "java",
        "linesOfCode" : 67,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 86,
      "endLine" : 98,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgSvgElement.java",
        "extension" : "java",
        "linesOfCode" : 107,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 100,
      "endLine" : 112,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/CellContainerToDomMapper.java",
        "extension" : "java",
        "linesOfCode" : 567,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 427,
      "startLine" : 504,
      "endLine" : 515,
      "cleanedStartLine" : 307,
      "cleanedEndLine" : 315
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/ViewContainerToElementMapper.java",
        "extension" : "java",
        "linesOfCode" : 394,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 286,
      "startLine" : 186,
      "endLine" : 197,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 99
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgEllipseElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 104,
      "endLine" : 116,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgGElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 45,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/indent/updater/IndentUpdater.java",
        "extension" : "java",
        "linesOfCode" : 321,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 239,
      "startLine" : 274,
      "endLine" : 285,
      "cleanedStartLine" : 157,
      "cleanedEndLine" : 165
    }, {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/indent/updater/IndentUpdater.java",
        "extension" : "java",
        "linesOfCode" : 321,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 239,
      "startLine" : 297,
      "endLine" : 308,
      "cleanedStartLine" : 172,
      "cleanedEndLine" : 180
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgGElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 45,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgRectElement.java",
        "extension" : "java",
        "linesOfCode" : 89,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 113,
      "endLine" : 125,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgGElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 45,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgLineElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 104,
      "endLine" : 116,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgDefsElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 45,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgEllipseElement.java",
        "extension" : "java",
        "linesOfCode" : 82,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 104,
      "endLine" : 116,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/toAwt/SvgRootDocumentMapper.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 65,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 27
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/toDom/SvgRootDocumentMapper.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 42,
      "endLine" : 55,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgClipPathElement.java",
        "extension" : "java",
        "linesOfCode" : 42,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 56,
      "endLine" : 68,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgSvgElement.java",
        "extension" : "java",
        "linesOfCode" : 107,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 100,
      "endLine" : 112,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgGElement.java",
        "extension" : "java",
        "linesOfCode" : 26,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 33,
      "endLine" : 45,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgSvgElement.java",
        "extension" : "java",
        "linesOfCode" : 107,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 100,
      "endLine" : 112,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/CellContainerToDomMapper.java",
        "extension" : "java",
        "linesOfCode" : 567,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 427,
      "startLine" : 594,
      "endLine" : 603,
      "cleanedStartLine" : 374,
      "cleanedEndLine" : 381
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/ViewContainerToElementMapper.java",
        "extension" : "java",
        "linesOfCode" : 394,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 286,
      "startLine" : 274,
      "endLine" : 283,
      "cleanedStartLine" : 158,
      "cleanedEndLine" : 165
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/BaseCellMapper.java",
        "extension" : "java",
        "linesOfCode" : 224,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 160,
      "startLine" : 82,
      "endLine" : 95,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toView/BaseCellMapper.java",
        "extension" : "java",
        "linesOfCode" : 161,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 114,
      "startLine" : 61,
      "endLine" : 74,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/toAwt/SvgNodeMapper.java",
        "extension" : "java",
        "linesOfCode" : 32,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 43,
      "endLine" : 54,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/toDom/SvgNodeMapper.java",
        "extension" : "java",
        "linesOfCode" : 30,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 41,
      "endLine" : 52,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/BaseCellMapper.java",
        "extension" : "java",
        "linesOfCode" : 224,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 160,
      "startLine" : 158,
      "endLine" : 169,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 82
    }, {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toView/BaseCellMapper.java",
        "extension" : "java",
        "linesOfCode" : 161,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 114,
      "startLine" : 133,
      "endLine" : 144,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/text/TextEditing.java",
        "extension" : "java",
        "linesOfCode" : 217,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 74,
      "endLine" : 87,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/text/TextEditing.java",
        "extension" : "java",
        "linesOfCode" : 217,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 99,
      "endLine" : 112,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/Cell.java",
        "extension" : "java",
        "linesOfCode" : 751,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 534,
      "startLine" : 817,
      "endLine" : 829,
      "cleanedStartLine" : 485,
      "cleanedEndLine" : 492
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/View.java",
        "extension" : "java",
        "linesOfCode" : 777,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 572,
      "startLine" : 833,
      "endLine" : 845,
      "cleanedStartLine" : 508,
      "cleanedEndLine" : 515
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "projectional/src/main/java/jetbrains/jetpad/projectional/cell/ProjectionalObservableListSynchronizer.java",
        "extension" : "java",
        "linesOfCode" : 253,
        "components" : [ "primary::projectional" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 171,
      "startLine" : 80,
      "endLine" : 90,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    }, {
      "file" : {
        "relativePath" : "projectional/src/main/java/jetbrains/jetpad/projectional/cell/ProjectionalPropertySynchronizer.java",
        "extension" : "java",
        "linesOfCode" : 132,
        "components" : [ "primary::projectional" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 69,
      "endLine" : 79,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/TextCell.java",
        "extension" : "java",
        "linesOfCode" : 87,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 60,
      "endLine" : 73,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 29
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/TextView.java",
        "extension" : "java",
        "linesOfCode" : 104,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 67,
      "endLine" : 80,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/toAwt/SvgTextNodeMapper.java",
        "extension" : "java",
        "linesOfCode" : 21,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 29,
      "endLine" : 38,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/toDom/SvgTextNodeMapper.java",
        "extension" : "java",
        "linesOfCode" : 20,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 28,
      "endLine" : 37,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "hybrid/src/main/java/jetbrains/jetpad/hybrid/PrettyHybridProperty.java",
        "extension" : "java",
        "linesOfCode" : 221,
        "components" : [ "primary::hybrid" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 190,
      "endLine" : 197,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 107
    }, {
      "file" : {
        "relativePath" : "hybrid/src/main/java/jetbrains/jetpad/hybrid/PrettyHybridProperty.java",
        "extension" : "java",
        "linesOfCode" : 221,
        "components" : [ "primary::hybrid" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 207,
      "endLine" : 214,
      "cleanedStartLine" : 112,
      "cleanedEndLine" : 119
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/action/CellActions.java",
        "extension" : "java",
        "linesOfCode" : 123,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 86,
      "startLine" : 29,
      "endLine" : 37,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/action/CellActions.java",
        "extension" : "java",
        "linesOfCode" : 123,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 86,
      "startLine" : 46,
      "endLine" : 54,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/action/CellActions.java",
        "extension" : "java",
        "linesOfCode" : 123,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 86,
      "startLine" : 29,
      "endLine" : 37,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/action/CellActions.java",
        "extension" : "java",
        "linesOfCode" : 123,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 86,
      "startLine" : 64,
      "endLine" : 72,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/ScrollViewMapper.java",
        "extension" : "java",
        "linesOfCode" : 35,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 28,
      "endLine" : 38,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/VerticalViewMapper.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 28,
      "endLine" : 38,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/CellContainerToDomMapper.java",
        "extension" : "java",
        "linesOfCode" : 567,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 427,
      "startLine" : 654,
      "endLine" : 663,
      "cleanedStartLine" : 417,
      "cleanedEndLine" : 423
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/ViewContainerToElementMapper.java",
        "extension" : "java",
        "linesOfCode" : 394,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 286,
      "startLine" : 458,
      "endLine" : 467,
      "cleanedStartLine" : 279,
      "cleanedEndLine" : 285
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/toAwt/SvgAwtPeer.java",
        "extension" : "java",
        "linesOfCode" : 86,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 73,
      "endLine" : 84,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/toDom/SvgGwtPeer.java",
        "extension" : "java",
        "linesOfCode" : 62,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 38,
      "endLine" : 49,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "diagram/src/main/java/jetbrains/jetpad/projectional/diagram/algorithm/geom/AvoidObstacles.java",
        "extension" : "java",
        "linesOfCode" : 83,
        "components" : [ "primary::diagram" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 47,
      "endLine" : 54,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "diagram/src/main/java/jetbrains/jetpad/projectional/diagram/algorithm/geom/AvoidObstacles.java",
        "extension" : "java",
        "linesOfCode" : 83,
        "components" : [ "primary::diagram" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "diagram/src/main/java/jetbrains/jetpad/projectional/diagram/Diagram.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 11,
        "components" : [ "primary::diagram" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 1,
      "endLine" : 7,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "grammar/src/main/java/jetbrains/jetpad/grammar/Grammar.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 12,
        "components" : [ "primary::grammar" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 1,
      "endLine" : 7,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "diagram/src/main/java/jetbrains/jetpad/projectional/diagram/view/LineConnection.java",
        "extension" : "java",
        "linesOfCode" : 79,
        "components" : [ "primary::diagram" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "diagram/src/main/java/jetbrains/jetpad/projectional/diagram/view/PolyLineConnection.java",
        "extension" : "java",
        "linesOfCode" : 164,
        "components" : [ "primary::diagram" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 175,
      "endLine" : 182,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 97
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/TextCell.java",
        "extension" : "java",
        "linesOfCode" : 87,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 58,
      "startLine" : 45,
      "endLine" : 57,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/TextView.java",
        "extension" : "java",
        "linesOfCode" : 104,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 48,
      "endLine" : 60,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "diagram/src/main/java/jetbrains/jetpad/projectional/diagram/view/block/LabelView.java",
        "extension" : "java",
        "linesOfCode" : 213,
        "components" : [ "primary::diagram" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 142,
      "endLine" : 148,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "diagram/src/main/java/jetbrains/jetpad/projectional/diagram/view/block/LabelView.java",
        "extension" : "java",
        "linesOfCode" : 213,
        "components" : [ "primary::diagram" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 212,
      "endLine" : 218,
      "cleanedStartLine" : 116,
      "cleanedEndLine" : 122
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/action/CellActions.java",
        "extension" : "java",
        "linesOfCode" : 123,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 86,
      "startLine" : 46,
      "endLine" : 54,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/action/CellActions.java",
        "extension" : "java",
        "linesOfCode" : 123,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 86,
      "startLine" : 64,
      "endLine" : 72,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/util/ValueEditors.java",
        "extension" : "java",
        "linesOfCode" : 154,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 71,
      "endLine" : 77,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/util/ValueEditors.java",
        "extension" : "java",
        "linesOfCode" : 154,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 144,
      "endLine" : 150,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 73
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "hybrid/src/main/java/jetbrains/jetpad/hybrid/TokenCompletionItems.java",
        "extension" : "java",
        "linesOfCode" : 117,
        "components" : [ "primary::hybrid" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 95,
      "endLine" : 102,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "hybrid/src/main/java/jetbrains/jetpad/hybrid/TokenCompletionItems.java",
        "extension" : "java",
        "linesOfCode" : 117,
        "components" : [ "primary::hybrid" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 125,
      "endLine" : 132,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "diagram/src/main/java/jetbrains/jetpad/projectional/diagram/Diagram.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 11,
        "components" : [ "primary::diagram" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 1,
      "endLine" : 6,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/View.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 22,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 1,
      "endLine" : 6,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "hybrid/src/main/java/jetbrains/jetpad/hybrid/TokenListEditor.java",
        "extension" : "java",
        "linesOfCode" : 226,
        "components" : [ "primary::hybrid" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 167,
      "startLine" : 75,
      "endLine" : 82,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "hybrid/src/main/java/jetbrains/jetpad/hybrid/TokenListEditor.java",
        "extension" : "java",
        "linesOfCode" : 226,
        "components" : [ "primary::hybrid" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 167,
      "startLine" : 195,
      "endLine" : 202,
      "cleanedStartLine" : 119,
      "cleanedEndLine" : 124
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dataflow/src/main/java/jetbrains/mps/diagram/dataflow/Dataflow.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 19,
        "components" : [ "primary::dataflow" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 1,
      "endLine" : 6,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "grammar/src/main/java/jetbrains/jetpad/grammar/Grammar.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 12,
        "components" : [ "primary::grammar" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 1,
      "endLine" : 6,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/ScrollViewMapper.java",
        "extension" : "java",
        "linesOfCode" : 35,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 28,
      "endLine" : 37,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/TextViewMapper.java",
        "extension" : "java",
        "linesOfCode" : 88,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 32,
      "endLine" : 41,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/text/TextEditing.java",
        "extension" : "java",
        "linesOfCode" : 217,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 78,
      "endLine" : 87,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/text/TextEditing.java",
        "extension" : "java",
        "linesOfCode" : 217,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 168,
      "endLine" : 177,
      "cleanedStartLine" : 83,
      "cleanedEndLine" : 88
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/CellContainerToDomMapper.java",
        "extension" : "java",
        "linesOfCode" : 567,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 427,
      "startLine" : 482,
      "endLine" : 489,
      "cleanedStartLine" : 290,
      "cleanedEndLine" : 295
    }, {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/CellContainerToDomMapper.java",
        "extension" : "java",
        "linesOfCode" : 567,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 427,
      "startLine" : 491,
      "endLine" : 498,
      "cleanedStartLine" : 297,
      "cleanedEndLine" : 302
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/HorizontalViewMapper.java",
        "extension" : "java",
        "linesOfCode" : 38,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 42,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/ScrollViewMapper.java",
        "extension" : "java",
        "linesOfCode" : 35,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 31,
      "endLine" : 38,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dataflow/src/main/java/jetbrains/mps/diagram/dataflow/mapper/BlockMapper.java",
        "extension" : "java",
        "linesOfCode" : 84,
        "components" : [ "primary::dataflow" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 65,
      "endLine" : 72,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "dataflow/src/main/java/jetbrains/mps/diagram/dataflow/mapper/ConnectorMapper.java",
        "extension" : "java",
        "linesOfCode" : 46,
        "components" : [ "primary::dataflow" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 36,
      "endLine" : 43,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dataflow/src/main/java/jetbrains/mps/diagram/dataflow/Dataflow.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 19,
        "components" : [ "primary::dataflow" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 1,
      "endLine" : 6,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/View.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 22,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 1,
      "endLine" : 6,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/CellContainerToDomMapper.java",
        "extension" : "java",
        "linesOfCode" : 567,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 427,
      "startLine" : 487,
      "endLine" : 493,
      "cleanedStartLine" : 293,
      "cleanedEndLine" : 298
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/ViewContainerToElementMapper.java",
        "extension" : "java",
        "linesOfCode" : 394,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 286,
      "startLine" : 170,
      "endLine" : 176,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "diagram/src/main/java/jetbrains/jetpad/projectional/diagram/view/LineConnection.java",
        "extension" : "java",
        "linesOfCode" : 79,
        "components" : [ "primary::diagram" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 89,
      "endLine" : 96,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "diagram/src/main/java/jetbrains/jetpad/projectional/diagram/view/PolyLineConnection.java",
        "extension" : "java",
        "linesOfCode" : 164,
        "components" : [ "primary::diagram" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 191,
      "endLine" : 198,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 107
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/TextViewMapper.java",
        "extension" : "java",
        "linesOfCode" : 88,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 32,
      "endLine" : 41,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/VerticalViewMapper.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 28,
      "endLine" : 37,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "hybrid/src/main/java/jetbrains/jetpad/hybrid/parser/BoolValueToken.java",
        "extension" : "java",
        "linesOfCode" : 20,
        "components" : [ "primary::hybrid" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 32,
      "endLine" : 39,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "hybrid/src/main/java/jetbrains/jetpad/hybrid/parser/KeywordToken.java",
        "extension" : "java",
        "linesOfCode" : 15,
        "components" : [ "primary::hybrid" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 9,
      "startLine" : 25,
      "endLine" : 32,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/Cell.java",
        "extension" : "java",
        "linesOfCode" : 751,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 534,
      "startLine" : 269,
      "endLine" : 274,
      "cleanedStartLine" : 144,
      "cleanedEndLine" : 149
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/View.java",
        "extension" : "java",
        "linesOfCode" : 777,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 572,
      "startLine" : 249,
      "endLine" : 254,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 137
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dataflow/src/main/java/jetbrains/mps/diagram/dataflow/Dataflow.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 19,
        "components" : [ "primary::dataflow" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 1,
      "endLine" : 6,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/Svg.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 18,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 1,
      "endLine" : 6,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/util/SeparatedCellList.java",
        "extension" : "java",
        "linesOfCode" : 57,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 72,
      "endLine" : 80,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    }, {
      "file" : {
        "relativePath" : "projectional/src/main/java/jetbrains/jetpad/projectional/cell/BaseProjectionalSynchronizer.java",
        "extension" : "java",
        "linesOfCode" : 650,
        "components" : [ "primary::projectional" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 463,
      "startLine" : 764,
      "endLine" : 771,
      "cleanedStartLine" : 451,
      "cleanedEndLine" : 456
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/text/TextEditing.java",
        "extension" : "java",
        "linesOfCode" : 217,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 103,
      "endLine" : 112,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/text/TextEditing.java",
        "extension" : "java",
        "linesOfCode" : 217,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 168,
      "endLine" : 177,
      "cleanedStartLine" : 83,
      "cleanedEndLine" : 88
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "grammar/src/main/java/jetbrains/jetpad/grammar/Grammar.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 12,
        "components" : [ "primary::grammar" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 1,
      "endLine" : 6,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/View.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 22,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 1,
      "endLine" : 6,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/HorizontalViewMapper.java",
        "extension" : "java",
        "linesOfCode" : 38,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 42,
      "endLine" : 49,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/VerticalViewMapper.java",
        "extension" : "java",
        "linesOfCode" : 40,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 31,
      "endLine" : 38,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "hybrid/src/main/java/jetbrains/jetpad/hybrid/BaseHybridSynchronizer.java",
        "extension" : "java",
        "linesOfCode" : 678,
        "components" : [ "primary::hybrid" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 486,
      "startLine" : 272,
      "endLine" : 280,
      "cleanedStartLine" : 140,
      "cleanedEndLine" : 145
    }, {
      "file" : {
        "relativePath" : "projectional/src/main/java/jetbrains/jetpad/projectional/cell/BaseProjectionalSynchronizer.java",
        "extension" : "java",
        "linesOfCode" : 650,
        "components" : [ "primary::projectional" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 463,
      "startLine" : 367,
      "endLine" : 375,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 206
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "domUtil/src/main/java/jetbrains/jetpad/projectional/domUtil/TextMetricsCalculator.java",
        "extension" : "java",
        "linesOfCode" : 131,
        "components" : [ "primary::domUtil" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 93,
      "startLine" : 48,
      "endLine" : 55,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "domUtil/src/main/java/jetbrains/jetpad/projectional/domUtil/TextMetricsCalculator.java",
        "extension" : "java",
        "linesOfCode" : 131,
        "components" : [ "primary::domUtil" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 93,
      "startLine" : 64,
      "endLine" : 71,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dataflow/src/main/java/jetbrains/mps/diagram/dataflow/Dataflow.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 19,
        "components" : [ "primary::dataflow" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 1,
      "endLine" : 6,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "diagram/src/main/java/jetbrains/jetpad/projectional/diagram/Diagram.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 11,
        "components" : [ "primary::diagram" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 1,
      "endLine" : 6,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "diagram/src/main/java/jetbrains/jetpad/projectional/diagram/Diagram.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 11,
        "components" : [ "primary::diagram" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 1,
      "endLine" : 6,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/Svg.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 18,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 1,
      "endLine" : 6,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/LineViewMapper.java",
        "extension" : "java",
        "linesOfCode" : 69,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 49,
      "endLine" : 54,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/LineViewMapper.java",
        "extension" : "java",
        "linesOfCode" : 69,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 66,
      "endLine" : 71,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/SvgElement.java",
        "extension" : "java",
        "linesOfCode" : 178,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 117,
      "startLine" : 80,
      "endLine" : 87,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/View.java",
        "extension" : "java",
        "linesOfCode" : 777,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 572,
      "startLine" : 322,
      "endLine" : 329,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 181
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/IndentRootCellMapper.java",
        "extension" : "java",
        "linesOfCode" : 185,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 126,
      "startLine" : 159,
      "endLine" : 167,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 87
    }, {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toView/IndentRootCellMapper.java",
        "extension" : "java",
        "linesOfCode" : 187,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 128,
      "startLine" : 156,
      "endLine" : 164,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/TextCellMapper.java",
        "extension" : "java",
        "linesOfCode" : 112,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 73,
      "endLine" : 80,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toView/TextCellMapper.java",
        "extension" : "java",
        "linesOfCode" : 28,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "grammar/src/main/java/jetbrains/jetpad/grammar/lr1/LR1Item.java",
        "extension" : "java",
        "linesOfCode" : 84,
        "components" : [ "primary::grammar" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 59,
      "startLine" : 90,
      "endLine" : 96,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "grammar/src/main/java/jetbrains/jetpad/grammar/slr/SLRItem.java",
        "extension" : "java",
        "linesOfCode" : 76,
        "components" : [ "primary::grammar" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 83,
      "endLine" : 89,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/toDom/ImageCellMapper.java",
        "extension" : "java",
        "linesOfCode" : 33,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/toGwt/ImageViewMapper.java",
        "extension" : "java",
        "linesOfCode" : 30,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 30,
      "endLine" : 36,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "grammar/src/main/java/jetbrains/jetpad/grammar/Grammar.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 12,
        "components" : [ "primary::grammar" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 1,
      "endLine" : 6,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "svg/src/main/java/jetbrains/jetpad/projectional/svg/Svg.gwt.xml",
        "extension" : "xml",
        "linesOfCode" : 18,
        "components" : [ "primary::svg" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 16,
      "startLine" : 1,
      "endLine" : 6,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/Cell.java",
        "extension" : "java",
        "linesOfCode" : 751,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 534,
      "startLine" : 839,
      "endLine" : 849,
      "cleanedStartLine" : 499,
      "cleanedEndLine" : 504
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/View.java",
        "extension" : "java",
        "linesOfCode" : 777,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 572,
      "startLine" : 855,
      "endLine" : 865,
      "cleanedStartLine" : 522,
      "cleanedEndLine" : 527
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "cell/src/main/java/jetbrains/jetpad/cell/Cell.java",
        "extension" : "java",
        "linesOfCode" : 751,
        "components" : [ "primary::cell" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 534,
      "startLine" : 280,
      "endLine" : 287,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 157
    }, {
      "file" : {
        "relativePath" : "view/src/main/java/jetbrains/jetpad/projectional/view/View.java",
        "extension" : "java",
        "linesOfCode" : 777,
        "components" : [ "primary::view" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 572,
      "startLine" : 263,
      "endLine" : 270,
      "cleanedStartLine" : 142,
      "cleanedEndLine" : 147
    } ]
  } ],
  "overallDuplication" : null
}