{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 17:16:59",
  "duplicates" : [ {
    "blockSize" : 31,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelResourceGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 515,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 382,
      "startLine" : 402,
      "endLine" : 443,
      "cleanedStartLine" : 240,
      "cleanedEndLine" : 270
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelResourceGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 515,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 382,
      "startLine" : 515,
      "endLine" : 556,
      "cleanedStartLine" : 311,
      "cleanedEndLine" : 341
    } ]
  }, {
    "blockSize" : 17,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelResourceGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 515,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 382,
      "startLine" : 206,
      "endLine" : 234,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelResourceGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 515,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 382,
      "startLine" : 313,
      "endLine" : 341,
      "cleanedStartLine" : 192,
      "cleanedEndLine" : 208
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelResourceGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 515,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 382,
      "startLine" : 182,
      "endLine" : 202,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 121
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelResourceGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 515,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 382,
      "startLine" : 282,
      "endLine" : 302,
      "cleanedStartLine" : 173,
      "cleanedEndLine" : 185
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelResourceGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 515,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 382,
      "startLine" : 152,
      "endLine" : 167,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelResourceGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 515,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 382,
      "startLine" : 238,
      "endLine" : 253,
      "cleanedStartLine" : 141,
      "cleanedEndLine" : 151
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Common/BearerTokenConnection.cs",
        "extension" : "cs",
        "linesOfCode" : 200,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 138,
      "startLine" : 90,
      "endLine" : 101,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Common/BearerTokenConnection.cs",
        "extension" : "cs",
        "linesOfCode" : 200,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 138,
      "startLine" : 134,
      "endLine" : 145,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/AttachmentProxy/SpaceMapAttachmentProxyExtensions.cs",
        "extension" : "cs",
        "linesOfCode" : 67,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 46,
      "endLine" : 55,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/AttachmentProxy/SpaceMapAttachmentProxyExtensions.cs",
        "extension" : "cs",
        "linesOfCode" : 67,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 82,
      "endLine" : 91,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelUrlParameterGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 190,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 141,
      "startLine" : 68,
      "endLine" : 84,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelUrlParameterGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 190,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 141,
      "startLine" : 124,
      "endLine" : 140,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 78
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelResourceGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 515,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 382,
      "startLine" : 171,
      "endLine" : 180,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 107
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelResourceGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 515,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 382,
      "startLine" : 268,
      "endLine" : 277,
      "cleanedStartLine" : 160,
      "cleanedEndLine" : 168
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Common/Json.Serialization/Internal/CSharpIdentifier.cs",
        "extension" : "cs",
        "linesOfCode" : 19,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 12,
      "endLine" : 19,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/CSharpIdentifier.cs",
        "extension" : "cs",
        "linesOfCode" : 59,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 43,
      "endLine" : 50,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Common/BearerTokenConnection.cs",
        "extension" : "cs",
        "linesOfCode" : 200,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 138,
      "startLine" : 107,
      "endLine" : 117,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Common/BearerTokenConnection.cs",
        "extension" : "cs",
        "linesOfCode" : 200,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 138,
      "startLine" : 125,
      "endLine" : 135,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Common/Json.Serialization/SpaceDateConverter.cs",
        "extension" : "cs",
        "linesOfCode" : 22,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 18,
      "endLine" : 34,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Common/Json.Serialization/SpaceDateTimeConverter.cs",
        "extension" : "cs",
        "linesOfCode" : 23,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 20,
      "endLine" : 36,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelResourceGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 515,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 382,
      "startLine" : 260,
      "endLine" : 268,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelResourceGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 515,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 382,
      "startLine" : 535,
      "endLine" : 542,
      "cleanedStartLine" : 323,
      "cleanedEndLine" : 329
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore.Authentication/Experimental/TokenManagement/SpaceTokenManagementAuthenticationBuilderExtensions.cs",
        "extension" : "cs",
        "linesOfCode" : 43,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 25,
      "endLine" : 31,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore.Authentication/Experimental/TokenManagement/SpaceTokenManagementAuthenticationBuilderExtensions.cs",
        "extension" : "cs",
        "linesOfCode" : 43,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 44,
      "endLine" : 50,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/SpaceAddWebHookExtensions.cs",
        "extension" : "cs",
        "linesOfCode" : 50,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/SpaceMapWebHookExtensions.cs",
        "extension" : "cs",
        "linesOfCode" : 37,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 24,
      "endLine" : 30,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/SpaceAddWebHookExtensions.cs",
        "extension" : "cs",
        "linesOfCode" : 50,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 23,
      "endLine" : 29,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/SpaceAddWebHookExtensions.cs",
        "extension" : "cs",
        "linesOfCode" : 50,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 43,
      "endLine" : 49,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpPartialExtensionsGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 201,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 137,
      "startLine" : 51,
      "endLine" : 61,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpPartialExtensionsGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 201,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 137,
      "startLine" : 98,
      "endLine" : 108,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpPartialExtensionsGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 201,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 137,
      "startLine" : 51,
      "endLine" : 61,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 32
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpPartialExtensionsGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 201,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 137,
      "startLine" : 78,
      "endLine" : 88,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelResourceGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 515,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 382,
      "startLine" : 260,
      "endLine" : 268,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelResourceGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 515,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 382,
      "startLine" : 422,
      "endLine" : 429,
      "cleanedStartLine" : 252,
      "cleanedEndLine" : 258
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpPartialExtensionsGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 201,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 137,
      "startLine" : 78,
      "endLine" : 88,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpPartialExtensionsGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 201,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 137,
      "startLine" : 98,
      "endLine" : 108,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/EndpointAuthentication/VerifyHttpBasicAuthenticationHandler.cs",
        "extension" : "cs",
        "linesOfCode" : 56,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 44,
      "endLine" : 54,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/EndpointAuthentication/VerifyHttpBearerTokenAuthenticationHandler.cs",
        "extension" : "cs",
        "linesOfCode" : 46,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 41,
      "endLine" : 51,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/SpaceAddWebHookExtensions.cs",
        "extension" : "cs",
        "linesOfCode" : 50,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 37,
      "startLine" : 23,
      "endLine" : 29,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/SpaceMapWebHookExtensions.cs",
        "extension" : "cs",
        "linesOfCode" : 37,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 24,
      "endLine" : 30,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Common/Types/Pair.cs",
        "extension" : "cs",
        "linesOfCode" : 22,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 14,
      "startLine" : 14,
      "endLine" : 28,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Common/Types/Triple.cs",
        "extension" : "cs",
        "linesOfCode" : 26,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 15,
      "endLine" : 29,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/AttachmentProxy/SpaceMapAttachmentProxyExtensions.cs",
        "extension" : "cs",
        "linesOfCode" : 67,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 27,
      "endLine" : 33,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/AttachmentProxy/SpaceMapAttachmentProxyExtensions.cs",
        "extension" : "cs",
        "linesOfCode" : 67,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 46,
      "endLine" : 52,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/AttachmentProxy/SpaceMapAttachmentProxyExtensions.cs",
        "extension" : "cs",
        "linesOfCode" : 67,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 27,
      "endLine" : 33,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/AttachmentProxy/SpaceMapAttachmentProxyExtensions.cs",
        "extension" : "cs",
        "linesOfCode" : 67,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/EndpointAuthentication/VerifyHttpBearerTokenAuthenticationHandler.cs",
        "extension" : "cs",
        "linesOfCode" : 46,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 22,
      "endLine" : 30,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/EndpointAuthentication/VerifySigningKeyAuthenticationHandler.cs",
        "extension" : "cs",
        "linesOfCode" : 56,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 28,
      "endLine" : 36,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Common/ClientCredentialsConnection.cs",
        "extension" : "cs",
        "linesOfCode" : 55,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 48,
      "endLine" : 55,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Common/RefreshTokenConnection.cs",
        "extension" : "cs",
        "linesOfCode" : 63,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 60,
      "endLine" : 67,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/EndpointAuthentication/VerifySigningKeyAuthenticationHandler.cs",
        "extension" : "cs",
        "linesOfCode" : 56,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 28,
      "endLine" : 36,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/EndpointAuthentication/VerifyVerificationTokenAuthenticationHandler.cs",
        "extension" : "cs",
        "linesOfCode" : 43,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 24,
      "endLine" : 32,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/Model/HttpApi/ApiDto.cs",
        "extension" : "cs",
        "linesOfCode" : 35,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 14,
      "endLine" : 21,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/Model/HttpApi/ApiEnum.cs",
        "extension" : "cs",
        "linesOfCode" : 15,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 10,
      "endLine" : 17,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/EndpointAuthentication/VerifyHttpBasicAuthenticationHandler.cs",
        "extension" : "cs",
        "linesOfCode" : 56,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 25,
      "endLine" : 33,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/EndpointAuthentication/VerifyVerificationTokenAuthenticationHandler.cs",
        "extension" : "cs",
        "linesOfCode" : 43,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 24,
      "endLine" : 32,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/EndpointAuthentication/VerifyHttpBasicAuthenticationHandler.cs",
        "extension" : "cs",
        "linesOfCode" : 56,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 25,
      "endLine" : 33,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/EndpointAuthentication/VerifyHttpBearerTokenAuthenticationHandler.cs",
        "extension" : "cs",
        "linesOfCode" : 46,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 22,
      "endLine" : 30,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/EndpointAuthentication/VerifyHttpBearerTokenAuthenticationHandler.cs",
        "extension" : "cs",
        "linesOfCode" : 46,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 26,
      "startLine" : 22,
      "endLine" : 30,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/EndpointAuthentication/VerifyVerificationTokenAuthenticationHandler.cs",
        "extension" : "cs",
        "linesOfCode" : 43,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 24,
      "endLine" : 32,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/EndpointAuthentication/VerifyHttpBasicAuthenticationHandler.cs",
        "extension" : "cs",
        "linesOfCode" : 56,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 25,
      "endLine" : 33,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.AspNetCore/Experimental/WebHooks/EndpointAuthentication/VerifySigningKeyAuthenticationHandler.cs",
        "extension" : "cs",
        "linesOfCode" : 56,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 28,
      "endLine" : 36,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Samples.App/Startup.cs",
        "extension" : "cs",
        "linesOfCode" : 46,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 6,
      "endLine" : 19,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Samples.Web/Startup.cs",
        "extension" : "cs",
        "linesOfCode" : 64,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 7,
      "endLine" : 20,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelResourceGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 515,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 382,
      "startLine" : 448,
      "endLine" : 455,
      "cleanedStartLine" : 272,
      "cleanedEndLine" : 277
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelResourceGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 515,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 382,
      "startLine" : 466,
      "endLine" : 473,
      "cleanedStartLine" : 284,
      "cleanedEndLine" : 289
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/Model/HttpApi/ApiDto.cs",
        "extension" : "cs",
        "linesOfCode" : 35,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 11,
      "endLine" : 18,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Generator/Model/HttpApi/ApiUrlParameterOption.cs",
        "extension" : "cs",
        "linesOfCode" : 33,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 15,
      "endLine" : 22,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Common/Json.Serialization/Polymorphism/ClassNameDtoTypeConverter.cs",
        "extension" : "cs",
        "linesOfCode" : 51,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 47,
      "endLine" : 56,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Common/Json.Serialization/UrlParameterConverter.cs",
        "extension" : "cs",
        "linesOfCode" : 56,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 58,
      "endLine" : 67,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Common/Applications/ApplicationUrlGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 83,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 23,
      "endLine" : 28,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "src/JetBrains.Space.Common/Applications/ApplicationUrlGenerator.cs",
        "extension" : "cs",
        "linesOfCode" : 83,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 65,
      "startLine" : 94,
      "endLine" : 99,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  } ],
  "overallDuplication" : null
}