{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 16:49:01",
  "duplicates" : [ {
    "blockSize" : 19,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyToOneRequiredLink.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 34,
      "endLine" : 55,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneToOneRequiredLink.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 32,
      "endLine" : 53,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyToOneOptionalLink.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 33,
      "endLine" : 54,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneToOneOptionalLink.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 31,
      "endLine" : 52,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyChildrenToMultiParentLink.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 32,
      "endLine" : 53,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneChildToMultiParentLink.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 31,
      "endLine" : 52,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyToManyLink.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 37,
      "endLine" : 54,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneToManyLink.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 36,
      "endLine" : 53,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 506,
      "endLine" : 520,
      "cleanedStartLine" : 409,
      "cleanedEndLine" : 423
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 64,
      "endLine" : 78,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneToManyLink.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 49,
      "endLine" : 68,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdParentToManyChildrenLink.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 47,
      "endLine" : 66,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 404,
      "endLine" : 417,
      "cleanedStartLine" : 318,
      "cleanedEndLine" : 331
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 470,
      "endLine" : 483,
      "cleanedStartLine" : 378,
      "cleanedEndLine" : 391
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 580,
      "endLine" : 593,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 486
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 78,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 470,
      "endLine" : 483,
      "cleanedStartLine" : 378,
      "cleanedEndLine" : 391
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 507,
      "endLine" : 520,
      "cleanedStartLine" : 410,
      "cleanedEndLine" : 423
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 404,
      "endLine" : 417,
      "cleanedStartLine" : 318,
      "cleanedEndLine" : 331
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 437,
      "endLine" : 450,
      "cleanedStartLine" : 348,
      "cleanedEndLine" : 361
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 139,
      "endLine" : 152,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 102
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 201,
      "endLine" : 214,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 139,
      "endLine" : 152,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 102
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 170,
      "endLine" : 183,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 170,
      "endLine" : 183,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 130
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 201,
      "endLine" : 214,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 470,
      "endLine" : 483,
      "cleanedStartLine" : 378,
      "cleanedEndLine" : 391
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 544,
      "endLine" : 557,
      "cleanedStartLine" : 442,
      "cleanedEndLine" : 455
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 232,
      "endLine" : 245,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 186
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 507,
      "endLine" : 520,
      "cleanedStartLine" : 410,
      "cleanedEndLine" : 423
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 470,
      "endLine" : 483,
      "cleanedStartLine" : 378,
      "cleanedEndLine" : 391
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 580,
      "endLine" : 593,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 486
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 263,
      "endLine" : 276,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 375,
      "endLine" : 388,
      "cleanedStartLine" : 291,
      "cleanedEndLine" : 304
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 232,
      "endLine" : 245,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 186
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 263,
      "endLine" : 276,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 214
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 232,
      "endLine" : 245,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 186
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 544,
      "endLine" : 557,
      "cleanedStartLine" : 442,
      "cleanedEndLine" : 455
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 437,
      "endLine" : 450,
      "cleanedStartLine" : 348,
      "cleanedEndLine" : 361
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 78,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 309,
      "endLine" : 322,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 253
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 78,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 71,
      "endLine" : 84,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 106,
      "endLine" : 119,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 375,
      "endLine" : 388,
      "cleanedStartLine" : 291,
      "cleanedEndLine" : 304
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 580,
      "endLine" : 593,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 486
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 263,
      "endLine" : 276,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 580,
      "endLine" : 593,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 486
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 470,
      "endLine" : 483,
      "cleanedStartLine" : 378,
      "cleanedEndLine" : 391
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 78,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 232,
      "endLine" : 245,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 186
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 309,
      "endLine" : 322,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 253
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 71,
      "endLine" : 84,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 139,
      "endLine" : 152,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 232,
      "endLine" : 245,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 186
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 580,
      "endLine" : 593,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 486
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 263,
      "endLine" : 276,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 544,
      "endLine" : 557,
      "cleanedStartLine" : 442,
      "cleanedEndLine" : 455
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 71,
      "endLine" : 84,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 170,
      "endLine" : 183,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 232,
      "endLine" : 245,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 186
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 78,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 437,
      "endLine" : 450,
      "cleanedStartLine" : 348,
      "cleanedEndLine" : 361
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 470,
      "endLine" : 483,
      "cleanedStartLine" : 378,
      "cleanedEndLine" : 391
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 232,
      "endLine" : 245,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 186
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 375,
      "endLine" : 388,
      "cleanedStartLine" : 291,
      "cleanedEndLine" : 304
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 309,
      "endLine" : 322,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 253
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 404,
      "endLine" : 417,
      "cleanedStartLine" : 318,
      "cleanedEndLine" : 331
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 263,
      "endLine" : 276,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 309,
      "endLine" : 322,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 253
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 404,
      "endLine" : 417,
      "cleanedStartLine" : 318,
      "cleanedEndLine" : 331
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 507,
      "endLine" : 520,
      "cleanedStartLine" : 410,
      "cleanedEndLine" : 423
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 309,
      "endLine" : 322,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 253
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 437,
      "endLine" : 450,
      "cleanedStartLine" : 348,
      "cleanedEndLine" : 361
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 375,
      "endLine" : 388,
      "cleanedStartLine" : 291,
      "cleanedEndLine" : 304
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 507,
      "endLine" : 520,
      "cleanedStartLine" : 410,
      "cleanedEndLine" : 423
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 309,
      "endLine" : 322,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 253
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 470,
      "endLine" : 483,
      "cleanedStartLine" : 378,
      "cleanedEndLine" : 391
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 263,
      "endLine" : 276,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 507,
      "endLine" : 520,
      "cleanedStartLine" : 410,
      "cleanedEndLine" : 423
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 375,
      "endLine" : 388,
      "cleanedStartLine" : 291,
      "cleanedEndLine" : 304
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 544,
      "endLine" : 557,
      "cleanedStartLine" : 442,
      "cleanedEndLine" : 455
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 404,
      "endLine" : 417,
      "cleanedStartLine" : 318,
      "cleanedEndLine" : 331
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 544,
      "endLine" : 557,
      "cleanedStartLine" : 442,
      "cleanedEndLine" : 455
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 544,
      "endLine" : 557,
      "cleanedStartLine" : 442,
      "cleanedEndLine" : 455
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 580,
      "endLine" : 593,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 486
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 71,
      "endLine" : 84,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 41
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 201,
      "endLine" : 214,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 544,
      "endLine" : 557,
      "cleanedStartLine" : 442,
      "cleanedEndLine" : 455
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 78,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 507,
      "endLine" : 520,
      "cleanedStartLine" : 410,
      "cleanedEndLine" : 423
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 580,
      "endLine" : 593,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 486
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 404,
      "endLine" : 417,
      "cleanedStartLine" : 318,
      "cleanedEndLine" : 331
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 78,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 404,
      "endLine" : 417,
      "cleanedStartLine" : 318,
      "cleanedEndLine" : 331
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 580,
      "endLine" : 593,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 486
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 507,
      "endLine" : 520,
      "cleanedStartLine" : 410,
      "cleanedEndLine" : 423
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 544,
      "endLine" : 557,
      "cleanedStartLine" : 442,
      "cleanedEndLine" : 455
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 106,
      "endLine" : 119,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 170,
      "endLine" : 183,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 437,
      "endLine" : 450,
      "cleanedStartLine" : 348,
      "cleanedEndLine" : 361
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 507,
      "endLine" : 520,
      "cleanedStartLine" : 410,
      "cleanedEndLine" : 423
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 375,
      "endLine" : 388,
      "cleanedStartLine" : 291,
      "cleanedEndLine" : 304
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 78,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 232,
      "endLine" : 245,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 186
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 404,
      "endLine" : 417,
      "cleanedStartLine" : 318,
      "cleanedEndLine" : 331
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 232,
      "endLine" : 245,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 186
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 470,
      "endLine" : 483,
      "cleanedStartLine" : 378,
      "cleanedEndLine" : 391
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 263,
      "endLine" : 276,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 437,
      "endLine" : 450,
      "cleanedStartLine" : 348,
      "cleanedEndLine" : 361
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 437,
      "endLine" : 450,
      "cleanedStartLine" : 348,
      "cleanedEndLine" : 361
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 544,
      "endLine" : 557,
      "cleanedStartLine" : 442,
      "cleanedEndLine" : 455
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 263,
      "endLine" : 276,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 404,
      "endLine" : 417,
      "cleanedStartLine" : 318,
      "cleanedEndLine" : 331
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 375,
      "endLine" : 388,
      "cleanedStartLine" : 291,
      "cleanedEndLine" : 304
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 470,
      "endLine" : 483,
      "cleanedStartLine" : 378,
      "cleanedEndLine" : 391
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 106,
      "endLine" : 119,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 139,
      "endLine" : 152,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 232,
      "endLine" : 245,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 186
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 437,
      "endLine" : 450,
      "cleanedStartLine" : 348,
      "cleanedEndLine" : 361
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 309,
      "endLine" : 322,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 253
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 507,
      "endLine" : 520,
      "cleanedStartLine" : 410,
      "cleanedEndLine" : 423
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 263,
      "endLine" : 276,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 470,
      "endLine" : 483,
      "cleanedStartLine" : 378,
      "cleanedEndLine" : 391
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 106,
      "endLine" : 119,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 201,
      "endLine" : 214,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 437,
      "endLine" : 450,
      "cleanedStartLine" : 348,
      "cleanedEndLine" : 361
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 580,
      "endLine" : 593,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 486
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 309,
      "endLine" : 322,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 253
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 544,
      "endLine" : 557,
      "cleanedStartLine" : 442,
      "cleanedEndLine" : 455
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 309,
      "endLine" : 322,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 253
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 580,
      "endLine" : 593,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 486
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 263,
      "endLine" : 276,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 78,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 375,
      "endLine" : 388,
      "cleanedStartLine" : 291,
      "cleanedEndLine" : 304
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 404,
      "endLine" : 417,
      "cleanedStartLine" : 318,
      "cleanedEndLine" : 331
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 309,
      "endLine" : 322,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 253
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 375,
      "endLine" : 388,
      "cleanedStartLine" : 291,
      "cleanedEndLine" : 304
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 375,
      "endLine" : 388,
      "cleanedStartLine" : 291,
      "cleanedEndLine" : 304
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 437,
      "endLine" : 450,
      "cleanedStartLine" : 348,
      "cleanedEndLine" : 361
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyChildrenToParentLink.kt",
        "extension" : "kt",
        "linesOfCode" : 40,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 33,
      "endLine" : 45,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneChildToParentLink.kt",
        "extension" : "kt",
        "linesOfCode" : 38,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 33,
      "endLine" : 45,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/util/DNQMetaDataUtil.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 205,
      "startLine" : 228,
      "endLine" : 240,
      "cleanedStartLine" : 134,
      "cleanedEndLine" : 145
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/util/DNQMetaDataUtil.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 205,
      "startLine" : 251,
      "endLine" : 263,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 164
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyToManyLink.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 57,
      "endLine" : 70,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneToManyLink.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 55,
      "endLine" : 68,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 139,
      "endLine" : 148,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 470,
      "endLine" : 479,
      "cleanedStartLine" : 378,
      "cleanedEndLine" : 387
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 126
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 404,
      "endLine" : 413,
      "cleanedStartLine" : 318,
      "cleanedEndLine" : 327
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 201,
      "endLine" : 210,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 375,
      "endLine" : 384,
      "cleanedStartLine" : 291,
      "cleanedEndLine" : 300
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 126
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 470,
      "endLine" : 479,
      "cleanedStartLine" : 378,
      "cleanedEndLine" : 387
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 126
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 437,
      "endLine" : 446,
      "cleanedStartLine" : 348,
      "cleanedEndLine" : 357
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 139,
      "endLine" : 148,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 74,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 139,
      "endLine" : 148,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 437,
      "endLine" : 446,
      "cleanedStartLine" : 348,
      "cleanedEndLine" : 357
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 106,
      "endLine" : 115,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 309,
      "endLine" : 318,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 249
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 201,
      "endLine" : 210,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 309,
      "endLine" : 318,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 249
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 126
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 232,
      "endLine" : 241,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 106,
      "endLine" : 115,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 580,
      "endLine" : 589,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 482
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 201,
      "endLine" : 210,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 580,
      "endLine" : 589,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 482
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 201,
      "endLine" : 210,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 263,
      "endLine" : 272,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 210
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 201,
      "endLine" : 210,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 544,
      "endLine" : 553,
      "cleanedStartLine" : 442,
      "cleanedEndLine" : 451
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 106,
      "endLine" : 115,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 544,
      "endLine" : 553,
      "cleanedStartLine" : 442,
      "cleanedEndLine" : 451
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 106,
      "endLine" : 115,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 263,
      "endLine" : 272,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 210
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 139,
      "endLine" : 148,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 232,
      "endLine" : 241,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 106,
      "endLine" : 115,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 507,
      "endLine" : 516,
      "cleanedStartLine" : 410,
      "cleanedEndLine" : 419
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 71,
      "endLine" : 80,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 437,
      "endLine" : 446,
      "cleanedStartLine" : 348,
      "cleanedEndLine" : 357
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 106,
      "endLine" : 115,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 375,
      "endLine" : 384,
      "cleanedStartLine" : 291,
      "cleanedEndLine" : 300
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 201,
      "endLine" : 210,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 404,
      "endLine" : 413,
      "cleanedStartLine" : 318,
      "cleanedEndLine" : 327
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/PersistentEntityIteratorWithPropIdWrapper.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 41,
      "endLine" : 58,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/PersistentEntityIteratorWrapper.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 37,
      "endLine" : 55,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 71,
      "endLine" : 80,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 404,
      "endLine" : 413,
      "cleanedStartLine" : 318,
      "cleanedEndLine" : 327
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 71,
      "endLine" : 80,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 232,
      "endLine" : 241,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 139,
      "endLine" : 148,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 544,
      "endLine" : 553,
      "cleanedStartLine" : 442,
      "cleanedEndLine" : 451
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 139,
      "endLine" : 148,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 263,
      "endLine" : 272,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 210
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 139,
      "endLine" : 148,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 507,
      "endLine" : 516,
      "cleanedStartLine" : 410,
      "cleanedEndLine" : 419
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 126
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 74,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 71,
      "endLine" : 80,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 470,
      "endLine" : 479,
      "cleanedStartLine" : 378,
      "cleanedEndLine" : 387
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyToManyLink.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 57,
      "endLine" : 70,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdParentToManyChildrenLink.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 53,
      "endLine" : 66,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 126
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 544,
      "endLine" : 553,
      "cleanedStartLine" : 442,
      "cleanedEndLine" : 451
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 126
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 263,
      "endLine" : 272,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 210
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 201,
      "endLine" : 210,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 232,
      "endLine" : 241,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 139,
      "endLine" : 148,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 580,
      "endLine" : 589,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 482
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 139,
      "endLine" : 148,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 309,
      "endLine" : 318,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 249
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 126
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 580,
      "endLine" : 589,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 482
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 126
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 309,
      "endLine" : 318,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 249
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 126
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 375,
      "endLine" : 384,
      "cleanedStartLine" : 291,
      "cleanedEndLine" : 300
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 201,
      "endLine" : 210,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 437,
      "endLine" : 446,
      "cleanedStartLine" : 348,
      "cleanedEndLine" : 357
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 106,
      "endLine" : 115,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 437,
      "endLine" : 446,
      "cleanedStartLine" : 348,
      "cleanedEndLine" : 357
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 106,
      "endLine" : 115,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 404,
      "endLine" : 413,
      "cleanedStartLine" : 318,
      "cleanedEndLine" : 327
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 201,
      "endLine" : 210,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 470,
      "endLine" : 479,
      "cleanedStartLine" : 378,
      "cleanedEndLine" : 387
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 139,
      "endLine" : 148,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 375,
      "endLine" : 384,
      "cleanedStartLine" : 291,
      "cleanedEndLine" : 300
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 71,
      "endLine" : 80,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 544,
      "endLine" : 553,
      "cleanedStartLine" : 442,
      "cleanedEndLine" : 451
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 71,
      "endLine" : 80,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 263,
      "endLine" : 272,
      "cleanedStartLine" : 201,
      "cleanedEndLine" : 210
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 201,
      "endLine" : 210,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 74,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 71,
      "endLine" : 80,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 580,
      "endLine" : 589,
      "cleanedStartLine" : 473,
      "cleanedEndLine" : 482
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 106,
      "endLine" : 115,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 232,
      "endLine" : 241,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 182
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 71,
      "endLine" : 80,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 507,
      "endLine" : 516,
      "cleanedStartLine" : 410,
      "cleanedEndLine" : 419
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 201,
      "endLine" : 210,
      "cleanedStartLine" : 145,
      "cleanedEndLine" : 154
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 507,
      "endLine" : 516,
      "cleanedStartLine" : 410,
      "cleanedEndLine" : 419
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 106,
      "endLine" : 115,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 470,
      "endLine" : 479,
      "cleanedStartLine" : 378,
      "cleanedEndLine" : 387
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 71,
      "endLine" : 80,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 74,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 139,
      "endLine" : 148,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 404,
      "endLine" : 413,
      "cleanedStartLine" : 318,
      "cleanedEndLine" : 327
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 106,
      "endLine" : 115,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 65,
      "endLine" : 74,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 71,
      "endLine" : 80,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 375,
      "endLine" : 384,
      "cleanedStartLine" : 291,
      "cleanedEndLine" : 300
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 71,
      "endLine" : 80,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 309,
      "endLine" : 318,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 249
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 170,
      "endLine" : 179,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 126
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 507,
      "endLine" : 516,
      "cleanedStartLine" : 410,
      "cleanedEndLine" : 419
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyToOneRequiredLink.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 44,
      "endLine" : 55,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdToOneRequiredLink.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 39,
      "endLine" : 50,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/ConstraintsUtil.kt",
        "extension" : "kt",
        "linesOfCode" : 465,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 368,
      "startLine" : 376,
      "endLine" : 386,
      "cleanedStartLine" : 246,
      "cleanedEndLine" : 254
    }, {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/ConstraintsUtil.kt",
        "extension" : "kt",
        "linesOfCode" : 465,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 368,
      "startLine" : 409,
      "endLine" : 419,
      "cleanedStartLine" : 271,
      "cleanedEndLine" : 279
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneChildToMultiParentLink.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 29,
      "endLine" : 37,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdParentToOneOptionalChildLink.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 29,
      "endLine" : 37,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneToOneRequiredLink.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 42,
      "endLine" : 53,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdToOneRequiredLink.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 39,
      "endLine" : 50,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneChildToParentLink.kt",
        "extension" : "kt",
        "linesOfCode" : 38,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 31,
      "endLine" : 39,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdParentToOneRequiredChildLink.kt",
        "extension" : "kt",
        "linesOfCode" : 38,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 30,
      "endLine" : 38,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/ConstraintsUtil.kt",
        "extension" : "kt",
        "linesOfCode" : 465,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 368,
      "startLine" : 379,
      "endLine" : 387,
      "cleanedStartLine" : 248,
      "cleanedEndLine" : 255
    }, {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/ConstraintsUtil.kt",
        "extension" : "kt",
        "linesOfCode" : 465,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 368,
      "startLine" : 472,
      "endLine" : 480,
      "cleanedStartLine" : 312,
      "cleanedEndLine" : 319
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyToOneOptionalLink.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 43,
      "endLine" : 54,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdToOneOptionalLink.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 38,
      "endLine" : 49,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneToOneOptionalLink.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 41,
      "endLine" : 52,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdToOneOptionalLink.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 38,
      "endLine" : 49,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 444,
      "endLine" : 450,
      "cleanedStartLine" : 355,
      "cleanedEndLine" : 361
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 551,
      "endLine" : 557,
      "cleanedStartLine" : 449,
      "cleanedEndLine" : 455
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 270,
      "endLine" : 276,
      "cleanedStartLine" : 208,
      "cleanedEndLine" : 214
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 44,
      "endLine" : 50,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 208,
      "endLine" : 214,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 72,
      "endLine" : 78,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdParentToOneRequiredChildLink.kt",
        "extension" : "kt",
        "linesOfCode" : 38,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 42,
      "endLine" : 52,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdToOneRequiredLink.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 41,
      "endLine" : 50,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/TransientSessionImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 1093,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 835,
      "startLine" : 213,
      "endLine" : 219,
      "cleanedStartLine" : 114,
      "cleanedEndLine" : 120
    }, {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/TransientSessionImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 1093,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 835,
      "startLine" : 233,
      "endLine" : 239,
      "cleanedStartLine" : 128,
      "cleanedEndLine" : 134
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyChildrenToMultiParentLink.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdParentToOneOptionalChildLink.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 31,
      "endLine" : 37,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/TransientSessionImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 1093,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 835,
      "startLine" : 1200,
      "endLine" : 1206,
      "cleanedStartLine" : 741,
      "cleanedEndLine" : 747
    }, {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/TransientSessionImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 1093,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 835,
      "startLine" : 1265,
      "endLine" : 1271,
      "cleanedStartLine" : 789,
      "cleanedEndLine" : 795
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 477,
      "endLine" : 483,
      "cleanedStartLine" : 385,
      "cleanedEndLine" : 391
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 514,
      "endLine" : 520,
      "cleanedStartLine" : 417,
      "cleanedEndLine" : 423
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 411,
      "endLine" : 417,
      "cleanedStartLine" : 325,
      "cleanedEndLine" : 331
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 382,
      "endLine" : 388,
      "cleanedStartLine" : 298,
      "cleanedEndLine" : 304
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 587,
      "endLine" : 593,
      "cleanedStartLine" : 480,
      "cleanedEndLine" : 486
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 239,
      "endLine" : 245,
      "cleanedStartLine" : 180,
      "cleanedEndLine" : 186
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyChildrenToParentLink.kt",
        "extension" : "kt",
        "linesOfCode" : 40,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 33,
      "endLine" : 39,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdParentToOneRequiredChildLink.kt",
        "extension" : "kt",
        "linesOfCode" : 38,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 44,
      "endLine" : 50,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 78,
      "endLine" : 84,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 41
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 316,
      "endLine" : 322,
      "cleanedStartLine" : 247,
      "cleanedEndLine" : 253
    }, {
      "file" : {
        "relativePath" : "java-8-time/src/main/kotlin/kotlinx/dnq/java/time/TimeConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 50,
        "components" : [ "primary::java-8-time" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 44,
      "endLine" : 50,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 72
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneToOneRequiredLink.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 44,
      "endLine" : 53,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdParentToOneRequiredChildLink.kt",
        "extension" : "kt",
        "linesOfCode" : 38,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 42,
      "endLine" : 52,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 44,
      "endLine" : 50,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 146,
      "endLine" : 152,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyToOneRequiredLink.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 46,
      "endLine" : 55,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdParentToOneRequiredChildLink.kt",
        "extension" : "kt",
        "linesOfCode" : 38,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 42,
      "endLine" : 52,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 44,
      "endLine" : 50,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/simple/PropertyConstraints.kt",
        "extension" : "kt",
        "linesOfCode" : 540,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 177,
      "endLine" : 183,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 130
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/ConstraintsUtil.kt",
        "extension" : "kt",
        "linesOfCode" : 465,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 368,
      "startLine" : 412,
      "endLine" : 419,
      "cleanedStartLine" : 273,
      "cleanedEndLine" : 279
    }, {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/ConstraintsUtil.kt",
        "extension" : "kt",
        "linesOfCode" : 465,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 368,
      "startLine" : 472,
      "endLine" : 479,
      "cleanedStartLine" : 312,
      "cleanedEndLine" : 318
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/ConstraintsUtil.kt",
        "extension" : "kt",
        "linesOfCode" : 465,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 368,
      "startLine" : 217,
      "endLine" : 223,
      "cleanedStartLine" : 135,
      "cleanedEndLine" : 141
    }, {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/ConstraintsUtil.kt",
        "extension" : "kt",
        "linesOfCode" : 465,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 368,
      "startLine" : 282,
      "endLine" : 288,
      "cleanedStartLine" : 180,
      "cleanedEndLine" : 186
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 453,
      "endLine" : 458,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 497,
      "endLine" : 502,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 410,
      "endLine" : 415,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 82
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 453,
      "endLine" : 458,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 91
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 410,
      "endLine" : 415,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 82
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 497,
      "endLine" : 502,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneToManyLink.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 40,
      "endLine" : 45,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdParentToManyChildrenLink.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneToOneOptionalLink.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 29,
      "endLine" : 34,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneToOneRequiredLink.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 30,
      "endLine" : 35,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 368,
      "endLine" : 373,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 497,
      "endLine" : 502,
      "cleanedStartLine" : 95,
      "cleanedEndLine" : 100
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 368,
      "endLine" : 373,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 410,
      "endLine" : 415,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 368,
      "endLine" : 373,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 73
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 453,
      "endLine" : 458,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 91
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 197,
      "endLine" : 202,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 239,
      "endLine" : 244,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 282,
      "endLine" : 287,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 326,
      "endLine" : 331,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 197,
      "endLine" : 202,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 326,
      "endLine" : 331,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneToManyLink.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdToManyLink.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 32,
      "endLine" : 37,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 197,
      "endLine" : 202,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 282,
      "endLine" : 287,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneChildToMultiParentLink.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 41,
      "endLine" : 50,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneToOneOptionalLink.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 43,
      "endLine" : 52,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/util/DNQMetaDataUtil.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 205,
      "startLine" : 201,
      "endLine" : 206,
      "cleanedStartLine" : 110,
      "cleanedEndLine" : 115
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/util/DNQMetaDataUtil.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 205,
      "startLine" : 228,
      "endLine" : 233,
      "cleanedStartLine" : 134,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyChildrenToMultiParentLink.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 42,
      "endLine" : 51,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdParentToOneOptionalChildLink.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 41,
      "endLine" : 50,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyToManyLink.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 39,
      "endLine" : 44,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdToManyLink.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 32,
      "endLine" : 37,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyToOneOptionalLink.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 45,
      "endLine" : 54,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdParentToOneOptionalChildLink.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 41,
      "endLine" : 50,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyChildrenToMultiParentLink.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 42,
      "endLine" : 51,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyToOneOptionalLink.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 45,
      "endLine" : 54,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/util/DNQMetaDataUtil.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 205,
      "startLine" : 201,
      "endLine" : 206,
      "cleanedStartLine" : 110,
      "cleanedEndLine" : 115
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/util/DNQMetaDataUtil.kt",
        "extension" : "kt",
        "linesOfCode" : 264,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 205,
      "startLine" : 251,
      "endLine" : 256,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneToManyLink.kt",
        "extension" : "kt",
        "linesOfCode" : 63,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 47,
      "endLine" : 53,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdToManyLink.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 41,
      "endLine" : 47,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyToOneOptionalLink.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 31,
      "endLine" : 36,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyToOneRequiredLink.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 32,
      "endLine" : 37,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/TransientSessionImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 1093,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 835,
      "startLine" : 854,
      "endLine" : 860,
      "cleanedStartLine" : 506,
      "cleanedEndLine" : 511
    }, {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/TransientSessionImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 1093,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 835,
      "startLine" : 872,
      "endLine" : 878,
      "cleanedStartLine" : 518,
      "cleanedEndLine" : 523
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyChildrenToMultiParentLink.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 42,
      "endLine" : 51,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdToOneOptionalLink.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 40,
      "endLine" : 49,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyChildrenToMultiParentLink.kt",
        "extension" : "kt",
        "linesOfCode" : 42,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 42,
      "endLine" : 51,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneToOneOptionalLink.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 43,
      "endLine" : 52,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdParentToOneOptionalChildLink.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 41,
      "endLine" : 50,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdToOneOptionalLink.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 40,
      "endLine" : 49,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneChildToMultiParentLink.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 41,
      "endLine" : 50,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdToOneOptionalLink.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 40,
      "endLine" : 49,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/TransientSessionImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 1093,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 835,
      "startLine" : 804,
      "endLine" : 809,
      "cleanedStartLine" : 469,
      "cleanedEndLine" : 474
    }, {
      "file" : {
        "relativePath" : "dnq-transient-store/src/main/kotlin/com/jetbrains/teamsys/dnq/database/TransientSessionImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 1093,
        "components" : [ "primary::dnq-transient-store" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 835,
      "startLine" : 826,
      "endLine" : 831,
      "cleanedStartLine" : 485,
      "cleanedEndLine" : 490
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneToOneOptionalLink.kt",
        "extension" : "kt",
        "linesOfCode" : 37,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 43,
      "endLine" : 52,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdParentToOneOptionalChildLink.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 41,
      "endLine" : 50,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneChildToMultiParentLink.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 41,
      "endLine" : 50,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdParentToOneOptionalChildLink.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 41,
      "endLine" : 50,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyToOneOptionalLink.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 45,
      "endLine" : 54,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdOneChildToMultiParentLink.kt",
        "extension" : "kt",
        "linesOfCode" : 41,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 41,
      "endLine" : 50,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 239,
      "endLine" : 244,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 282,
      "endLine" : 287,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/PropertyDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 129,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 514,
      "endLine" : 554,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/PropertyDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 129,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 567,
      "endLine" : 607,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyToManyLink.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 48,
      "endLine" : 54,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdToManyLink.kt",
        "extension" : "kt",
        "linesOfCode" : 47,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 41,
      "endLine" : 47,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 239,
      "endLine" : 244,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/LinkDelegates.kt",
        "extension" : "kt",
        "linesOfCode" : 180,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 154,
      "startLine" : 326,
      "endLine" : 331,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdManyToManyLink.kt",
        "extension" : "kt",
        "linesOfCode" : 66,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "dnq/src/main/kotlin/kotlinx/dnq/link/XdParentToManyChildrenLink.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "components" : [ "primary::dnq" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  } ],
  "overallDuplication" : null
}