{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 17:19:30",
  "duplicates" : [ {
    "blockSize" : 61,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/toolbox/components/ToolboxItem.web.js",
        "extension" : "js",
        "linesOfCode" : 71,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 14,
      "endLine" : 108,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "react/features/base/toolbox/components/web/ToolboxItem.js",
        "extension" : "js",
        "linesOfCode" : 71,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 13,
      "endLine" : 107,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 32,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/RemoteVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 153,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 190,
      "endLine" : 230,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 112
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/SharedVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 102,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 120,
      "endLine" : 160,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 79
    } ]
  }, {
    "blockSize" : 21,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/connection-indicator/components/web/ConnectionIndicator.js",
        "extension" : "js",
        "linesOfCode" : 198,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 167,
      "startLine" : 13,
      "endLine" : 59,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "react/features/connection-indicator/components/web/ConnectionIndicatorContent.js",
        "extension" : "js",
        "linesOfCode" : 203,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 177,
      "startLine" : 15,
      "endLine" : 59,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 18,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/middleware.native.js",
        "extension" : "js",
        "linesOfCode" : 106,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 118,
      "endLine" : 155,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "react/features/authentication/middleware.web.js",
        "extension" : "js",
        "linesOfCode" : 88,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 67,
      "startLine" : 87,
      "endLine" : 121,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/notifications/components/web/NotificationWithParticipants.js",
        "extension" : "js",
        "linesOfCode" : 62,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 64,
      "endLine" : 80,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "react/features/notifications/components/web/ParticipantNotificationList.js",
        "extension" : "js",
        "linesOfCode" : 52,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 48,
      "endLine" : 64,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "conference.js",
        "extension" : "js",
        "linesOfCode" : 2110,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1902,
      "startLine" : 596,
      "endLine" : 618,
      "cleanedStartLine" : 324,
      "cleanedEndLine" : 339
    }, {
      "file" : {
        "relativePath" : "react/features/base/tracks/functions.js",
        "extension" : "js",
        "linesOfCode" : 253,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 205,
      "startLine" : 244,
      "endLine" : 266,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 124
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/media/components/web/Video.js",
        "extension" : "js",
        "linesOfCode" : 151,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 134,
      "startLine" : 46,
      "endLine" : 121,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "react/features/base/media/components/web/VideoTrack.js",
        "extension" : "js",
        "linesOfCode" : 70,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 37,
      "endLine" : 112,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/middleware.native.js",
        "extension" : "js",
        "linesOfCode" : 106,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 69,
      "endLine" : 96,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "react/features/authentication/middleware.web.js",
        "extension" : "js",
        "linesOfCode" : 88,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 67,
      "startLine" : 53,
      "endLine" : 76,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/local-recording/recording/WavAdapter.js",
        "extension" : "js",
        "linesOfCode" : 125,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 83,
      "endLine" : 123,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "react/features/local-recording/recording/flac/FlacAdapter.js",
        "extension" : "js",
        "linesOfCode" : 141,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 114,
      "startLine" : 96,
      "endLine" : 136,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/facial-recognition/createImageBitmap.js",
        "extension" : "js",
        "linesOfCode" : 17,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 7,
      "endLine" : 24,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "react/features/screenshot-capture/createImageBitmap.js",
        "extension" : "js",
        "linesOfCode" : 17,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 7,
      "endLine" : 24,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/screenshot-capture/worker.js",
        "extension" : "js",
        "linesOfCode" : 25,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 9,
      "endLine" : 28,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "react/features/stream-effects/presenter/TimeWorker.js",
        "extension" : "js",
        "linesOfCode" : 24,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 40,
      "endLine" : 59,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractMuteEveryoneDialog.js",
        "extension" : "js",
        "linesOfCode" : 84,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 81,
      "endLine" : 104,
      "cleanedStartLine" : 35,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractMuteEveryonesVideoDialog.js",
        "extension" : "js",
        "linesOfCode" : 86,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 82,
      "endLine" : 105,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/react/components/NavigateSectionList.js",
        "extension" : "js",
        "linesOfCode" : 178,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 158,
      "startLine" : 149,
      "endLine" : 168,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 83
    }, {
      "file" : {
        "relativePath" : "react/features/base/react/components/web/MeetingsList.js",
        "extension" : "js",
        "linesOfCode" : 191,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 129,
      "endLine" : 148,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/MuteEveryoneDialog.js",
        "extension" : "js",
        "linesOfCode" : 63,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 76,
      "endLine" : 93,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/MuteEveryonesVideoDialog.js",
        "extension" : "js",
        "linesOfCode" : 61,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 74,
      "endLine" : 91,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/local-recording/recording/OggAdapter.js",
        "extension" : "js",
        "linesOfCode" : 73,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 74,
      "endLine" : 105,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "react/features/local-recording/recording/WavAdapter.js",
        "extension" : "js",
        "linesOfCode" : 125,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 83,
      "endLine" : 114,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_size.lua",
        "extension" : "lua",
        "linesOfCode" : 140,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 81,
      "endLine" : 102,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_size.lua",
        "extension" : "lua",
        "linesOfCode" : 140,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 129,
      "endLine" : 149,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/local-recording/recording/OggAdapter.js",
        "extension" : "js",
        "linesOfCode" : 73,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 74,
      "endLine" : 105,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 38
    }, {
      "file" : {
        "relativePath" : "react/features/local-recording/recording/flac/FlacAdapter.js",
        "extension" : "js",
        "linesOfCode" : 141,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 114,
      "startLine" : 96,
      "endLine" : 127,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 53
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/ConnectionStatusComponent.js",
        "extension" : "js",
        "linesOfCode" : 314,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 281,
      "startLine" : 410,
      "endLine" : 425,
      "cleanedStartLine" : 268,
      "cleanedEndLine" : 280
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/RemoteVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 153,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 213,
      "endLine" : 228,
      "cleanedStartLine" : 98,
      "cleanedEndLine" : 110
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/modals/feedback/_feedback.scss",
        "extension" : "scss",
        "linesOfCode" : 87,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 87,
      "startLine" : 2,
      "endLine" : 16,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "css/modals/feedback/_feedback.scss",
        "extension" : "scss",
        "linesOfCode" : 87,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 87,
      "startLine" : 19,
      "endLine" : 33,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/connection-stats/components/ConnectionStatsTable.js",
        "extension" : "js",
        "linesOfCode" : 528,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 476,
      "startLine" : 234,
      "endLine" : 246,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 76
    }, {
      "file" : {
        "relativePath" : "react/features/connection-stats/components/ConnectionStatsTable.js",
        "extension" : "js",
        "linesOfCode" : 528,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 476,
      "startLine" : 265,
      "endLine" : 277,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 104
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_auth_jitsi-anonymous.lua",
        "extension" : "lua",
        "linesOfCode" : 53,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 13,
      "endLine" : 37,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_auth_token.lua",
        "extension" : "lua",
        "linesOfCode" : 100,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 79,
      "startLine" : 43,
      "endLine" : 67,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 32
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/ConnectionStatusComponent.js",
        "extension" : "js",
        "linesOfCode" : 314,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 281,
      "startLine" : 410,
      "endLine" : 425,
      "cleanedStartLine" : 268,
      "cleanedEndLine" : 280
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/SharedVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 102,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 143,
      "endLine" : 158,
      "cleanedStartLine" : 65,
      "cleanedEndLine" : 77
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/CalendarListContent.native.js",
        "extension" : "js",
        "linesOfCode" : 180,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 158,
      "startLine" : 111,
      "endLine" : 123,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/CalendarListContent.web.js",
        "extension" : "js",
        "linesOfCode" : 105,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 117,
      "endLine" : 129,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 57
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recording/components/Recording/native/StartRecordingDialog.js",
        "extension" : "js",
        "linesOfCode" : 51,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 9,
      "endLine" : 33,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "react/features/recording/components/Recording/web/StartRecordingDialog.js",
        "extension" : "js",
        "linesOfCode" : 50,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 9,
      "endLine" : 33,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/LoginDialog.js",
        "extension" : "js",
        "linesOfCode" : 221,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 335,
      "endLine" : 347,
      "cleanedStartLine" : 177,
      "cleanedEndLine" : 188
    }, {
      "file" : {
        "relativePath" : "react/features/authentication/components/web/LoginDialog.js",
        "extension" : "js",
        "linesOfCode" : 191,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 297,
      "endLine" : 309,
      "cleanedStartLine" : 147,
      "cleanedEndLine" : 158
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/_e2ee.scss",
        "extension" : "scss",
        "linesOfCode" : 18,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 8,
      "endLine" : 21,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "css/premeeting/_lobby.scss",
        "extension" : "scss",
        "linesOfCode" : 119,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 119,
      "startLine" : 29,
      "endLine" : 42,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/RemoteVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 153,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 138,
      "endLine" : 150,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 45
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/SharedVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 102,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 88,
      "endLine" : 101,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/MuteEveryonesVideoDialog.js",
        "extension" : "js",
        "linesOfCode" : 61,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 32,
      "endLine" : 56,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/MuteEveryonesVideoDialog.js",
        "extension" : "js",
        "linesOfCode" : 43,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 18,
      "endLine" : 43,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/modals/screen-share/_share-audio.scss",
        "extension" : "scss",
        "linesOfCode" : 20,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 9,
      "endLine" : 22,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "css/modals/security/_security.scss",
        "extension" : "scss",
        "linesOfCode" : 47,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 34,
      "endLine" : 47,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 40
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/MuteEveryoneDialog.js",
        "extension" : "js",
        "linesOfCode" : 63,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 32,
      "endLine" : 56,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/MuteEveryoneDialog.js",
        "extension" : "js",
        "linesOfCode" : 43,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 18,
      "endLine" : 43,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "modules/API/API.js",
        "extension" : "js",
        "linesOfCode" : 927,
        "components" : [ "primary::modules" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 786,
      "startLine" : 716,
      "endLine" : 727,
      "cleanedStartLine" : 469,
      "cleanedEndLine" : 480
    }, {
      "file" : {
        "relativePath" : "modules/API/API.js",
        "extension" : "js",
        "linesOfCode" : 927,
        "components" : [ "primary::modules" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 786,
      "startLine" : 731,
      "endLine" : 742,
      "cleanedStartLine" : 483,
      "cleanedEndLine" : 494
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/reactions/components/web/ReactionButton.js",
        "extension" : "js",
        "linesOfCode" : 81,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 143,
      "endLine" : 161,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "react/features/toolbox/components/web/ToolbarButton.js",
        "extension" : "js",
        "linesOfCode" : 62,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 108,
      "endLine" : 126,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recording/components/Recording/native/StartRecordingDialog.js",
        "extension" : "js",
        "linesOfCode" : 51,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 52,
      "endLine" : 63,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "react/features/recording/components/Recording/web/StartRecordingDialog.js",
        "extension" : "js",
        "linesOfCode" : 50,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 51,
      "endLine" : 62,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/popover/components/Popover.web.js",
        "extension" : "js",
        "linesOfCode" : 264,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 301,
      "endLine" : 312,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 164
    }, {
      "file" : {
        "relativePath" : "react/features/device-selection/components/AudioOutputPreview.js",
        "extension" : "js",
        "linesOfCode" : 81,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 114,
      "endLine" : 125,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 807,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 717,
      "startLine" : 880,
      "endLine" : 892,
      "cleanedStartLine" : 457,
      "cleanedEndLine" : 467
    }, {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 807,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 717,
      "startLine" : 1008,
      "endLine" : 1020,
      "cleanedStartLine" : 565,
      "cleanedEndLine" : 575
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/welcome/components/privacy/components/PrivacyView.js",
        "extension" : "js",
        "linesOfCode" : 25,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 28,
      "endLine" : 39,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "react/features/welcome/components/terms/components/TermsView.js",
        "extension" : "js",
        "linesOfCode" : 25,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 28,
      "endLine" : 39,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/chat/components/native/ChatMessageGroup.js",
        "extension" : "js",
        "linesOfCode" : 57,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 49,
      "endLine" : 60,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "react/features/chat/components/native/MessageContainer.js",
        "extension" : "js",
        "linesOfCode" : 80,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 71,
      "endLine" : 82,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/polls/components/native/PollCreate.js",
        "extension" : "js",
        "linesOfCode" : 146,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 47,
      "endLine" : 66,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "react/features/polls/components/web/PollCreate.js",
        "extension" : "js",
        "linesOfCode" : 218,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 40,
      "endLine" : 59,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/reactions/components/native/RaiseHandButton.js",
        "extension" : "js",
        "linesOfCode" : 77,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 8,
      "endLine" : 36,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "react/features/toolbox/components/native/RaiseHandButton.js",
        "extension" : "js",
        "linesOfCode" : 48,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 6,
      "endLine" : 33,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_poltergeist.lua",
        "extension" : "lua",
        "linesOfCode" : 224,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 188,
      "startLine" : 24,
      "endLine" : 36,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_token_verification.lua",
        "extension" : "lua",
        "linesOfCode" : 87,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 15,
      "endLine" : 28,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/dynamic-branding/reducer.js",
        "extension" : "js",
        "linesOfCode" : 89,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 143,
      "endLine" : 152,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "react/features/dynamic-branding/reducer.js",
        "extension" : "js",
        "linesOfCode" : 89,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 157,
      "endLine" : 166,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/shared-video/components/native/VideoManager.js",
        "extension" : "js",
        "linesOfCode" : 99,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 42,
      "endLine" : 68,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 24
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/native/YoutubeVideoManager.js",
        "extension" : "js",
        "linesOfCode" : 101,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 45,
      "endLine" : 71,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/shared-video/components/native/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 72,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 131,
      "endLine" : 143,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/web/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 74,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 124,
      "endLine" : 137,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/shared-video/reducer.native.js",
        "extension" : "js",
        "linesOfCode" : 22,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 15,
      "endLine" : 24,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/reducer.web.js",
        "extension" : "js",
        "linesOfCode" : 26,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 15,
      "endLine" : 24,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/toolbox/components/MuteEveryoneButton.js",
        "extension" : "js",
        "linesOfCode" : 39,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 72,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "react/features/toolbox/components/MuteEveryonesVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 39,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 52,
      "endLine" : 72,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/polls/components/native/PollAnswer.js",
        "extension" : "js",
        "linesOfCode" : 57,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 17,
      "endLine" : 27,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "react/features/polls/components/web/PollAnswer.js",
        "extension" : "js",
        "linesOfCode" : 67,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 13,
      "endLine" : 23,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/welcome/components/help/components/HelpView.js",
        "extension" : "js",
        "linesOfCode" : 43,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 41,
      "endLine" : 59,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "react/features/welcome/components/settings/components/SettingsView.js",
        "extension" : "js",
        "linesOfCode" : 429,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 389,
      "startLine" : 155,
      "endLine" : 173,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/react/components/native/AvatarListItem.js",
        "extension" : "js",
        "linesOfCode" : 89,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 155,
      "endLine" : 167,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 77
    }, {
      "file" : {
        "relativePath" : "react/features/base/react/components/native/NavigateSectionListItem.js",
        "extension" : "js",
        "linesOfCode" : 76,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 74,
      "endLine" : 86,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/CalendarListContent.native.js",
        "extension" : "js",
        "linesOfCode" : 180,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 158,
      "startLine" : 168,
      "endLine" : 178,
      "cleanedStartLine" : 84,
      "cleanedEndLine" : 93
    }, {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/CalendarListContent.web.js",
        "extension" : "js",
        "linesOfCode" : 105,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 132,
      "endLine" : 142,
      "cleanedStartLine" : 58,
      "cleanedEndLine" : 67
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/modals/screen-share/_share-audio.scss",
        "extension" : "scss",
        "linesOfCode" : 20,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 11,
      "endLine" : 21,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "css/modals/screen-share/_share-screen-warning.scss",
        "extension" : "scss",
        "linesOfCode" : 19,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 4,
      "endLine" : 14,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastAction.java",
        "extension" : "java",
        "linesOfCode" : 77,
        "components" : [ "primary::android" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 81,
      "endLine" : 97,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastEvent.java",
        "extension" : "java",
        "linesOfCode" : 127,
        "components" : [ "primary::android" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 106,
      "endLine" : 122,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 71
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/modals/screen-share/_share-screen-warning.scss",
        "extension" : "scss",
        "linesOfCode" : 19,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 4,
      "endLine" : 14,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "css/modals/security/_security.scss",
        "extension" : "scss",
        "linesOfCode" : 47,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 36,
      "endLine" : 46,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/welcome/components/settings/components/SettingsView.js",
        "extension" : "js",
        "linesOfCode" : 429,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 389,
      "startLine" : 116,
      "endLine" : 124,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "react/features/welcome/components/settings/components/SettingsView.js",
        "extension" : "js",
        "linesOfCode" : 429,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 389,
      "startLine" : 174,
      "endLine" : 182,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 74
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_breakout_rooms.lua",
        "extension" : "lua",
        "linesOfCode" : 420,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 341,
      "startLine" : 422,
      "endLine" : 435,
      "cleanedStartLine" : 242,
      "cleanedEndLine" : 250
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_lobby_rooms.lua",
        "extension" : "lua",
        "linesOfCode" : 321,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 264,
      "startLine" : 209,
      "endLine" : 222,
      "cleanedStartLine" : 124,
      "cleanedEndLine" : 132
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/premeeting/components/web/Preview.js",
        "extension" : "js",
        "linesOfCode" : 51,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 65,
      "endLine" : 75,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "react/features/connection-indicator/components/web/ConnectionIndicator.js",
        "extension" : "js",
        "linesOfCode" : 198,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 167,
      "startLine" : 348,
      "endLine" : 359,
      "cleanedStartLine" : 151,
      "cleanedEndLine" : 159
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/CalendarListContent.native.js",
        "extension" : "js",
        "linesOfCode" : 180,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 158,
      "startLine" : 6,
      "endLine" : 41,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/CalendarListContent.web.js",
        "extension" : "js",
        "linesOfCode" : 105,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 6,
      "endLine" : 41,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/connection-indicator/components/web/ConnectionIndicator.js",
        "extension" : "js",
        "linesOfCode" : 198,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 167,
      "startLine" : 353,
      "endLine" : 361,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 161
    }, {
      "file" : {
        "relativePath" : "react/features/connection-indicator/components/web/ConnectionIndicatorContent.js",
        "extension" : "js",
        "linesOfCode" : 203,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 177,
      "startLine" : 297,
      "endLine" : 305,
      "cleanedStartLine" : 155,
      "cleanedEndLine" : 163
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recent-list/components/RecentListItemMenu.native.js",
        "extension" : "js",
        "linesOfCode" : 88,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 94,
      "endLine" : 107,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/SharedVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 102,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 120,
      "endLine" : 133,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/mobile/audio-mode/components/AudioRoutePickerDialog.js",
        "extension" : "js",
        "linesOfCode" : 175,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 150,
      "startLine" : 330,
      "endLine" : 341,
      "cleanedStartLine" : 140,
      "cleanedEndLine" : 148
    }, {
      "file" : {
        "relativePath" : "react/features/welcome/components/WelcomePage.native.js",
        "extension" : "js",
        "linesOfCode" : 298,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 262,
      "startLine" : 382,
      "endLine" : 393,
      "cleanedStartLine" : 251,
      "cleanedEndLine" : 259
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 807,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 717,
      "startLine" : 1106,
      "endLine" : 1114,
      "cleanedStartLine" : 642,
      "cleanedEndLine" : 650
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/MeetingParticipantItem.js",
        "extension" : "js",
        "linesOfCode" : 188,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 286,
      "endLine" : 294,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/native/ClearableInput.js",
        "extension" : "js",
        "linesOfCode" : 99,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 100,
      "endLine" : 117,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/ClearableInput.js",
        "extension" : "js",
        "linesOfCode" : 130,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 120,
      "startLine" : 128,
      "endLine" : 145,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 74
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/_chat.scss",
        "extension" : "scss",
        "linesOfCode" : 488,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 100,
      "endLine" : 109,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "css/_chat.scss",
        "extension" : "scss",
        "linesOfCode" : 488,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 488,
      "startLine" : 529,
      "endLine" : 538,
      "cleanedStartLine" : 435,
      "cleanedEndLine" : 443
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "conference.js",
        "extension" : "js",
        "linesOfCode" : 2110,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1902,
      "startLine" : 621,
      "endLine" : 632,
      "cleanedStartLine" : 342,
      "cleanedEndLine" : 350
    }, {
      "file" : {
        "relativePath" : "react/features/base/tracks/functions.js",
        "extension" : "js",
        "linesOfCode" : 253,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 205,
      "startLine" : 268,
      "endLine" : 279,
      "cleanedStartLine" : 126,
      "cleanedEndLine" : 134
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/native/MeetingParticipantItem.js",
        "extension" : "js",
        "linesOfCode" : 99,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 84,
      "startLine" : 161,
      "endLine" : 172,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/MeetingParticipants.js",
        "extension" : "js",
        "linesOfCode" : 117,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 93,
      "startLine" : 135,
      "endLine" : 145,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 89
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/native/MeetingParticipantItem.js",
        "extension" : "js",
        "linesOfCode" : 99,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 84,
      "startLine" : 161,
      "endLine" : 172,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/MeetingParticipantItem.js",
        "extension" : "js",
        "linesOfCode" : 188,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 283,
      "endLine" : 293,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/MeetingParticipantItem.js",
        "extension" : "js",
        "linesOfCode" : 188,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 283,
      "endLine" : 293,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/MeetingParticipants.js",
        "extension" : "js",
        "linesOfCode" : 117,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 93,
      "startLine" : 135,
      "endLine" : 145,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 89
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/dialog/components/native/AlertDialog.js",
        "extension" : "js",
        "linesOfCode" : 21,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 14,
      "startLine" : 35,
      "endLine" : 44,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "react/features/base/dialog/components/native/ConfirmDialog.js",
        "extension" : "js",
        "linesOfCode" : 49,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 91,
      "endLine" : 100,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recent-list/components/RecentListItemMenu.native.js",
        "extension" : "js",
        "linesOfCode" : 88,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 94,
      "endLine" : 107,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 46
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/RemoteVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 153,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 190,
      "endLine" : 203,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 89
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_poltergeist.lua",
        "extension" : "lua",
        "linesOfCode" : 224,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 188,
      "startLine" : 243,
      "endLine" : 255,
      "cleanedStartLine" : 139,
      "cleanedEndLine" : 147
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_poltergeist.lua",
        "extension" : "lua",
        "linesOfCode" : 224,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 188,
      "startLine" : 285,
      "endLine" : 297,
      "cleanedStartLine" : 164,
      "cleanedEndLine" : 172
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_av_moderation_component.lua",
        "extension" : "lua",
        "linesOfCode" : 234,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 181,
      "startLine" : 132,
      "endLine" : 143,
      "cleanedStartLine" : 71,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_breakout_rooms.lua",
        "extension" : "lua",
        "linesOfCode" : 420,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 341,
      "startLine" : 253,
      "endLine" : 265,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 153
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/native/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 236,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 257,
      "endLine" : 264,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 107
    }, {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.native.js",
        "extension" : "js",
        "linesOfCode" : 89,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 109,
      "endLine" : 116,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/JoinButton.web.js",
        "extension" : "js",
        "linesOfCode" : 51,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 88,
      "endLine" : 96,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "react/features/chat/components/web/DisplayNameForm.js",
        "extension" : "js",
        "linesOfCode" : 90,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 79,
      "startLine" : 140,
      "endLine" : 148,
      "cleanedStartLine" : 72,
      "cleanedEndLine" : 79
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/AddMeetingUrlButton.web.js",
        "extension" : "js",
        "linesOfCode" : 55,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/JoinButton.web.js",
        "extension" : "js",
        "linesOfCode" : 51,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 88,
      "endLine" : 96,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/toolbox/components/web/AudioSettingsButton.js",
        "extension" : "js",
        "linesOfCode" : 83,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 73,
      "endLine" : 96,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "react/features/toolbox/components/web/VideoSettingsButton.js",
        "extension" : "js",
        "linesOfCode" : 86,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 91,
      "endLine" : 114,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/native/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 236,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 257,
      "endLine" : 264,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 107
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/native/MeetingParticipantList.js",
        "extension" : "js",
        "linesOfCode" : 164,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/welcome/components/settings/components/SettingsView.js",
        "extension" : "js",
        "linesOfCode" : 429,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 389,
      "startLine" : 128,
      "endLine" : 135,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 47
    }, {
      "file" : {
        "relativePath" : "react/features/welcome/components/settings/components/SettingsView.js",
        "extension" : "js",
        "linesOfCode" : 429,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 389,
      "startLine" : 175,
      "endLine" : 182,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 74
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/polls/components/native/PollCreate.js",
        "extension" : "js",
        "linesOfCode" : 146,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 22,
      "endLine" : 29,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "react/features/polls/components/web/PollCreate.js",
        "extension" : "js",
        "linesOfCode" : 218,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 19,
      "endLine" : 26,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/_videolayout_default.scss",
        "extension" : "scss",
        "linesOfCode" : 595,
        "components" : [ "primary::css" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 595,
      "startLine" : 666,
      "endLine" : 676,
      "cleanedStartLine" : 542,
      "cleanedEndLine" : 549
    }, {
      "file" : {
        "relativePath" : "css/_videolayout_default.scss",
        "extension" : "scss",
        "linesOfCode" : 595,
        "components" : [ "primary::css" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 595,
      "startLine" : 702,
      "endLine" : 712,
      "cleanedStartLine" : 570,
      "cleanedEndLine" : 577
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/filmstrip/_horizontal_filmstrip.scss",
        "extension" : "scss",
        "linesOfCode" : 67,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 67,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "css/filmstrip/_vertical_filmstrip.scss",
        "extension" : "scss",
        "linesOfCode" : 85,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 85,
      "startLine" : 2,
      "endLine" : 9,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/etherpad/components/native/SharedDocument.js",
        "extension" : "js",
        "linesOfCode" : 82,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 108,
      "endLine" : 115,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/dial-in-summary/native/DialInSummary.js",
        "extension" : "js",
        "linesOfCode" : 79,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 136,
      "endLine" : 143,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/popover/components/Popover.web.js",
        "extension" : "js",
        "linesOfCode" : 264,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 305,
      "endLine" : 312,
      "cleanedStartLine" : 157,
      "cleanedEndLine" : 164
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/ParticipantsPane.js",
        "extension" : "js",
        "linesOfCode" : 241,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 205,
      "startLine" : 288,
      "endLine" : 295,
      "cleanedStartLine" : 160,
      "cleanedEndLine" : 167
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/premeeting/components/web/ConnectionStatus.js",
        "extension" : "js",
        "linesOfCode" : 91,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 80,
      "startLine" : 111,
      "endLine" : 120,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 80
    }, {
      "file" : {
        "relativePath" : "react/features/prejoin/components/dialogs/JoinByPhoneDialog.js",
        "extension" : "js",
        "linesOfCode" : 127,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 220,
      "endLine" : 230,
      "cleanedStartLine" : 104,
      "cleanedEndLine" : 111
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "static/close.html",
        "extension" : "html",
        "linesOfCode" : 21,
        "components" : [ "primary::static" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 14,
      "startLine" : 1,
      "endLine" : 11,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "static/close2.html",
        "extension" : "html",
        "linesOfCode" : 21,
        "components" : [ "primary::static" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 14,
      "startLine" : 1,
      "endLine" : 11,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/shared-video/components/native/VideoManager.js",
        "extension" : "js",
        "linesOfCode" : 99,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 90,
      "endLine" : 104,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/native/YoutubeVideoManager.js",
        "extension" : "js",
        "linesOfCode" : 101,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 93,
      "endLine" : 107,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/MuteEveryoneDialog.js",
        "extension" : "js",
        "linesOfCode" : 63,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 59,
      "endLine" : 66,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/MuteEveryonesVideoDialog.js",
        "extension" : "js",
        "linesOfCode" : 61,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 59,
      "endLine" : 66,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/conference/components/web/ConferenceInfo.js",
        "extension" : "js",
        "linesOfCode" : 152,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 154,
      "endLine" : 163,
      "cleanedStartLine" : 92,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "react/features/mobile/audio-mode/components/AudioRoutePickerDialog.js",
        "extension" : "js",
        "linesOfCode" : 175,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 150,
      "startLine" : 307,
      "endLine" : 316,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 129
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_external_services.lua",
        "extension" : "lua",
        "linesOfCode" : 205,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 173,
      "startLine" : 142,
      "endLine" : 149,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 109
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_external_services.lua",
        "extension" : "lua",
        "linesOfCode" : 205,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 173,
      "startLine" : 218,
      "endLine" : 225,
      "cleanedStartLine" : 157,
      "cleanedEndLine" : 164
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/native/AddPeopleDialog.js",
        "extension" : "js",
        "linesOfCode" : 461,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 418,
      "startLine" : 457,
      "endLine" : 464,
      "cleanedStartLine" : 310,
      "cleanedEndLine" : 317
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/native/AddPeopleDialog.js",
        "extension" : "js",
        "linesOfCode" : 461,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 418,
      "startLine" : 512,
      "endLine" : 519,
      "cleanedStartLine" : 357,
      "cleanedEndLine" : 364
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_roster_command.lua",
        "extension" : "lua",
        "linesOfCode" : 128,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 103,
      "startLine" : 33,
      "endLine" : 41,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_roster_command.lua",
        "extension" : "lua",
        "linesOfCode" : 128,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 103,
      "startLine" : 72,
      "endLine" : 80,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/_videolayout_default.scss",
        "extension" : "scss",
        "linesOfCode" : 595,
        "components" : [ "primary::css" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 595,
      "startLine" : 629,
      "endLine" : 639,
      "cleanedStartLine" : 513,
      "cleanedEndLine" : 520
    }, {
      "file" : {
        "relativePath" : "css/_videolayout_default.scss",
        "extension" : "scss",
        "linesOfCode" : 595,
        "components" : [ "primary::css" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 595,
      "startLine" : 684,
      "endLine" : 694,
      "cleanedStartLine" : 556,
      "cleanedEndLine" : 563
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/avatar/components/Avatar.js",
        "extension" : "js",
        "linesOfCode" : 110,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 94,
      "startLine" : 207,
      "endLine" : 214,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "react/features/connection-indicator/components/web/ConnectionIndicator.js",
        "extension" : "js",
        "linesOfCode" : 198,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 167,
      "startLine" : 353,
      "endLine" : 360,
      "cleanedStartLine" : 153,
      "cleanedEndLine" : 160
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractMuteEveryoneDialog.js",
        "extension" : "js",
        "linesOfCode" : 84,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 61,
      "endLine" : 79,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractMuteEveryonesVideoDialog.js",
        "extension" : "js",
        "linesOfCode" : 86,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 62,
      "endLine" : 80,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.web.js",
        "extension" : "js",
        "linesOfCode" : 135,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 191,
      "endLine" : 198,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/web/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 74,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/devices/middleware.js",
        "extension" : "js",
        "linesOfCode" : 259,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 219,
      "startLine" : 344,
      "endLine" : 351,
      "cleanedStartLine" : 209,
      "cleanedEndLine" : 216
    }, {
      "file" : {
        "relativePath" : "react/features/device-selection/actions.js",
        "extension" : "js",
        "linesOfCode" : 55,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 59,
      "endLine" : 66,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 807,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 717,
      "startLine" : 1106,
      "endLine" : 1113,
      "cleanedStartLine" : 642,
      "cleanedEndLine" : 649
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/MeetingParticipants.js",
        "extension" : "js",
        "linesOfCode" : 117,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 93,
      "startLine" : 138,
      "endLine" : 145,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/toolbox/components/native/ScreenSharingButton.js",
        "extension" : "js",
        "linesOfCode" : 27,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 25,
      "endLine" : 32,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "react/features/toolbox/components/native/ScreenSharingIosButton.js",
        "extension" : "js",
        "linesOfCode" : 67,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 132,
      "endLine" : 139,
      "cleanedStartLine" : 39,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/avatar/components/Avatar.js",
        "extension" : "js",
        "linesOfCode" : 110,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 94,
      "startLine" : 207,
      "endLine" : 214,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "react/features/connection-indicator/components/web/ConnectionIndicatorContent.js",
        "extension" : "js",
        "linesOfCode" : 203,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 177,
      "startLine" : 297,
      "endLine" : 304,
      "cleanedStartLine" : 155,
      "cleanedEndLine" : 162
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recording/components/Recording/StartRecordingDialogContent.js",
        "extension" : "js",
        "linesOfCode" : 339,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 302,
      "startLine" : 193,
      "endLine" : 200,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 87
    }, {
      "file" : {
        "relativePath" : "react/features/recording/components/Recording/StartRecordingDialogContent.js",
        "extension" : "js",
        "linesOfCode" : 339,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 302,
      "startLine" : 336,
      "endLine" : 343,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/media/actions.js",
        "extension" : "js",
        "linesOfCode" : 93,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 12,
      "endLine" : 19,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "react/features/base/media/reducer.js",
        "extension" : "js",
        "linesOfCode" : 128,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 10,
      "endLine" : 17,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/deep-linking/components/DeepLinkingDesktopPage.web.js",
        "extension" : "js",
        "linesOfCode" : 115,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 88,
      "startLine" : 85,
      "endLine" : 94,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "react/features/deep-linking/components/DeepLinkingMobilePage.web.js",
        "extension" : "js",
        "linesOfCode" : 169,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 140,
      "startLine" : 117,
      "endLine" : 126,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/AddMeetingUrlButton.web.js",
        "extension" : "js",
        "linesOfCode" : 55,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 95,
      "endLine" : 103,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 44
    }, {
      "file" : {
        "relativePath" : "react/features/chat/components/web/DisplayNameForm.js",
        "extension" : "js",
        "linesOfCode" : 90,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 79,
      "startLine" : 140,
      "endLine" : 148,
      "cleanedStartLine" : 72,
      "cleanedEndLine" : 79
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/reducer.js",
        "extension" : "js",
        "linesOfCode" : 89,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 80,
      "startLine" : 136,
      "endLine" : 148,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/reducer.js",
        "extension" : "js",
        "linesOfCode" : 37,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 31,
      "endLine" : 41,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recording/components/Recording/StartRecordingDialogContent.js",
        "extension" : "js",
        "linesOfCode" : 339,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 302,
      "startLine" : 193,
      "endLine" : 200,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 87
    }, {
      "file" : {
        "relativePath" : "react/features/recording/components/Recording/StartRecordingDialogContent.js",
        "extension" : "js",
        "linesOfCode" : 339,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 302,
      "startLine" : 255,
      "endLine" : 262,
      "cleanedStartLine" : 127,
      "cleanedEndLine" : 134
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/device-selection/components/AudioOutputPreview.js",
        "extension" : "js",
        "linesOfCode" : 81,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 118,
      "endLine" : 125,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 64
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/ParticipantsPane.js",
        "extension" : "js",
        "linesOfCode" : 241,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 205,
      "startLine" : 288,
      "endLine" : 295,
      "cleanedStartLine" : 160,
      "cleanedEndLine" : 167
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/welcome/components/settings/components/SettingsView.js",
        "extension" : "js",
        "linesOfCode" : 429,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 389,
      "startLine" : 117,
      "endLine" : 124,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "react/features/welcome/components/settings/components/SettingsView.js",
        "extension" : "js",
        "linesOfCode" : 429,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 389,
      "startLine" : 128,
      "endLine" : 135,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 807,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 717,
      "startLine" : 1106,
      "endLine" : 1113,
      "cleanedStartLine" : 642,
      "cleanedEndLine" : 649
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/native/MeetingParticipantItem.js",
        "extension" : "js",
        "linesOfCode" : 99,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 84,
      "startLine" : 165,
      "endLine" : 172,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/popover/functions.web.js",
        "extension" : "js",
        "linesOfCode" : 125,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 120,
      "endLine" : 130,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "react/features/base/popover/functions.web.js",
        "extension" : "js",
        "linesOfCode" : 125,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 136,
      "endLine" : 146,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/FooterContextMenu.js",
        "extension" : "js",
        "linesOfCode" : 129,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 112,
      "startLine" : 44,
      "endLine" : 51,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/MeetingParticipantContextMenu.js",
        "extension" : "js",
        "linesOfCode" : 337,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 290,
      "startLine" : 170,
      "endLine" : 177,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/react/components/native/AvatarListItem.js",
        "extension" : "js",
        "linesOfCode" : 89,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 132,
      "endLine" : 150,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "react/features/base/react/components/native/NavigateSectionListItem.js",
        "extension" : "js",
        "linesOfCode" : 76,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 62,
      "startLine" : 54,
      "endLine" : 72,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/chat/components/native/PrivateMessageButton.js",
        "extension" : "js",
        "linesOfCode" : 47,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 34,
      "startLine" : 37,
      "endLine" : 55,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "react/features/chat/components/web/PrivateMessageButton.js",
        "extension" : "js",
        "linesOfCode" : 36,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 25,
      "startLine" : 36,
      "endLine" : 54,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.native.js",
        "extension" : "js",
        "linesOfCode" : 89,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 109,
      "endLine" : 116,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/native/MeetingParticipantList.js",
        "extension" : "js",
        "linesOfCode" : 164,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 187,
      "endLine" : 194,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/_meetings_list.scss",
        "extension" : "scss",
        "linesOfCode" : 143,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 143,
      "startLine" : 141,
      "endLine" : 150,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "css/_navigate_section_list.scss",
        "extension" : "scss",
        "linesOfCode" : 74,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 42,
      "endLine" : 51,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/tracks/reducer.js",
        "extension" : "js",
        "linesOfCode" : 101,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 80,
      "startLine" : 56,
      "endLine" : 64,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "react/features/large-video/reducer.js",
        "extension" : "js",
        "linesOfCode" : 34,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 12,
      "endLine" : 26,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recording/components/Recording/StartRecordingDialogContent.js",
        "extension" : "js",
        "linesOfCode" : 339,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 302,
      "startLine" : 255,
      "endLine" : 262,
      "cleanedStartLine" : 127,
      "cleanedEndLine" : 134
    }, {
      "file" : {
        "relativePath" : "react/features/recording/components/Recording/StartRecordingDialogContent.js",
        "extension" : "js",
        "linesOfCode" : 339,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 302,
      "startLine" : 336,
      "endLine" : 343,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 204
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_auth_jitsi-anonymous.lua",
        "extension" : "lua",
        "linesOfCode" : 53,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 65,
      "endLine" : 78,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_auth_token.lua",
        "extension" : "lua",
        "linesOfCode" : 100,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 79,
      "startLine" : 131,
      "endLine" : 143,
      "cleanedStartLine" : 72,
      "cleanedEndLine" : 79
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractGrantModeratorDialog.js",
        "extension" : "js",
        "linesOfCode" : 35,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 38,
      "endLine" : 61,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractKickRemoteParticipantDialog.js",
        "extension" : "js",
        "linesOfCode" : 29,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 33,
      "endLine" : 56,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.web.js",
        "extension" : "js",
        "linesOfCode" : 135,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 191,
      "endLine" : 198,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 113
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/native/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 72,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 135,
      "endLine" : 142,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/popover/functions.web.js",
        "extension" : "js",
        "linesOfCode" : 125,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 88,
      "endLine" : 98,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 70
    }, {
      "file" : {
        "relativePath" : "react/features/base/popover/functions.web.js",
        "extension" : "js",
        "linesOfCode" : 125,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 115,
      "startLine" : 104,
      "endLine" : 114,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 82
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/native/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 152,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 124,
      "startLine" : 211,
      "endLine" : 217,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.native.js",
        "extension" : "js",
        "linesOfCode" : 89,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 109,
      "endLine" : 115,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/polls/components/native/PollResults.js",
        "extension" : "js",
        "linesOfCode" : 84,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 115,
      "endLine" : 122,
      "cleanedStartLine" : 72,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "react/features/polls/components/web/PollResults.js",
        "extension" : "js",
        "linesOfCode" : 69,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 75,
      "endLine" : 83,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 66
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/subtitles/components/ClosedCaptionButton.native.js",
        "extension" : "js",
        "linesOfCode" : 24,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 9,
      "endLine" : 19,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "react/features/subtitles/components/ClosedCaptionButton.web.js",
        "extension" : "js",
        "linesOfCode" : 16,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 8,
      "endLine" : 19,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 7
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/dial-in-summary/native/DialInSummary.js",
        "extension" : "js",
        "linesOfCode" : 79,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 60,
      "endLine" : 67,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "react/features/welcome/components/help/components/HelpView.js",
        "extension" : "js",
        "linesOfCode" : 43,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 41,
      "endLine" : 48,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recording/components/LiveStream/AbstractLiveStreamButton.js",
        "extension" : "js",
        "linesOfCode" : 89,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 133,
      "endLine" : 146,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "react/features/recording/components/Recording/AbstractRecordButton.js",
        "extension" : "js",
        "linesOfCode" : 95,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 143,
      "endLine" : 156,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/popover/components/Popover.web.js",
        "extension" : "js",
        "linesOfCode" : 264,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 301,
      "endLine" : 308,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/AddMeetingUrlButton.web.js",
        "extension" : "js",
        "linesOfCode" : 55,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 95,
      "endLine" : 102,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/prejoin/components/Prejoin.js",
        "extension" : "js",
        "linesOfCode" : 212,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 180,
      "startLine" : 370,
      "endLine" : 379,
      "cleanedStartLine" : 174,
      "cleanedEndLine" : 180
    }, {
      "file" : {
        "relativePath" : "react/features/prejoin/components/dialogs/JoinByPhoneDialog.js",
        "extension" : "js",
        "linesOfCode" : 127,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 221,
      "endLine" : 230,
      "cleanedStartLine" : 105,
      "cleanedEndLine" : 111
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractMuteEveryoneDialog.js",
        "extension" : "js",
        "linesOfCode" : 84,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 43,
      "endLine" : 57,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractMuteEveryonesVideoDialog.js",
        "extension" : "js",
        "linesOfCode" : 86,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 44,
      "endLine" : 58,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/etherpad/components/native/styles.js",
        "extension" : "js",
        "linesOfCode" : 19,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 11,
      "endLine" : 18,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/dial-in-summary/native/styles.js",
        "extension" : "js",
        "linesOfCode" : 19,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 14,
      "endLine" : 21,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recent-list/components/RecentListItemMenu.native.js",
        "extension" : "js",
        "linesOfCode" : 88,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 121,
      "endLine" : 130,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/SharedVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 102,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 146,
      "endLine" : 155,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 74
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/native/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 152,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 124,
      "startLine" : 211,
      "endLine" : 217,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/native/MeetingParticipantList.js",
        "extension" : "js",
        "linesOfCode" : 164,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 807,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 717,
      "startLine" : 1079,
      "endLine" : 1085,
      "cleanedStartLine" : 626,
      "cleanedEndLine" : 632
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/native/MeetingParticipantList.js",
        "extension" : "js",
        "linesOfCode" : 164,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/AddMeetingUrlButton.web.js",
        "extension" : "js",
        "linesOfCode" : 55,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 95,
      "endLine" : 102,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "react/features/device-selection/components/AudioOutputPreview.js",
        "extension" : "js",
        "linesOfCode" : 81,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_speakerstats_component.lua",
        "extension" : "lua",
        "linesOfCode" : 217,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 175,
      "startLine" : 42,
      "endLine" : 51,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_speakerstats_component.lua",
        "extension" : "lua",
        "linesOfCode" : 217,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 175,
      "startLine" : 84,
      "endLine" : 92,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 59
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/conference/components/web/ConferenceInfo.js",
        "extension" : "js",
        "linesOfCode" : 152,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/native/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 152,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 124,
      "startLine" : 211,
      "endLine" : 217,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/buttons/CopyButton.js",
        "extension" : "js",
        "linesOfCode" : 129,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 130,
      "endLine" : 153,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/LiveStreamSection.js",
        "extension" : "js",
        "linesOfCode" : 64,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 48,
      "endLine" : 70,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/dial-in-summary/native/DialInSummary.js",
        "extension" : "js",
        "linesOfCode" : 79,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 60,
      "endLine" : 67,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "react/features/welcome/components/settings/components/SettingsView.js",
        "extension" : "js",
        "linesOfCode" : 429,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 389,
      "startLine" : 155,
      "endLine" : 162,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 62
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/native/AddPeopleDialog.js",
        "extension" : "js",
        "linesOfCode" : 461,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 418,
      "startLine" : 149,
      "endLine" : 155,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/native/AddPeopleDialog.js",
        "extension" : "js",
        "linesOfCode" : 461,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 418,
      "startLine" : 173,
      "endLine" : 180,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 87
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/audio-level-indicator/components/AudioLevelIndicator.js",
        "extension" : "js",
        "linesOfCode" : 62,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 35,
      "endLine" : 41,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/native/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 236,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 257,
      "endLine" : 263,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/chat/components/web/ChatButton.js",
        "extension" : "js",
        "linesOfCode" : 49,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 48,
      "endLine" : 75,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "react/features/toolbox/components/web/ShareDesktopButton.js",
        "extension" : "js",
        "linesOfCode" : 59,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 66,
      "endLine" : 93,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_size.lua",
        "extension" : "lua",
        "linesOfCode" : 140,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 111,
      "endLine" : 119,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 66
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_size.lua",
        "extension" : "lua",
        "linesOfCode" : 140,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 172,
      "endLine" : 180,
      "cleanedStartLine" : 98,
      "cleanedEndLine" : 104
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/ConnectionStatusComponent.js",
        "extension" : "js",
        "linesOfCode" : 314,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 281,
      "startLine" : 145,
      "endLine" : 151,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/ConnectionStatusComponent.js",
        "extension" : "js",
        "linesOfCode" : 314,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 281,
      "startLine" : 166,
      "endLine" : 172,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/popover/components/Popover.web.js",
        "extension" : "js",
        "linesOfCode" : 264,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 323,
      "endLine" : 329,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 176
    }, {
      "file" : {
        "relativePath" : "react/features/device-selection/components/AudioOutputPreview.js",
        "extension" : "js",
        "linesOfCode" : 81,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 116,
      "endLine" : 122,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/_atlaskit_overrides.scss",
        "extension" : "scss",
        "linesOfCode" : 84,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 84,
      "startLine" : 68,
      "endLine" : 75,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "css/_atlaskit_overrides.scss",
        "extension" : "scss",
        "linesOfCode" : 84,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 84,
      "startLine" : 78,
      "endLine" : 85,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/audio-level-indicator/components/AudioLevelIndicator.js",
        "extension" : "js",
        "linesOfCode" : 62,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 35,
      "endLine" : 41,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "react/features/conference/components/web/ConferenceInfo.js",
        "extension" : "js",
        "linesOfCode" : 152,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/premeeting/components/web/Preview.js",
        "extension" : "js",
        "linesOfCode" : 51,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 69,
      "endLine" : 75,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 34
    }, {
      "file" : {
        "relativePath" : "react/features/connection-indicator/components/web/ConnectionIndicatorContent.js",
        "extension" : "js",
        "linesOfCode" : 203,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 177,
      "startLine" : 297,
      "endLine" : 303,
      "cleanedStartLine" : 155,
      "cleanedEndLine" : 161
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/premeeting/components/web/PreMeetingScreen.js",
        "extension" : "js",
        "linesOfCode" : 80,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 137,
      "endLine" : 147,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "react/features/prejoin/components/PrejoinThirdParty.js",
        "extension" : "js",
        "linesOfCode" : 40,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 67,
      "endLine" : 76,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/polls/components/native/PollItem.js",
        "extension" : "js",
        "linesOfCode" : 22,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 14,
      "startLine" : 28,
      "endLine" : 36,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "react/features/polls/components/web/PollItem.js",
        "extension" : "js",
        "linesOfCode" : 19,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 24,
      "endLine" : 32,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/react/components/NavigateSectionList.js",
        "extension" : "js",
        "linesOfCode" : 178,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 158,
      "startLine" : 154,
      "endLine" : 160,
      "cleanedStartLine" : 72,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "react/features/base/react/components/web/MeetingsList.js",
        "extension" : "js",
        "linesOfCode" : 191,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 153,
      "endLine" : 159,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 63
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/audio-level-indicator/components/AudioLevelIndicator.js",
        "extension" : "js",
        "linesOfCode" : 62,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 35,
      "endLine" : 41,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.native.js",
        "extension" : "js",
        "linesOfCode" : 89,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 109,
      "endLine" : 115,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/toolbox/components/web/FullscreenButton.js",
        "extension" : "js",
        "linesOfCode" : 44,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 60,
      "endLine" : 87,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "react/features/toolbox/components/web/ShareDesktopButton.js",
        "extension" : "js",
        "linesOfCode" : 59,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 66,
      "endLine" : 93,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 807,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 717,
      "startLine" : 1079,
      "endLine" : 1085,
      "cleanedStartLine" : 626,
      "cleanedEndLine" : 632
    }, {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.native.js",
        "extension" : "js",
        "linesOfCode" : 89,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 109,
      "endLine" : 115,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/avatar/components/Avatar.js",
        "extension" : "js",
        "linesOfCode" : 110,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 94,
      "startLine" : 207,
      "endLine" : 213,
      "cleanedStartLine" : 82,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "react/features/base/premeeting/components/web/Preview.js",
        "extension" : "js",
        "linesOfCode" : 51,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 69,
      "endLine" : 75,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 34
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/conference/components/web/ConferenceInfo.js",
        "extension" : "js",
        "linesOfCode" : 152,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.native.js",
        "extension" : "js",
        "linesOfCode" : 89,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 109,
      "endLine" : 115,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/premeeting/components/web/ConnectionStatus.js",
        "extension" : "js",
        "linesOfCode" : 91,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 80,
      "startLine" : 112,
      "endLine" : 120,
      "cleanedStartLine" : 74,
      "cleanedEndLine" : 80
    }, {
      "file" : {
        "relativePath" : "react/features/prejoin/components/Prejoin.js",
        "extension" : "js",
        "linesOfCode" : 212,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 180,
      "startLine" : 370,
      "endLine" : 379,
      "cleanedStartLine" : 174,
      "cleanedEndLine" : 180
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/conference/components/web/ConferenceInfo.js",
        "extension" : "js",
        "linesOfCode" : 152,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/native/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 236,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 257,
      "endLine" : 263,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recording/components/LiveStream/web/StartLiveStreamDialog.js",
        "extension" : "js",
        "linesOfCode" : 292,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 260,
      "startLine" : 170,
      "endLine" : 176,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 103
    }, {
      "file" : {
        "relativePath" : "react/features/recording/components/LiveStream/web/StartLiveStreamDialog.js",
        "extension" : "js",
        "linesOfCode" : 292,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 260,
      "startLine" : 184,
      "endLine" : 190,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 114
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/conference/components/web/ConferenceInfo.js",
        "extension" : "js",
        "linesOfCode" : 152,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/native/MeetingParticipantList.js",
        "extension" : "js",
        "linesOfCode" : 164,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/audio-level-indicator/components/AudioLevelIndicator.js",
        "extension" : "js",
        "linesOfCode" : 62,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 35,
      "endLine" : 41,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/native/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 152,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 124,
      "startLine" : 211,
      "endLine" : 217,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetOngoingConferenceService.java",
        "extension" : "java",
        "linesOfCode" : 129,
        "components" : [ "primary::android" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 96,
      "startLine" : 105,
      "endLine" : 111,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetOngoingConferenceService.java",
        "extension" : "java",
        "linesOfCode" : 129,
        "components" : [ "primary::android" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 96,
      "startLine" : 171,
      "endLine" : 177,
      "cleanedStartLine" : 90,
      "cleanedEndLine" : 96
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractMuteRemoteParticipantDialog.js",
        "extension" : "js",
        "linesOfCode" : 21,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 36,
      "endLine" : 59,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 13
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractMuteRemoteParticipantsVideoDialog.js",
        "extension" : "js",
        "linesOfCode" : 30,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 43,
      "endLine" : 66,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/ConnectionStatusComponent.js",
        "extension" : "js",
        "linesOfCode" : 314,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 281,
      "startLine" : 153,
      "endLine" : 159,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/ConnectionStatusComponent.js",
        "extension" : "js",
        "linesOfCode" : 314,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 281,
      "startLine" : 174,
      "endLine" : 180,
      "cleanedStartLine" : 90,
      "cleanedEndLine" : 96
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recording/components/Recording/StartRecordingDialogContent.js",
        "extension" : "js",
        "linesOfCode" : 339,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 302,
      "startLine" : 365,
      "endLine" : 372,
      "cleanedStartLine" : 223,
      "cleanedEndLine" : 229
    }, {
      "file" : {
        "relativePath" : "react/features/recording/components/Recording/StartRecordingDialogContent.js",
        "extension" : "js",
        "linesOfCode" : 339,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 302,
      "startLine" : 390,
      "endLine" : 397,
      "cleanedStartLine" : 241,
      "cleanedEndLine" : 247
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/react/components/web/InlineDialogFailure.js",
        "extension" : "js",
        "linesOfCode" : 48,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 53,
      "endLine" : 59,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/InviteContactsForm.js",
        "extension" : "js",
        "linesOfCode" : 426,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 524,
      "endLine" : 530,
      "cleanedStartLine" : 326,
      "cleanedEndLine" : 332
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/middleware.web.js",
        "extension" : "js",
        "linesOfCode" : 53,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 46,
      "endLine" : 54,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "react/features/filmstrip/subscriber.web.js",
        "extension" : "js",
        "linesOfCode" : 103,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 86,
      "startLine" : 54,
      "endLine" : 60,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 33
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/constants.js",
        "extension" : "js",
        "linesOfCode" : 178,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 177,
      "startLine" : 99,
      "endLine" : 105,
      "cleanedStartLine" : 72,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "react/features/filmstrip/constants.js",
        "extension" : "js",
        "linesOfCode" : 178,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 177,
      "startLine" : 117,
      "endLine" : 123,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 94
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "conference.js",
        "extension" : "js",
        "linesOfCode" : 2110,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1902,
      "startLine" : 1431,
      "endLine" : 1440,
      "cleanedStartLine" : 714,
      "cleanedEndLine" : 720
    }, {
      "file" : {
        "relativePath" : "conference.js",
        "extension" : "js",
        "linesOfCode" : 2110,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1902,
      "startLine" : 1492,
      "endLine" : 1501,
      "cleanedStartLine" : 747,
      "cleanedEndLine" : 753
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/prejoin/components/dialogs/CallingDialog.js",
        "extension" : "js",
        "linesOfCode" : 33,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "react/features/prejoin/components/dialogs/DialOutDialog.js",
        "extension" : "js",
        "linesOfCode" : 57,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/_mixins.scss",
        "extension" : "scss",
        "linesOfCode" : 155,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 155,
      "startLine" : 101,
      "endLine" : 108,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 81
    }, {
      "file" : {
        "relativePath" : "css/_mixins.scss",
        "extension" : "scss",
        "linesOfCode" : 155,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 155,
      "startLine" : 118,
      "endLine" : 125,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/conference/components/web/ConferenceInfo.js",
        "extension" : "js",
        "linesOfCode" : 152,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 157,
      "endLine" : 163,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 99
    }, {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 807,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 717,
      "startLine" : 1079,
      "endLine" : 1085,
      "cleanedStartLine" : 626,
      "cleanedEndLine" : 632
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/_mixins.scss",
        "extension" : "scss",
        "linesOfCode" : 155,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 155,
      "startLine" : 101,
      "endLine" : 108,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 81
    }, {
      "file" : {
        "relativePath" : "css/_mixins.scss",
        "extension" : "scss",
        "linesOfCode" : 155,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 155,
      "startLine" : 135,
      "endLine" : 142,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/native/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 236,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 257,
      "endLine" : 263,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "react/features/mobile/audio-mode/components/AudioRoutePickerDialog.js",
        "extension" : "js",
        "linesOfCode" : 175,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 150,
      "startLine" : 310,
      "endLine" : 316,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/native/ClearableInput.js",
        "extension" : "js",
        "linesOfCode" : 99,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 91,
      "startLine" : 151,
      "endLine" : 159,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/ClearableInput.js",
        "extension" : "js",
        "linesOfCode" : 130,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 120,
      "startLine" : 185,
      "endLine" : 193,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recent-list/components/RecentListItemMenu.native.js",
        "extension" : "js",
        "linesOfCode" : 88,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 121,
      "endLine" : 130,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/RemoteVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 153,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 216,
      "endLine" : 225,
      "cleanedStartLine" : 101,
      "cleanedEndLine" : 107
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/_videolayout_default.scss",
        "extension" : "scss",
        "linesOfCode" : 595,
        "components" : [ "primary::css" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 595,
      "startLine" : 645,
      "endLine" : 653,
      "cleanedStartLine" : 525,
      "cleanedEndLine" : 531
    }, {
      "file" : {
        "relativePath" : "css/_videolayout_default.scss",
        "extension" : "scss",
        "linesOfCode" : 595,
        "components" : [ "primary::css" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 595,
      "startLine" : 682,
      "endLine" : 690,
      "cleanedStartLine" : 554,
      "cleanedEndLine" : 560
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/native/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 152,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 124,
      "startLine" : 211,
      "endLine" : 217,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 807,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 717,
      "startLine" : 1079,
      "endLine" : 1085,
      "cleanedStartLine" : 626,
      "cleanedEndLine" : 632
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/conference/components/native/styles.js",
        "extension" : "js",
        "linesOfCode" : 156,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 69,
      "endLine" : 75,
      "cleanedStartLine" : 42,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "react/features/conference/components/native/styles.js",
        "extension" : "js",
        "linesOfCode" : 156,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 151,
      "startLine" : 113,
      "endLine" : 119,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/audio-level-indicator/components/AudioLevelIndicator.js",
        "extension" : "js",
        "linesOfCode" : 62,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 35,
      "endLine" : 41,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/native/MeetingParticipantList.js",
        "extension" : "js",
        "linesOfCode" : 164,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/JoinButton.web.js",
        "extension" : "js",
        "linesOfCode" : 51,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 88,
      "endLine" : 95,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "react/features/device-selection/components/AudioOutputPreview.js",
        "extension" : "js",
        "linesOfCode" : 81,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/settings/components/web/audio/AudioSettingsContent.js",
        "extension" : "js",
        "linesOfCode" : 189,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 162,
      "startLine" : 115,
      "endLine" : 129,
      "cleanedStartLine" : 36,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "react/features/settings/components/web/video/VideoSettingsContent.js",
        "extension" : "js",
        "linesOfCode" : 161,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 139,
      "startLine" : 79,
      "endLine" : 93,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/chat/components/web/ChatButton.js",
        "extension" : "js",
        "linesOfCode" : 49,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 48,
      "endLine" : 75,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "react/features/toolbox/components/web/FullscreenButton.js",
        "extension" : "js",
        "linesOfCode" : 44,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 60,
      "endLine" : 87,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recent-list/components/RecentListItemMenu.native.js",
        "extension" : "js",
        "linesOfCode" : 88,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 121,
      "endLine" : 130,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/ConnectionStatusComponent.js",
        "extension" : "js",
        "linesOfCode" : 314,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 281,
      "startLine" : 413,
      "endLine" : 422,
      "cleanedStartLine" : 271,
      "cleanedEndLine" : 277
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/chat/components/web/DisplayNameForm.js",
        "extension" : "js",
        "linesOfCode" : 90,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 79,
      "startLine" : 140,
      "endLine" : 147,
      "cleanedStartLine" : 72,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "react/features/device-selection/components/AudioOutputPreview.js",
        "extension" : "js",
        "linesOfCode" : 81,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/native/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 236,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 257,
      "endLine" : 263,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 807,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 717,
      "startLine" : 1079,
      "endLine" : 1085,
      "cleanedStartLine" : 626,
      "cleanedEndLine" : 632
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 807,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 717,
      "startLine" : 1079,
      "endLine" : 1085,
      "cleanedStartLine" : 626,
      "cleanedEndLine" : 632
    }, {
      "file" : {
        "relativePath" : "react/features/mobile/audio-mode/components/AudioRoutePickerDialog.js",
        "extension" : "js",
        "linesOfCode" : 175,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 150,
      "startLine" : 310,
      "endLine" : 316,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/native/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 152,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 124,
      "startLine" : 211,
      "endLine" : 217,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "react/features/mobile/audio-mode/components/AudioRoutePickerDialog.js",
        "extension" : "js",
        "linesOfCode" : 175,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 150,
      "startLine" : 310,
      "endLine" : 316,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/follow-me/middleware.js",
        "extension" : "js",
        "linesOfCode" : 103,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 76,
      "startLine" : 94,
      "endLine" : 111,
      "cleanedStartLine" : 29,
      "cleanedEndLine" : 35
    }, {
      "file" : {
        "relativePath" : "react/features/reactions/middleware.js",
        "extension" : "js",
        "linesOfCode" : 196,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 155,
      "startLine" : 226,
      "endLine" : 243,
      "cleanedStartLine" : 140,
      "cleanedEndLine" : 146
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/_mixins.scss",
        "extension" : "scss",
        "linesOfCode" : 155,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 155,
      "startLine" : 118,
      "endLine" : 125,
      "cleanedStartLine" : 87,
      "cleanedEndLine" : 93
    }, {
      "file" : {
        "relativePath" : "css/_mixins.scss",
        "extension" : "scss",
        "linesOfCode" : 155,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 155,
      "startLine" : 135,
      "endLine" : 142,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 105
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/audio-level-indicator/components/AudioLevelIndicator.js",
        "extension" : "js",
        "linesOfCode" : 62,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 35,
      "endLine" : 41,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 807,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 717,
      "startLine" : 1079,
      "endLine" : 1085,
      "cleanedStartLine" : 626,
      "cleanedEndLine" : 632
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/KickButton.js",
        "extension" : "js",
        "linesOfCode" : 22,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 30,
      "endLine" : 46,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/MuteEveryoneElseButton.js",
        "extension" : "js",
        "linesOfCode" : 22,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 25,
      "endLine" : 41,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/MuteEveryoneElseButton.js",
        "extension" : "js",
        "linesOfCode" : 22,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 25,
      "endLine" : 41,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/MuteEveryoneElsesVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 22,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 25,
      "endLine" : 41,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/overlay/components/native/styles.js",
        "extension" : "js",
        "linesOfCode" : 27,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 23,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "react/features/welcome/components/styles.js",
        "extension" : "js",
        "linesOfCode" : 176,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 172,
      "startLine" : 54,
      "endLine" : 60,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/audio-level-indicator/components/AudioLevelIndicator.js",
        "extension" : "js",
        "linesOfCode" : 62,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 35,
      "endLine" : 41,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "react/features/mobile/audio-mode/components/AudioRoutePickerDialog.js",
        "extension" : "js",
        "linesOfCode" : 175,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 150,
      "startLine" : 310,
      "endLine" : 316,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/popover/components/Popover.web.js",
        "extension" : "js",
        "linesOfCode" : 264,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 301,
      "endLine" : 308,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/JoinButton.web.js",
        "extension" : "js",
        "linesOfCode" : 51,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 88,
      "endLine" : 95,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/mobile/audio-mode/components/AudioRoutePickerDialog.js",
        "extension" : "js",
        "linesOfCode" : 175,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 150,
      "startLine" : 310,
      "endLine" : 316,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/native/MeetingParticipantList.js",
        "extension" : "js",
        "linesOfCode" : 164,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 136,
      "startLine" : 187,
      "endLine" : 193,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 85
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/CalendarList.native.js",
        "extension" : "js",
        "linesOfCode" : 69,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 33,
      "endLine" : 50,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/CalendarList.web.js",
        "extension" : "js",
        "linesOfCode" : 177,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 152,
      "startLine" : 56,
      "endLine" : 73,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.native.js",
        "extension" : "js",
        "linesOfCode" : 89,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 109,
      "endLine" : 115,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "react/features/mobile/audio-mode/components/AudioRoutePickerDialog.js",
        "extension" : "js",
        "linesOfCode" : 175,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 150,
      "startLine" : 310,
      "endLine" : 316,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 129
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/media/components/web/Audio.js",
        "extension" : "js",
        "linesOfCode" : 76,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 100,
      "endLine" : 106,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 56
    }, {
      "file" : {
        "relativePath" : "react/features/base/media/components/web/AudioTrack.js",
        "extension" : "js",
        "linesOfCode" : 161,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 133,
      "startLine" : 252,
      "endLine" : 258,
      "cleanedStartLine" : 113,
      "cleanedEndLine" : 119
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/KickButton.js",
        "extension" : "js",
        "linesOfCode" : 22,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 30,
      "endLine" : 46,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/MuteEveryoneElsesVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 22,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 15,
      "startLine" : 25,
      "endLine" : 41,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/breakout-rooms/components/web/RoomActionEllipsis.js",
        "extension" : "js",
        "linesOfCode" : 28,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 15,
      "endLine" : 24,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/ParticipantActionEllipsis.js",
        "extension" : "js",
        "linesOfCode" : 27,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 19,
      "endLine" : 28,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/reactions/components/web/ReactionsMenuButton.js",
        "extension" : "js",
        "linesOfCode" : 78,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 117,
      "endLine" : 125,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 62
    }, {
      "file" : {
        "relativePath" : "react/features/settings/components/web/audio/AudioSettingsPopup.js",
        "extension" : "js",
        "linesOfCode" : 61,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 79,
      "endLine" : 87,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 47
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/ui/components/JitsiThemeProvider.web.js",
        "extension" : "js",
        "linesOfCode" : 19,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 33,
      "endLine" : 39,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "react/features/welcome/components/help/components/HelpView.js",
        "extension" : "js",
        "linesOfCode" : 43,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 71,
      "endLine" : 77,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/react/components/web/MeetingsList.js",
        "extension" : "js",
        "linesOfCode" : 191,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 134,
      "endLine" : 140,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 50
    }, {
      "file" : {
        "relativePath" : "react/features/base/react/components/web/MeetingsList.js",
        "extension" : "js",
        "linesOfCode" : 191,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 166,
      "startLine" : 153,
      "endLine" : 159,
      "cleanedStartLine" : 57,
      "cleanedEndLine" : 63
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/shared-video/components/native/SharedVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 51,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 54,
      "endLine" : 86,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/web/SharedVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 57,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 77,
      "endLine" : 109,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/popover/components/Popover.web.js",
        "extension" : "js",
        "linesOfCode" : 264,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 303,
      "endLine" : 309,
      "cleanedStartLine" : 155,
      "cleanedEndLine" : 161
    }, {
      "file" : {
        "relativePath" : "react/features/base/popover/components/Popover.web.js",
        "extension" : "js",
        "linesOfCode" : 264,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 323,
      "endLine" : 329,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 176
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/settings/components/web/audio/MicrophoneEntry.js",
        "extension" : "js",
        "linesOfCode" : 129,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 193,
      "endLine" : 200,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 92
    }, {
      "file" : {
        "relativePath" : "react/features/settings/components/web/audio/SpeakerEntry.js",
        "extension" : "js",
        "linesOfCode" : 76,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 134,
      "endLine" : 141,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 44
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/popover/components/Popover.web.js",
        "extension" : "js",
        "linesOfCode" : 264,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 301,
      "endLine" : 308,
      "cleanedStartLine" : 154,
      "cleanedEndLine" : 160
    }, {
      "file" : {
        "relativePath" : "react/features/chat/components/web/DisplayNameForm.js",
        "extension" : "js",
        "linesOfCode" : 90,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 79,
      "startLine" : 140,
      "endLine" : 147,
      "cleanedStartLine" : 72,
      "cleanedEndLine" : 78
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/native/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 152,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 124,
      "startLine" : 211,
      "endLine" : 217,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/native/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 236,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 257,
      "endLine" : 263,
      "cleanedStartLine" : 100,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/conference/components/web/ParticipantsCount.js",
        "extension" : "js",
        "linesOfCode" : 49,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 28,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "react/features/security/components/security-dialog/web/SecurityDialog.js",
        "extension" : "js",
        "linesOfCode" : 80,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 68,
      "startLine" : 108,
      "endLine" : 113,
      "cleanedStartLine" : 51,
      "cleanedEndLine" : 56
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/native/MeetingParticipantItem.js",
        "extension" : "js",
        "linesOfCode" : 99,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 84,
      "startLine" : 167,
      "endLine" : 172,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 75
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/RemoteVideoMenuTriggerButton.js",
        "extension" : "js",
        "linesOfCode" : 273,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 380,
      "endLine" : 385,
      "cleanedStartLine" : 192,
      "cleanedEndLine" : 197
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/DialInSection.js",
        "extension" : "js",
        "linesOfCode" : 44,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/LocalVideoMenuTriggerButton.js",
        "extension" : "js",
        "linesOfCode" : 125,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 202,
      "endLine" : 207,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 96
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/FlipLocalVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 52,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/LocalVideoMenuTriggerButton.js",
        "extension" : "js",
        "linesOfCode" : 125,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 202,
      "endLine" : 207,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 96
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_roster_command.lua",
        "extension" : "lua",
        "linesOfCode" : 128,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 103,
      "startLine" : 35,
      "endLine" : 41,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_roster_command.lua",
        "extension" : "lua",
        "linesOfCode" : 128,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 103,
      "startLine" : 103,
      "endLine" : 109,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_poltergeist.lua",
        "extension" : "lua",
        "linesOfCode" : 224,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 188,
      "startLine" : 164,
      "endLine" : 171,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_poltergeist.lua",
        "extension" : "lua",
        "linesOfCode" : 224,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 188,
      "startLine" : 227,
      "endLine" : 234,
      "cleanedStartLine" : 128,
      "cleanedEndLine" : 133
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/toolbox/components/AudioMuteButton.js",
        "extension" : "js",
        "linesOfCode" : 71,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 58,
      "endLine" : 73,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "react/features/toolbox/components/VideoMuteButton.js",
        "extension" : "js",
        "linesOfCode" : 93,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 73,
      "endLine" : 88,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastAction.java",
        "extension" : "java",
        "linesOfCode" : 77,
        "components" : [ "primary::android" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 22,
      "endLine" : 31,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "android/sdk/src/main/java/org/jitsi/meet/sdk/BroadcastEvent.java",
        "extension" : "java",
        "linesOfCode" : 127,
        "components" : [ "primary::android" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 100,
      "startLine" : 29,
      "endLine" : 38,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/mobile/external-api/middleware.js",
        "extension" : "js",
        "linesOfCode" : 383,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 315,
      "startLine" : 425,
      "endLine" : 431,
      "cleanedStartLine" : 239,
      "cleanedEndLine" : 244
    }, {
      "file" : {
        "relativePath" : "react/features/mobile/external-api/middleware.js",
        "extension" : "js",
        "linesOfCode" : 383,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 315,
      "startLine" : 440,
      "endLine" : 446,
      "cleanedStartLine" : 251,
      "cleanedEndLine" : 256
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/ConnectionStatusComponent.js",
        "extension" : "js",
        "linesOfCode" : 314,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 281,
      "startLine" : 403,
      "endLine" : 408,
      "cleanedStartLine" : 261,
      "cleanedEndLine" : 266
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/RemoteVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 153,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 206,
      "endLine" : 211,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 96
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recent-list/components/RecentList.native.js",
        "extension" : "js",
        "linesOfCode" : 61,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 47,
      "endLine" : 63,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "react/features/recent-list/components/RecentList.web.js",
        "extension" : "js",
        "linesOfCode" : 60,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 38,
      "endLine" : 54,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/reactions/components/web/ReactionButton.js",
        "extension" : "js",
        "linesOfCode" : 81,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 135,
      "endLine" : 140,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "react/features/toolbox/components/web/ToolbarButton.js",
        "extension" : "js",
        "linesOfCode" : 62,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/polls/reducer.js",
        "extension" : "js",
        "linesOfCode" : 111,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "react/features/polls/reducer.js",
        "extension" : "js",
        "linesOfCode" : 111,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 80
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/app/components/App.web.js",
        "extension" : "js",
        "linesOfCode" : 28,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 46,
      "endLine" : 51,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "react/features/prejoin/components/PrejoinApp.js",
        "extension" : "js",
        "linesOfCode" : 68,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 50,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/conference/middleware.any.js",
        "extension" : "js",
        "linesOfCode" : 289,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 233,
      "startLine" : 64,
      "endLine" : 70,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    }, {
      "file" : {
        "relativePath" : "react/features/room-lock/middleware.js",
        "extension" : "js",
        "linesOfCode" : 89,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 67,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/LoginDialog.js",
        "extension" : "js",
        "linesOfCode" : 221,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 329,
      "endLine" : 334,
      "cleanedStartLine" : 171,
      "cleanedEndLine" : 176
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/native/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 72,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/InviteContactsForm.js",
        "extension" : "js",
        "linesOfCode" : 426,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 577,
      "endLine" : 582,
      "cleanedStartLine" : 370,
      "cleanedEndLine" : 375
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/web/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 74,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/WaitForOwnerDialog.js",
        "extension" : "js",
        "linesOfCode" : 66,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 375,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 311,
      "startLine" : 554,
      "endLine" : 559,
      "cleanedStartLine" : 249,
      "cleanedEndLine" : 254
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_poltergeist.lua",
        "extension" : "lua",
        "linesOfCode" : 224,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 188,
      "startLine" : 179,
      "endLine" : 192,
      "cleanedStartLine" : 98,
      "cleanedEndLine" : 103
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_poltergeist.lua",
        "extension" : "lua",
        "linesOfCode" : 224,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 188,
      "startLine" : 286,
      "endLine" : 295,
      "cleanedStartLine" : 165,
      "cleanedEndLine" : 170
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/polls/reducer.js",
        "extension" : "js",
        "linesOfCode" : 111,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "react/features/polls/reducer.js",
        "extension" : "js",
        "linesOfCode" : 111,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 68
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/WaitForOwnerDialog.js",
        "extension" : "js",
        "linesOfCode" : 66,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/InviteContactsForm.js",
        "extension" : "js",
        "linesOfCode" : 426,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 577,
      "endLine" : 582,
      "cleanedStartLine" : 370,
      "cleanedEndLine" : 375
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/RemoteVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 153,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 116,
      "endLine" : 129,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/SharedVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 102,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 72,
      "endLine" : 85,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/polls/reducer.js",
        "extension" : "js",
        "linesOfCode" : 111,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "react/features/polls/reducer.js",
        "extension" : "js",
        "linesOfCode" : 111,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 80
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/settings/components/web/audio/MicrophoneEntry.js",
        "extension" : "js",
        "linesOfCode" : 129,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 173,
      "endLine" : 178,
      "cleanedStartLine" : 71,
      "cleanedEndLine" : 76
    }, {
      "file" : {
        "relativePath" : "react/features/settings/components/web/video/VideoSettingsContent.js",
        "extension" : "js",
        "linesOfCode" : 161,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 139,
      "startLine" : 218,
      "endLine" : 223,
      "cleanedStartLine" : 104,
      "cleanedEndLine" : 109
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/notifications/actions.js",
        "extension" : "js",
        "linesOfCode" : 164,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 140,
      "startLine" : 10,
      "endLine" : 15,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "react/features/notifications/reducer.js",
        "extension" : "js",
        "linesOfCode" : 71,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 6,
      "endLine" : 11,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/premeeting/components/web/ConnectionStatus.js",
        "extension" : "js",
        "linesOfCode" : 91,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 80,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "react/features/prejoin/components/preview/DeviceStatus.js",
        "extension" : "js",
        "linesOfCode" : 48,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recording/components/LiveStream/native/StreamKeyForm.js",
        "extension" : "js",
        "linesOfCode" : 137,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 109,
      "endLine" : 114,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 66
    }, {
      "file" : {
        "relativePath" : "react/features/recording/components/LiveStream/native/StreamKeyForm.js",
        "extension" : "js",
        "linesOfCode" : 137,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 123,
      "endLine" : 128,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 78
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/overlay/components/web/SuspendedOverlay.js",
        "extension" : "js",
        "linesOfCode" : 24,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 25,
      "endLine" : 30,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "react/features/overlay/components/web/UserMediaPermissionsOverlay.js",
        "extension" : "js",
        "linesOfCode" : 61,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/InviteContactsForm.js",
        "extension" : "js",
        "linesOfCode" : 426,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 577,
      "endLine" : 582,
      "cleanedStartLine" : 370,
      "cleanedEndLine" : 375
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/LocalVideoMenuTriggerButton.js",
        "extension" : "js",
        "linesOfCode" : 125,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 202,
      "endLine" : 207,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 96
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/InviteContactsForm.js",
        "extension" : "js",
        "linesOfCode" : 426,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 577,
      "endLine" : 582,
      "cleanedStartLine" : 370,
      "cleanedEndLine" : 375
    }, {
      "file" : {
        "relativePath" : "react/features/video-quality/components/VideoQualitySlider.web.js",
        "extension" : "js",
        "linesOfCode" : 258,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 221,
      "startLine" : 364,
      "endLine" : 369,
      "cleanedStartLine" : 212,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/shared-video/components/web/SharedVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 57,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 58,
      "endLine" : 74,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "react/features/toolbox/components/web/ShareDesktopButton.js",
        "extension" : "js",
        "linesOfCode" : 59,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 66,
      "endLine" : 82,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/settings/components/web/audio/MicrophoneEntry.js",
        "extension" : "js",
        "linesOfCode" : 129,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 182,
      "endLine" : 187,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 83
    }, {
      "file" : {
        "relativePath" : "react/features/settings/components/web/video/VideoSettingsContent.js",
        "extension" : "js",
        "linesOfCode" : 161,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 139,
      "startLine" : 239,
      "endLine" : 244,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 125
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/dialog/components/native/BaseSubmitDialog.js",
        "extension" : "js",
        "linesOfCode" : 55,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 46,
      "startLine" : 76,
      "endLine" : 83,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "react/features/base/dialog/components/native/InputDialog.js",
        "extension" : "js",
        "linesOfCode" : 97,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 81,
      "startLine" : 124,
      "endLine" : 131,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 68
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/analytics/handlers/MatomoHandler.js",
        "extension" : "js",
        "linesOfCode" : 87,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 110,
      "endLine" : 115,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 49
    }, {
      "file" : {
        "relativePath" : "react/features/analytics/handlers/MatomoHandler.js",
        "extension" : "js",
        "linesOfCode" : 87,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/WaitForOwnerDialog.js",
        "extension" : "js",
        "linesOfCode" : 66,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/DialInSection.js",
        "extension" : "js",
        "linesOfCode" : 44,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/WaitForOwnerDialog.js",
        "extension" : "js",
        "linesOfCode" : 66,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.web.js",
        "extension" : "js",
        "linesOfCode" : 135,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 193,
      "endLine" : 198,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/chat/components/native/ChatMessageGroup.js",
        "extension" : "js",
        "linesOfCode" : 57,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 45,
      "startLine" : 49,
      "endLine" : 55,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/native/AddPeopleDialog.js",
        "extension" : "js",
        "linesOfCode" : 461,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 418,
      "startLine" : 296,
      "endLine" : 302,
      "cleanedStartLine" : 179,
      "cleanedEndLine" : 184
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/WaitForOwnerDialog.js",
        "extension" : "js",
        "linesOfCode" : 66,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "react/features/video-quality/components/VideoQualitySlider.web.js",
        "extension" : "js",
        "linesOfCode" : 258,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 221,
      "startLine" : 364,
      "endLine" : 369,
      "cleanedStartLine" : 212,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 375,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 311,
      "startLine" : 554,
      "endLine" : 559,
      "cleanedStartLine" : 249,
      "cleanedEndLine" : 254
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/DialInSection.js",
        "extension" : "js",
        "linesOfCode" : 44,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 375,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 311,
      "startLine" : 554,
      "endLine" : 559,
      "cleanedStartLine" : 249,
      "cleanedEndLine" : 254
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/web/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 74,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/ParticipantsPaneButton.js",
        "extension" : "js",
        "linesOfCode" : 30,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 34,
      "endLine" : 51,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "react/features/toolbox/components/web/ShareDesktopButton.js",
        "extension" : "js",
        "linesOfCode" : 59,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 76,
      "endLine" : 93,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/native/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 152,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 124,
      "startLine" : 267,
      "endLine" : 272,
      "cleanedStartLine" : 114,
      "cleanedEndLine" : 119
    }, {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/native/TileView.js",
        "extension" : "js",
        "linesOfCode" : 133,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 113,
      "startLine" : 258,
      "endLine" : 263,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 111
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/MeetingParticipantContextMenu.js",
        "extension" : "js",
        "linesOfCode" : 337,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 290,
      "startLine" : 355,
      "endLine" : 360,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 125
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/MeetingParticipantContextMenu.js",
        "extension" : "js",
        "linesOfCode" : 337,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 290,
      "startLine" : 547,
      "endLine" : 552,
      "cleanedStartLine" : 278,
      "cleanedEndLine" : 283
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_poltergeist.lua",
        "extension" : "lua",
        "linesOfCode" : 224,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 188,
      "startLine" : 179,
      "endLine" : 192,
      "cleanedStartLine" : 98,
      "cleanedEndLine" : 103
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_poltergeist.lua",
        "extension" : "lua",
        "linesOfCode" : 224,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 188,
      "startLine" : 244,
      "endLine" : 253,
      "cleanedStartLine" : 140,
      "cleanedEndLine" : 145
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/lobby/components/native/LobbyScreen.js",
        "extension" : "js",
        "linesOfCode" : 193,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 174,
      "startLine" : 49,
      "endLine" : 59,
      "cleanedStartLine" : 20,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "react/features/lobby/components/web/LobbyScreen.js",
        "extension" : "js",
        "linesOfCode" : 137,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 125,
      "startLine" : 40,
      "endLine" : 50,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/actions.web.js",
        "extension" : "js",
        "linesOfCode" : 109,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 94,
      "startLine" : 154,
      "endLine" : 159,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 94
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/actions.native.js",
        "extension" : "js",
        "linesOfCode" : 29,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/DialInSection.js",
        "extension" : "js",
        "linesOfCode" : 44,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.web.js",
        "extension" : "js",
        "linesOfCode" : 135,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 193,
      "endLine" : 198,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/shared-video/components/web/SharedVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 57,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 58,
      "endLine" : 74,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "react/features/toolbox/components/web/FullscreenButton.js",
        "extension" : "js",
        "linesOfCode" : 44,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 60,
      "endLine" : 76,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "analytics-ga.js",
        "extension" : "js",
        "linesOfCode" : 78,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 141,
      "endLine" : 149,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "react/features/analytics/handlers/GoogleAnalyticsHandler.js",
        "extension" : "js",
        "linesOfCode" : 61,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 131,
      "endLine" : 139,
      "cleanedStartLine" : 40,
      "cleanedEndLine" : 45
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/toolbox/components/ToolboxItem.native.js",
        "extension" : "js",
        "linesOfCode" : 65,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "react/features/base/toolbox/components/ToolboxItem.web.js",
        "extension" : "js",
        "linesOfCode" : 71,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 51,
      "endLine" : 56,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/breakout-rooms/components/web/JoinQuickActionButton.js",
        "extension" : "js",
        "linesOfCode" : 33,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 20,
      "endLine" : 26,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/ParticipantQuickAction.js",
        "extension" : "js",
        "linesOfCode" : 66,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/premeeting/components/web/PreMeetingScreen.js",
        "extension" : "js",
        "linesOfCode" : 80,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 136,
      "endLine" : 145,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "react/features/prejoin/components/preview/DeviceStatus.js",
        "extension" : "js",
        "linesOfCode" : 48,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/settings/components/web/SoundsTab.js",
        "extension" : "js",
        "linesOfCode" : 72,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 63,
      "startLine" : 99,
      "endLine" : 104,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "react/features/settings/functions.js",
        "extension" : "js",
        "linesOfCode" : 155,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 130,
      "startLine" : 191,
      "endLine" : 196,
      "cleanedStartLine" : 88,
      "cleanedEndLine" : 93
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/ConnectionStatusComponent.js",
        "extension" : "js",
        "linesOfCode" : 314,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 281,
      "startLine" : 403,
      "endLine" : 408,
      "cleanedStartLine" : 261,
      "cleanedEndLine" : 266
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/SharedVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 102,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 136,
      "endLine" : 141,
      "cleanedStartLine" : 58,
      "cleanedEndLine" : 63
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/popover/components/Popover.web.js",
        "extension" : "js",
        "linesOfCode" : 264,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 392,
      "endLine" : 397,
      "cleanedStartLine" : 226,
      "cleanedEndLine" : 231
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/RemoteVideoMenuTriggerButton.js",
        "extension" : "js",
        "linesOfCode" : 273,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 380,
      "endLine" : 385,
      "cleanedStartLine" : 192,
      "cleanedEndLine" : 197
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 375,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 311,
      "startLine" : 554,
      "endLine" : 559,
      "cleanedStartLine" : 249,
      "cleanedEndLine" : 254
    }, {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.web.js",
        "extension" : "js",
        "linesOfCode" : 135,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 193,
      "endLine" : 198,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/WaitForOwnerDialog.js",
        "extension" : "js",
        "linesOfCode" : 66,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/FlipLocalVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 52,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/reactions/components/web/ReactionsMenu.js",
        "extension" : "js",
        "linesOfCode" : 95,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 169,
      "endLine" : 174,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "react/features/settings/components/web/audio/MicrophoneEntry.js",
        "extension" : "js",
        "linesOfCode" : 129,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 182,
      "endLine" : 187,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 83
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/welcome/components/WelcomePage.web.js",
        "extension" : "js",
        "linesOfCode" : 352,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 314,
      "startLine" : 427,
      "endLine" : 432,
      "cleanedStartLine" : 261,
      "cleanedEndLine" : 266
    }, {
      "file" : {
        "relativePath" : "react/features/welcome/components/WelcomePage.web.js",
        "extension" : "js",
        "linesOfCode" : 352,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 314,
      "startLine" : 440,
      "endLine" : 445,
      "cleanedStartLine" : 272,
      "cleanedEndLine" : 277
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_auth_jitsi-anonymous.lua",
        "extension" : "lua",
        "linesOfCode" : 53,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 39,
      "startLine" : 42,
      "endLine" : 49,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_auth_token.lua",
        "extension" : "lua",
        "linesOfCode" : 100,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 79,
      "startLine" : 100,
      "endLine" : 107,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/LoginDialog.js",
        "extension" : "js",
        "linesOfCode" : 221,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 329,
      "endLine" : 334,
      "cleanedStartLine" : 171,
      "cleanedEndLine" : 176
    }, {
      "file" : {
        "relativePath" : "react/features/video-quality/components/VideoQualitySlider.web.js",
        "extension" : "js",
        "linesOfCode" : 258,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 221,
      "startLine" : 364,
      "endLine" : 369,
      "cleanedStartLine" : 212,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/settings/components/web/audio/MicrophoneEntry.js",
        "extension" : "js",
        "linesOfCode" : 129,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 164,
      "endLine" : 169,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 69
    }, {
      "file" : {
        "relativePath" : "react/features/settings/components/web/video/VideoSettingsContent.js",
        "extension" : "js",
        "linesOfCode" : 161,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 139,
      "startLine" : 209,
      "endLine" : 214,
      "cleanedStartLine" : 97,
      "cleanedEndLine" : 102
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/native/AddPeopleDialog.js",
        "extension" : "js",
        "linesOfCode" : 461,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 418,
      "startLine" : 142,
      "endLine" : 148,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/native/AddPeopleDialog.js",
        "extension" : "js",
        "linesOfCode" : 461,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 418,
      "startLine" : 164,
      "endLine" : 171,
      "cleanedStartLine" : 74,
      "cleanedEndLine" : 79
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/modals/invite/_invite_more.scss",
        "extension" : "scss",
        "linesOfCode" : 188,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 188,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 66,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "css/modals/invite/_invite_more.scss",
        "extension" : "scss",
        "linesOfCode" : 188,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 188,
      "startLine" : 177,
      "endLine" : 183,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 157
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/lobby/components/AbstractLobbyScreen.js",
        "extension" : "js",
        "linesOfCode" : 209,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 383,
      "endLine" : 388,
      "cleanedStartLine" : 169,
      "cleanedEndLine" : 174
    }, {
      "file" : {
        "relativePath" : "react/features/lobby/components/web/LobbySection.js",
        "extension" : "js",
        "linesOfCode" : 84,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 69,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recording/actions.any.js",
        "extension" : "js",
        "linesOfCode" : 184,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 158,
      "startLine" : 17,
      "endLine" : 22,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "react/features/recording/reducer.js",
        "extension" : "js",
        "linesOfCode" : 74,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 4,
      "endLine" : 9,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 375,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 311,
      "startLine" : 554,
      "endLine" : 559,
      "cleanedStartLine" : 249,
      "cleanedEndLine" : 254
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/native/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 72,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recent-list/components/RecentListItemMenu.native.js",
        "extension" : "js",
        "linesOfCode" : 88,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "react/features/toolbox/components/native/OverflowMenu.js",
        "extension" : "js",
        "linesOfCode" : 132,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 96,
      "startLine" : 170,
      "endLine" : 175,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/shared-video/components/native/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 72,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/LocalVideoMenuTriggerButton.js",
        "extension" : "js",
        "linesOfCode" : 125,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 202,
      "endLine" : 207,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 96
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/modals/mute/_mute-dialog.scss",
        "extension" : "scss",
        "linesOfCode" : 17,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 2,
      "endLine" : 7,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "css/modals/screen-share/_share-screen-warning.scss",
        "extension" : "scss",
        "linesOfCode" : 19,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 19,
      "startLine" : 4,
      "endLine" : 9,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/chat/components/web/ChatButton.js",
        "extension" : "js",
        "linesOfCode" : 49,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 48,
      "endLine" : 64,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/web/SharedVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 57,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 58,
      "endLine" : 74,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/util/httpUtils.js",
        "extension" : "js",
        "linesOfCode" : 23,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 18,
      "startLine" : 21,
      "endLine" : 29,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "react/features/invite/functions.js",
        "extension" : "js",
        "linesOfCode" : 490,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 411,
      "startLine" : 514,
      "endLine" : 522,
      "cleanedStartLine" : 225,
      "cleanedEndLine" : 230
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/devices/functions.js",
        "extension" : "js",
        "linesOfCode" : 139,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 110,
      "startLine" : 202,
      "endLine" : 207,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "react/features/base/devices/functions.js",
        "extension" : "js",
        "linesOfCode" : 139,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 110,
      "startLine" : 218,
      "endLine" : 223,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 80
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/ParticipantsPaneButton.js",
        "extension" : "js",
        "linesOfCode" : 30,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 34,
      "endLine" : 51,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "react/features/toolbox/components/web/FullscreenButton.js",
        "extension" : "js",
        "linesOfCode" : 44,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 30,
      "startLine" : 70,
      "endLine" : 87,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/react/components/web/Watermarks.js",
        "extension" : "js",
        "linesOfCode" : 170,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 141,
      "endLine" : 151,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "react/features/base/react/components/web/Watermarks.js",
        "extension" : "js",
        "linesOfCode" : 170,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 184,
      "endLine" : 194,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 94
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 807,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 717,
      "startLine" : 1108,
      "endLine" : 1113,
      "cleanedStartLine" : 644,
      "cleanedEndLine" : 649
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/RemoteVideoMenuTriggerButton.js",
        "extension" : "js",
        "linesOfCode" : 273,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 380,
      "endLine" : 385,
      "cleanedStartLine" : 192,
      "cleanedEndLine" : 197
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/LocalVideoMenuTriggerButton.js",
        "extension" : "js",
        "linesOfCode" : 125,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 103,
      "endLine" : 118,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/RemoteVideoMenuTriggerButton.js",
        "extension" : "js",
        "linesOfCode" : 273,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 154,
      "endLine" : 168,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetConferenceOptions.java",
        "extension" : "java",
        "linesOfCode" : 174,
        "components" : [ "primary::android" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 131,
      "startLine" : 38,
      "endLine" : 61,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetConferenceOptions.java",
        "extension" : "java",
        "linesOfCode" : 174,
        "components" : [ "primary::android" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 131,
      "startLine" : 87,
      "endLine" : 94,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 24
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/LobbyParticipantItem.js",
        "extension" : "js",
        "linesOfCode" : 56,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/ParticipantQuickAction.js",
        "extension" : "js",
        "linesOfCode" : 66,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 53,
      "startLine" : 50,
      "endLine" : 56,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/popover/components/Popover.web.js",
        "extension" : "js",
        "linesOfCode" : 264,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 392,
      "endLine" : 397,
      "cleanedStartLine" : 226,
      "cleanedEndLine" : 231
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/MeetingParticipants.js",
        "extension" : "js",
        "linesOfCode" : 117,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 93,
      "startLine" : 140,
      "endLine" : 145,
      "cleanedStartLine" : 84,
      "cleanedEndLine" : 89
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/InviteContactsForm.js",
        "extension" : "js",
        "linesOfCode" : 426,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 577,
      "endLine" : 582,
      "cleanedStartLine" : 370,
      "cleanedEndLine" : 375
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/native/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 72,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/premeeting/components/web/PreMeetingScreen.js",
        "extension" : "js",
        "linesOfCode" : 80,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 136,
      "endLine" : 145,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 61
    }, {
      "file" : {
        "relativePath" : "react/features/prejoin/components/dialogs/JoinByPhoneDialog.js",
        "extension" : "js",
        "linesOfCode" : 127,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 220,
      "endLine" : 228,
      "cleanedStartLine" : 104,
      "cleanedEndLine" : 109
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/modals/mute/_mute-dialog.scss",
        "extension" : "scss",
        "linesOfCode" : 17,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 2,
      "endLine" : 7,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "css/modals/security/_security.scss",
        "extension" : "scss",
        "linesOfCode" : 47,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 36,
      "endLine" : 41,
      "cleanedStartLine" : 30,
      "cleanedEndLine" : 35
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/RemoteVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 153,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 13,
      "endLine" : 46,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/SharedVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 102,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 11,
      "endLine" : 32,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/LoginDialog.js",
        "extension" : "js",
        "linesOfCode" : 221,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 329,
      "endLine" : 334,
      "cleanedStartLine" : 171,
      "cleanedEndLine" : 176
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/LocalVideoMenuTriggerButton.js",
        "extension" : "js",
        "linesOfCode" : 125,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 202,
      "endLine" : 207,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 96
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/shared-video/components/native/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 72,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "react/features/video-quality/components/VideoQualitySlider.web.js",
        "extension" : "js",
        "linesOfCode" : 258,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 221,
      "startLine" : 364,
      "endLine" : 369,
      "cleanedStartLine" : 212,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/settings/components/web/MoreTab.js",
        "extension" : "js",
        "linesOfCode" : 297,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 273,
      "startLine" : 246,
      "endLine" : 251,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 135
    }, {
      "file" : {
        "relativePath" : "react/features/settings/components/web/MoreTab.js",
        "extension" : "js",
        "linesOfCode" : 297,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 273,
      "startLine" : 331,
      "endLine" : 336,
      "cleanedStartLine" : 202,
      "cleanedEndLine" : 207
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/local-recording/recording/flac/FlacAdapter.js",
        "extension" : "js",
        "linesOfCode" : 141,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 114,
      "startLine" : 6,
      "endLine" : 11,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "react/features/local-recording/recording/flac/flacEncodeWorker.js",
        "extension" : "js",
        "linesOfCode" : 176,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 148,
      "startLine" : 3,
      "endLine" : 8,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/polls/reducer.js",
        "extension" : "js",
        "linesOfCode" : 111,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 28,
      "endLine" : 33,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "react/features/polls/reducer.js",
        "extension" : "js",
        "linesOfCode" : 111,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 58
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/avatar/components/web/StatelessAvatar.js",
        "extension" : "js",
        "linesOfCode" : 115,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 104,
      "startLine" : 51,
      "endLine" : 56,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "react/features/base/avatar/components/web/StatelessAvatar.js",
        "extension" : "js",
        "linesOfCode" : 115,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 104,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/lobby/components/AbstractLobbyScreen.js",
        "extension" : "js",
        "linesOfCode" : 209,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 383,
      "endLine" : 388,
      "cleanedStartLine" : 169,
      "cleanedEndLine" : 174
    }, {
      "file" : {
        "relativePath" : "react/features/welcome/components/help/components/HelpView.js",
        "extension" : "js",
        "linesOfCode" : 43,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 71,
      "endLine" : 76,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/google-api/googleApi.web.js",
        "extension" : "js",
        "linesOfCode" : 219,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 205,
      "startLine" : 272,
      "endLine" : 281,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 135
    }, {
      "file" : {
        "relativePath" : "react/features/google-api/googleApi.web.js",
        "extension" : "js",
        "linesOfCode" : 219,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 205,
      "startLine" : 349,
      "endLine" : 356,
      "cleanedStartLine" : 178,
      "cleanedEndLine" : 183
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_av_moderation_component.lua",
        "extension" : "lua",
        "linesOfCode" : 234,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 181,
      "startLine" : 143,
      "endLine" : 149,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 83
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_breakout_rooms.lua",
        "extension" : "lua",
        "linesOfCode" : 420,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 341,
      "startLine" : 276,
      "endLine" : 284,
      "cleanedStartLine" : 160,
      "cleanedEndLine" : 165
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/premeeting/components/web/ConnectionStatus.js",
        "extension" : "js",
        "linesOfCode" : 91,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 80,
      "startLine" : 111,
      "endLine" : 118,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 78
    }, {
      "file" : {
        "relativePath" : "react/features/base/premeeting/components/web/PreMeetingScreen.js",
        "extension" : "js",
        "linesOfCode" : 80,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 136,
      "endLine" : 145,
      "cleanedStartLine" : 56,
      "cleanedEndLine" : 61
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/popover/components/Popover.web.js",
        "extension" : "js",
        "linesOfCode" : 264,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 392,
      "endLine" : 397,
      "cleanedStartLine" : 226,
      "cleanedEndLine" : 231
    }, {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Thumbnail.js",
        "extension" : "js",
        "linesOfCode" : 807,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 717,
      "startLine" : 1108,
      "endLine" : 1113,
      "cleanedStartLine" : 644,
      "cleanedEndLine" : 649
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_census.lua",
        "extension" : "lua",
        "linesOfCode" : 48,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 27,
      "endLine" : 35,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_size.lua",
        "extension" : "lua",
        "linesOfCode" : 140,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 116,
      "startLine" : 11,
      "endLine" : 19,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 375,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 311,
      "startLine" : 554,
      "endLine" : 559,
      "cleanedStartLine" : 249,
      "cleanedEndLine" : 254
    }, {
      "file" : {
        "relativePath" : "react/features/video-quality/components/VideoQualitySlider.web.js",
        "extension" : "js",
        "linesOfCode" : 258,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 221,
      "startLine" : 364,
      "endLine" : 369,
      "cleanedStartLine" : 212,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/modals/mute/_mute-dialog.scss",
        "extension" : "scss",
        "linesOfCode" : 17,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 2,
      "endLine" : 7,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "css/modals/screen-share/_share-audio.scss",
        "extension" : "scss",
        "linesOfCode" : 20,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 20,
      "startLine" : 11,
      "endLine" : 16,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.web.js",
        "extension" : "js",
        "linesOfCode" : 135,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 193,
      "endLine" : 198,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 113
    }, {
      "file" : {
        "relativePath" : "react/features/video-quality/components/VideoQualitySlider.web.js",
        "extension" : "js",
        "linesOfCode" : 258,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 221,
      "startLine" : 364,
      "endLine" : 369,
      "cleanedStartLine" : 212,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_poltergeist.lua",
        "extension" : "lua",
        "linesOfCode" : 224,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 188,
      "startLine" : 164,
      "endLine" : 171,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_poltergeist.lua",
        "extension" : "lua",
        "linesOfCode" : 224,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 188,
      "startLine" : 276,
      "endLine" : 283,
      "cleanedStartLine" : 158,
      "cleanedEndLine" : 163
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/LoginDialog.js",
        "extension" : "js",
        "linesOfCode" : 221,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 329,
      "endLine" : 334,
      "cleanedStartLine" : 171,
      "cleanedEndLine" : 176
    }, {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/WaitForOwnerDialog.js",
        "extension" : "js",
        "linesOfCode" : 66,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/polls/components/native/PollResults.js",
        "extension" : "js",
        "linesOfCode" : 84,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 22,
      "endLine" : 27,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "react/features/polls/components/web/PollResults.js",
        "extension" : "js",
        "linesOfCode" : 69,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 66,
      "startLine" : 20,
      "endLine" : 25,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.web.js",
        "extension" : "js",
        "linesOfCode" : 135,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 193,
      "endLine" : 198,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 113
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/LocalVideoMenuTriggerButton.js",
        "extension" : "js",
        "linesOfCode" : 125,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 202,
      "endLine" : 207,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 96
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/toolbox/components/native/OverflowMenu.js",
        "extension" : "js",
        "linesOfCode" : 132,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 96,
      "startLine" : 170,
      "endLine" : 175,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/SharedVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 102,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/ui/components/JitsiThemeProvider.web.js",
        "extension" : "js",
        "linesOfCode" : 19,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 33,
      "endLine" : 38,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "react/features/lobby/components/AbstractLobbyScreen.js",
        "extension" : "js",
        "linesOfCode" : 209,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 184,
      "startLine" : 383,
      "endLine" : 388,
      "cleanedStartLine" : 169,
      "cleanedEndLine" : 174
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_roster_command.lua",
        "extension" : "lua",
        "linesOfCode" : 128,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 103,
      "startLine" : 74,
      "endLine" : 80,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_roster_command.lua",
        "extension" : "lua",
        "linesOfCode" : 128,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 103,
      "startLine" : 103,
      "endLine" : 109,
      "cleanedStartLine" : 55,
      "cleanedEndLine" : 60
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/LoginDialog.js",
        "extension" : "js",
        "linesOfCode" : 221,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 329,
      "endLine" : 334,
      "cleanedStartLine" : 171,
      "cleanedEndLine" : 176
    }, {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 375,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 311,
      "startLine" : 554,
      "endLine" : 559,
      "cleanedStartLine" : 249,
      "cleanedEndLine" : 254
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/modals/invite/_invite_more.scss",
        "extension" : "scss",
        "linesOfCode" : 188,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 188,
      "startLine" : 61,
      "endLine" : 66,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "css/modals/mute/_mute-dialog.scss",
        "extension" : "scss",
        "linesOfCode" : 17,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 17,
      "startLine" : 3,
      "endLine" : 8,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/lobby/components/web/LobbySection.js",
        "extension" : "js",
        "linesOfCode" : 84,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 69,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 64
    }, {
      "file" : {
        "relativePath" : "react/features/welcome/components/help/components/HelpView.js",
        "extension" : "js",
        "linesOfCode" : 43,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 32,
      "startLine" : 71,
      "endLine" : 76,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/polls/components/native/PollCreate.js",
        "extension" : "js",
        "linesOfCode" : 146,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 132,
      "startLine" : 180,
      "endLine" : 186,
      "cleanedStartLine" : 127,
      "cleanedEndLine" : 132
    }, {
      "file" : {
        "relativePath" : "react/features/polls/components/web/PollCreate.js",
        "extension" : "js",
        "linesOfCode" : 218,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 199,
      "startLine" : 251,
      "endLine" : 257,
      "cleanedStartLine" : 194,
      "cleanedEndLine" : 199
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 375,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 311,
      "startLine" : 554,
      "endLine" : 559,
      "cleanedStartLine" : 249,
      "cleanedEndLine" : 254
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/FlipLocalVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 52,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/WaitForOwnerDialog.js",
        "extension" : "js",
        "linesOfCode" : 66,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/native/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 72,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractBlockAudioVideoDialog.js",
        "extension" : "js",
        "linesOfCode" : 16,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 12,
      "startLine" : 22,
      "endLine" : 42,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractGrantModeratorDialog.js",
        "extension" : "js",
        "linesOfCode" : 35,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 38,
      "endLine" : 58,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/MeetingParticipants.js",
        "extension" : "js",
        "linesOfCode" : 117,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 93,
      "startLine" : 140,
      "endLine" : 145,
      "cleanedStartLine" : 84,
      "cleanedEndLine" : 89
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/RemoteVideoMenuTriggerButton.js",
        "extension" : "js",
        "linesOfCode" : 273,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 380,
      "endLine" : 385,
      "cleanedStartLine" : 192,
      "cleanedEndLine" : 197
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/react/components/native/styles.js",
        "extension" : "js",
        "linesOfCode" : 174,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 171,
      "startLine" : 169,
      "endLine" : 174,
      "cleanedStartLine" : 129,
      "cleanedEndLine" : 134
    }, {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/styles.js",
        "extension" : "js",
        "linesOfCode" : 101,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 98,
      "startLine" : 46,
      "endLine" : 51,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/shared-video/components/web/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 74,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "react/features/video-quality/components/VideoQualitySlider.web.js",
        "extension" : "js",
        "linesOfCode" : 258,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 221,
      "startLine" : 364,
      "endLine" : 369,
      "cleanedStartLine" : 212,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/DialInSection.js",
        "extension" : "js",
        "linesOfCode" : 44,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/web/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 74,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/remote-control/actions.js",
        "extension" : "js",
        "linesOfCode" : 476,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 415,
      "startLine" : 582,
      "endLine" : 588,
      "cleanedStartLine" : 316,
      "cleanedEndLine" : 321
    }, {
      "file" : {
        "relativePath" : "react/features/remote-control/actions.js",
        "extension" : "js",
        "linesOfCode" : 476,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 415,
      "startLine" : 649,
      "endLine" : 655,
      "cleanedStartLine" : 352,
      "cleanedEndLine" : 357
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/WaitForOwnerDialog.js",
        "extension" : "js",
        "linesOfCode" : 66,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/web/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 74,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/connection-stats/components/ConnectionStatsTable.js",
        "extension" : "js",
        "linesOfCode" : 528,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 476,
      "startLine" : 795,
      "endLine" : 800,
      "cleanedStartLine" : 448,
      "cleanedEndLine" : 453
    }, {
      "file" : {
        "relativePath" : "react/features/connection-stats/components/ConnectionStatsTable.js",
        "extension" : "js",
        "linesOfCode" : 528,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 476,
      "startLine" : 811,
      "endLine" : 816,
      "cleanedStartLine" : 460,
      "cleanedEndLine" : 465
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/breakout-rooms/components/web/RoomActionEllipsis.js",
        "extension" : "js",
        "linesOfCode" : 28,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 33,
      "endLine" : 38,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/ParticipantActionEllipsis.js",
        "extension" : "js",
        "linesOfCode" : 27,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 36,
      "endLine" : 41,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 20
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/LocalVideoMenuTriggerButton.js",
        "extension" : "js",
        "linesOfCode" : 125,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 202,
      "endLine" : 207,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 96
    }, {
      "file" : {
        "relativePath" : "react/features/video-quality/components/VideoQualitySlider.web.js",
        "extension" : "js",
        "linesOfCode" : 258,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 221,
      "startLine" : 364,
      "endLine" : 369,
      "cleanedStartLine" : 212,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/buttons/CopyButton.js",
        "extension" : "js",
        "linesOfCode" : 129,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 109,
      "startLine" : 181,
      "endLine" : 188,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 83
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/LiveStreamSection.js",
        "extension" : "js",
        "linesOfCode" : 64,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 51,
      "startLine" : 84,
      "endLine" : 91,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/popover/components/Popover.web.js",
        "extension" : "js",
        "linesOfCode" : 264,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 323,
      "endLine" : 328,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 175
    }, {
      "file" : {
        "relativePath" : "react/features/chat/components/web/DisplayNameForm.js",
        "extension" : "js",
        "linesOfCode" : 90,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 79,
      "startLine" : 142,
      "endLine" : 147,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 78
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/popover/components/Popover.web.js",
        "extension" : "js",
        "linesOfCode" : 264,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 392,
      "endLine" : 397,
      "cleanedStartLine" : 226,
      "cleanedEndLine" : 231
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/MeetingParticipantItem.js",
        "extension" : "js",
        "linesOfCode" : 188,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 288,
      "endLine" : 293,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/polls/reducer.js",
        "extension" : "js",
        "linesOfCode" : 111,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 58
    }, {
      "file" : {
        "relativePath" : "react/features/polls/reducer.js",
        "extension" : "js",
        "linesOfCode" : 111,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 68
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recent-list/components/RecentListItemMenu.native.js",
        "extension" : "js",
        "linesOfCode" : 88,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/RemoteVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 153,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 182,
      "endLine" : 187,
      "cleanedStartLine" : 74,
      "cleanedEndLine" : 79
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/follow-me/subscriber.js",
        "extension" : "js",
        "linesOfCode" : 59,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 90,
      "endLine" : 99,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "react/features/reactions/subscriber.js",
        "extension" : "js",
        "linesOfCode" : 21,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 14,
      "startLine" : 29,
      "endLine" : 38,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/media/components/web/Video.js",
        "extension" : "js",
        "linesOfCode" : 151,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 134,
      "startLine" : 289,
      "endLine" : 294,
      "cleanedStartLine" : 93,
      "cleanedEndLine" : 98
    }, {
      "file" : {
        "relativePath" : "react/features/base/media/components/web/Video.js",
        "extension" : "js",
        "linesOfCode" : 151,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 134,
      "startLine" : 307,
      "endLine" : 312,
      "cleanedStartLine" : 107,
      "cleanedEndLine" : 112
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/modals/local-recording/_local-recording.scss",
        "extension" : "scss",
        "linesOfCode" : 78,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 8,
      "endLine" : 13,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    }, {
      "file" : {
        "relativePath" : "css/modals/speaker_stats/_speaker_stats.scss",
        "extension" : "scss",
        "linesOfCode" : 72,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 8,
      "endLine" : 13,
      "cleanedStartLine" : 7,
      "cleanedEndLine" : 12
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/LoginDialog.js",
        "extension" : "js",
        "linesOfCode" : 221,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 329,
      "endLine" : 334,
      "cleanedStartLine" : 171,
      "cleanedEndLine" : 176
    }, {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.web.js",
        "extension" : "js",
        "linesOfCode" : 135,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 193,
      "endLine" : 198,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/google-api/googleApi.web.js",
        "extension" : "js",
        "linesOfCode" : 219,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 205,
      "startLine" : 45,
      "endLine" : 52,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "react/features/google-api/googleApi.web.js",
        "extension" : "js",
        "linesOfCode" : 219,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 205,
      "startLine" : 272,
      "endLine" : 281,
      "cleanedStartLine" : 130,
      "cleanedEndLine" : 135
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/popover/components/Popover.web.js",
        "extension" : "js",
        "linesOfCode" : 264,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 323,
      "endLine" : 328,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 175
    }, {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/JoinButton.web.js",
        "extension" : "js",
        "linesOfCode" : 51,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 90,
      "endLine" : 95,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/deep-linking/_mobile.scss",
        "extension" : "scss",
        "linesOfCode" : 140,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 140,
      "startLine" : 101,
      "endLine" : 107,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 90
    }, {
      "file" : {
        "relativePath" : "css/modals/invite/_info.scss",
        "extension" : "scss",
        "linesOfCode" : 129,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 129,
      "startLine" : 107,
      "endLine" : 113,
      "cleanedStartLine" : 90,
      "cleanedEndLine" : 95
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/desktop-picker/components/DesktopPicker.js",
        "extension" : "js",
        "linesOfCode" : 271,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 245,
      "startLine" : 366,
      "endLine" : 373,
      "cleanedStartLine" : 198,
      "cleanedEndLine" : 203
    }, {
      "file" : {
        "relativePath" : "react/features/welcome/components/WelcomePage.web.js",
        "extension" : "js",
        "linesOfCode" : 352,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 314,
      "startLine" : 417,
      "endLine" : 424,
      "cleanedStartLine" : 253,
      "cleanedEndLine" : 258
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 375,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 311,
      "startLine" : 554,
      "endLine" : 559,
      "cleanedStartLine" : 249,
      "cleanedEndLine" : 254
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/LocalVideoMenuTriggerButton.js",
        "extension" : "js",
        "linesOfCode" : 125,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 202,
      "endLine" : 207,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 96
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/DialInSection.js",
        "extension" : "js",
        "linesOfCode" : 44,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/native/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 72,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/ui/components/JitsiThemeProvider.web.js",
        "extension" : "js",
        "linesOfCode" : 19,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 33,
      "endLine" : 38,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "react/features/lobby/components/web/LobbySection.js",
        "extension" : "js",
        "linesOfCode" : 84,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 69,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 64
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_av_moderation_component.lua",
        "extension" : "lua",
        "linesOfCode" : 234,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 181,
      "startLine" : 116,
      "endLine" : 125,
      "cleanedStartLine" : 63,
      "cleanedEndLine" : 68
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_breakout_rooms.lua",
        "extension" : "lua",
        "linesOfCode" : 420,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 341,
      "startLine" : 234,
      "endLine" : 243,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 142
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_poltergeist.lua",
        "extension" : "lua",
        "linesOfCode" : 224,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 188,
      "startLine" : 227,
      "endLine" : 234,
      "cleanedStartLine" : 128,
      "cleanedEndLine" : 133
    }, {
      "file" : {
        "relativePath" : "resources/prosody-plugins/mod_muc_poltergeist.lua",
        "extension" : "lua",
        "linesOfCode" : 224,
        "components" : [ "primary::resources" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 188,
      "startLine" : 276,
      "endLine" : 283,
      "cleanedStartLine" : 158,
      "cleanedEndLine" : 163
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/native/AddPeopleDialog.js",
        "extension" : "js",
        "linesOfCode" : 461,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 418,
      "startLine" : 450,
      "endLine" : 455,
      "cleanedStartLine" : 303,
      "cleanedEndLine" : 308
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/native/AddPeopleDialog.js",
        "extension" : "js",
        "linesOfCode" : 461,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 418,
      "startLine" : 506,
      "endLine" : 511,
      "cleanedStartLine" : 351,
      "cleanedEndLine" : 356
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recent-list/components/RecentListItemMenu.native.js",
        "extension" : "js",
        "linesOfCode" : 88,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 86,
      "endLine" : 91,
      "cleanedStartLine" : 31,
      "cleanedEndLine" : 36
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/SharedVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 102,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/reactions/components/web/ReactionsMenu.js",
        "extension" : "js",
        "linesOfCode" : 95,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 74,
      "startLine" : 169,
      "endLine" : 174,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 59
    }, {
      "file" : {
        "relativePath" : "react/features/settings/components/web/video/VideoSettingsContent.js",
        "extension" : "js",
        "linesOfCode" : 161,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 139,
      "startLine" : 239,
      "endLine" : 244,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 125
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/WaitForOwnerDialog.js",
        "extension" : "js",
        "linesOfCode" : 66,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 51
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/LocalVideoMenuTriggerButton.js",
        "extension" : "js",
        "linesOfCode" : 125,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 202,
      "endLine" : 207,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 96
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractMuteEveryoneDialog.js",
        "extension" : "js",
        "linesOfCode" : 84,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 70,
      "startLine" : 127,
      "endLine" : 134,
      "cleanedStartLine" : 58,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractMuteEveryonesVideoDialog.js",
        "extension" : "js",
        "linesOfCode" : 86,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 72,
      "startLine" : 129,
      "endLine" : 136,
      "cleanedStartLine" : 60,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/InviteContactsForm.js",
        "extension" : "js",
        "linesOfCode" : 426,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 577,
      "endLine" : 582,
      "cleanedStartLine" : 370,
      "cleanedEndLine" : 375
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/FlipLocalVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 52,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/avatar/components/native/StatelessAvatar.js",
        "extension" : "js",
        "linesOfCode" : 118,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 99,
      "startLine" : 114,
      "endLine" : 121,
      "cleanedStartLine" : 58,
      "cleanedEndLine" : 63
    }, {
      "file" : {
        "relativePath" : "react/features/base/avatar/components/native/StatelessAvatar.js",
        "extension" : "js",
        "linesOfCode" : 118,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 99,
      "startLine" : 137,
      "endLine" : 144,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 81
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/google-api/googleApi.web.js",
        "extension" : "js",
        "linesOfCode" : 219,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 205,
      "startLine" : 45,
      "endLine" : 52,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 22
    }, {
      "file" : {
        "relativePath" : "react/features/google-api/googleApi.web.js",
        "extension" : "js",
        "linesOfCode" : 219,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 205,
      "startLine" : 349,
      "endLine" : 356,
      "cleanedStartLine" : 178,
      "cleanedEndLine" : 183
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/MeetingParticipantItem.js",
        "extension" : "js",
        "linesOfCode" : 188,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 165,
      "startLine" : 288,
      "endLine" : 293,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 138
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/RemoteVideoMenuTriggerButton.js",
        "extension" : "js",
        "linesOfCode" : 273,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 380,
      "endLine" : 385,
      "cleanedStartLine" : 192,
      "cleanedEndLine" : 197
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "css/_aui_reset.scss",
        "extension" : "scss",
        "linesOfCode" : 212,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 212,
      "startLine" : 9,
      "endLine" : 14,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "css/_aui_reset.scss",
        "extension" : "scss",
        "linesOfCode" : 212,
        "components" : [ "primary::css" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 212,
      "startLine" : 87,
      "endLine" : 92,
      "cleanedStartLine" : 76,
      "cleanedEndLine" : 81
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/MuteEveryoneDialog.js",
        "extension" : "js",
        "linesOfCode" : 43,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 31,
      "endLine" : 44,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/MuteEveryonesVideoDialog.js",
        "extension" : "js",
        "linesOfCode" : 43,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 36,
      "startLine" : 31,
      "endLine" : 44,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/MuteEveryoneDialog.js",
        "extension" : "js",
        "linesOfCode" : 63,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 49,
      "startLine" : 45,
      "endLine" : 57,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/MuteEveryonesVideoDialog.js",
        "extension" : "js",
        "linesOfCode" : 61,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 45,
      "endLine" : 57,
      "cleanedStartLine" : 12,
      "cleanedEndLine" : 17
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/InviteContactsForm.js",
        "extension" : "js",
        "linesOfCode" : 426,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 577,
      "endLine" : 582,
      "cleanedStartLine" : 370,
      "cleanedEndLine" : 375
    }, {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.web.js",
        "extension" : "js",
        "linesOfCode" : 135,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 193,
      "endLine" : 198,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 113
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/popover/components/Popover.web.js",
        "extension" : "js",
        "linesOfCode" : 264,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 323,
      "endLine" : 328,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 175
    }, {
      "file" : {
        "relativePath" : "react/features/calendar-sync/components/AddMeetingUrlButton.web.js",
        "extension" : "js",
        "linesOfCode" : 55,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 44,
      "startLine" : 97,
      "endLine" : 102,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/filmstrip/components/web/Filmstrip.js",
        "extension" : "js",
        "linesOfCode" : 375,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 311,
      "startLine" : 554,
      "endLine" : 559,
      "cleanedStartLine" : 249,
      "cleanedEndLine" : 254
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/InviteContactsForm.js",
        "extension" : "js",
        "linesOfCode" : 426,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 577,
      "endLine" : 582,
      "cleanedStartLine" : 370,
      "cleanedEndLine" : 375
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/e2ee/middleware.js",
        "extension" : "js",
        "linesOfCode" : 196,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 153,
      "startLine" : 228,
      "endLine" : 244,
      "cleanedStartLine" : 132,
      "cleanedEndLine" : 137
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/middleware.any.js",
        "extension" : "js",
        "linesOfCode" : 126,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 104,
      "startLine" : 73,
      "endLine" : 87,
      "cleanedStartLine" : 50,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.native.js",
        "extension" : "js",
        "linesOfCode" : 89,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 77,
      "startLine" : 144,
      "endLine" : 149,
      "cleanedStartLine" : 61,
      "cleanedEndLine" : 66
    }, {
      "file" : {
        "relativePath" : "react/features/recent-list/components/RecentListItemMenu.native.js",
        "extension" : "js",
        "linesOfCode" : 88,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 129,
      "endLine" : 134,
      "cleanedStartLine" : 64,
      "cleanedEndLine" : 69
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/settings/components/web/MoreTab.js",
        "extension" : "js",
        "linesOfCode" : 297,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 273,
      "startLine" : 257,
      "endLine" : 262,
      "cleanedStartLine" : 141,
      "cleanedEndLine" : 146
    }, {
      "file" : {
        "relativePath" : "react/features/settings/components/web/MoreTab.js",
        "extension" : "js",
        "linesOfCode" : 297,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 273,
      "startLine" : 342,
      "endLine" : 347,
      "cleanedStartLine" : 213,
      "cleanedEndLine" : 218
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/prejoin/components/dialogs/JoinByPhoneDialog.js",
        "extension" : "js",
        "linesOfCode" : 127,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 111,
      "startLine" : 220,
      "endLine" : 228,
      "cleanedStartLine" : 104,
      "cleanedEndLine" : 109
    }, {
      "file" : {
        "relativePath" : "react/features/prejoin/components/preview/DeviceStatus.js",
        "extension" : "js",
        "linesOfCode" : 48,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 41,
      "startLine" : 66,
      "endLine" : 73,
      "cleanedStartLine" : 34,
      "cleanedEndLine" : 39
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/toolbox/components/MuteEveryoneButton.js",
        "extension" : "js",
        "linesOfCode" : 39,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 41,
      "endLine" : 50,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    }, {
      "file" : {
        "relativePath" : "react/features/toolbox/components/MuteEveryonesVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 39,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 41,
      "endLine" : 50,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/breakout-rooms/components/web/JoinQuickActionButton.js",
        "extension" : "js",
        "linesOfCode" : 33,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 20,
      "endLine" : 26,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/LobbyParticipantItem.js",
        "extension" : "js",
        "linesOfCode" : 56,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 47,
      "startLine" : 32,
      "endLine" : 38,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/av-moderation/reducer.js",
        "extension" : "js",
        "linesOfCode" : 207,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 168,
      "startLine" : 227,
      "endLine" : 234,
      "cleanedStartLine" : 141,
      "cleanedEndLine" : 146
    }, {
      "file" : {
        "relativePath" : "react/features/av-moderation/reducer.js",
        "extension" : "js",
        "linesOfCode" : 207,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 168,
      "startLine" : 253,
      "endLine" : 260,
      "cleanedStartLine" : 158,
      "cleanedEndLine" : 163
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractGrantModeratorDialog.js",
        "extension" : "js",
        "linesOfCode" : 35,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 27,
      "startLine" : 6,
      "endLine" : 21,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractKickRemoteParticipantDialog.js",
        "extension" : "js",
        "linesOfCode" : 29,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 6,
      "endLine" : 21,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/conference/actions.js",
        "extension" : "js",
        "linesOfCode" : 438,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 382,
      "startLine" : 36,
      "endLine" : 41,
      "cleanedStartLine" : 21,
      "cleanedEndLine" : 26
    }, {
      "file" : {
        "relativePath" : "react/features/base/conference/reducer.js",
        "extension" : "js",
        "linesOfCode" : 196,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 170,
      "startLine" : 9,
      "endLine" : 14,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/conference/components/native/ConferenceNavigatorScreenOptions.js",
        "extension" : "js",
        "linesOfCode" : 165,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 55,
      "endLine" : 61,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "react/features/conference/components/native/ConferenceNavigatorScreenOptions.js",
        "extension" : "js",
        "linesOfCode" : 165,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 149,
      "startLine" : 189,
      "endLine" : 195,
      "cleanedStartLine" : 117,
      "cleanedEndLine" : 122
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/chat/components/web/ChatButton.js",
        "extension" : "js",
        "linesOfCode" : 49,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 35,
      "startLine" : 58,
      "endLine" : 75,
      "cleanedStartLine" : 14,
      "cleanedEndLine" : 19
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/web/ParticipantsPaneButton.js",
        "extension" : "js",
        "linesOfCode" : 30,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 21,
      "startLine" : 34,
      "endLine" : 51,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/av-moderation/reducer.js",
        "extension" : "js",
        "linesOfCode" : 207,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 168,
      "startLine" : 218,
      "endLine" : 224,
      "cleanedStartLine" : 134,
      "cleanedEndLine" : 139
    }, {
      "file" : {
        "relativePath" : "react/features/av-moderation/reducer.js",
        "extension" : "js",
        "linesOfCode" : 207,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 168,
      "startLine" : 244,
      "endLine" : 250,
      "cleanedStartLine" : 151,
      "cleanedEndLine" : 156
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/shared-video/components/web/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 74,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/FlipLocalVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 52,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/recording/components/Recording/native/StartRecordingDialog.js",
        "extension" : "js",
        "linesOfCode" : 51,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 65,
      "endLine" : 74,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    }, {
      "file" : {
        "relativePath" : "react/features/recording/components/Recording/web/StartRecordingDialog.js",
        "extension" : "js",
        "linesOfCode" : 50,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 42,
      "startLine" : 64,
      "endLine" : 73,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/FlipLocalVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 52,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    }, {
      "file" : {
        "relativePath" : "react/features/video-quality/components/VideoQualitySlider.web.js",
        "extension" : "js",
        "linesOfCode" : 258,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 221,
      "startLine" : 364,
      "endLine" : 369,
      "cleanedStartLine" : 212,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/DialInSection.js",
        "extension" : "js",
        "linesOfCode" : 44,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "react/features/video-quality/components/VideoQualitySlider.web.js",
        "extension" : "js",
        "linesOfCode" : 258,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 221,
      "startLine" : 364,
      "endLine" : 369,
      "cleanedStartLine" : 212,
      "cleanedEndLine" : 217
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/LoginDialog.js",
        "extension" : "js",
        "linesOfCode" : 221,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 329,
      "endLine" : 334,
      "cleanedStartLine" : 171,
      "cleanedEndLine" : 176
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/DialInSection.js",
        "extension" : "js",
        "linesOfCode" : 44,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/toolbox/components/ToolboxItem.native.js",
        "extension" : "js",
        "linesOfCode" : 65,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 56,
      "startLine" : 38,
      "endLine" : 43,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    }, {
      "file" : {
        "relativePath" : "react/features/base/toolbox/components/web/ToolboxItem.js",
        "extension" : "js",
        "linesOfCode" : 71,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 61,
      "startLine" : 50,
      "endLine" : 55,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/chat/middleware.js",
        "extension" : "js",
        "linesOfCode" : 292,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 233,
      "startLine" : 222,
      "endLine" : 229,
      "cleanedStartLine" : 115,
      "cleanedEndLine" : 120
    }, {
      "file" : {
        "relativePath" : "react/features/mobile/external-api/middleware.js",
        "extension" : "js",
        "linesOfCode" : 383,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 315,
      "startLine" : 433,
      "endLine" : 440,
      "cleanedStartLine" : 246,
      "cleanedEndLine" : 251
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/RemoteVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 153,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 182,
      "endLine" : 187,
      "cleanedStartLine" : 74,
      "cleanedEndLine" : 79
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/SharedVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 102,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 83,
      "startLine" : 112,
      "endLine" : 117,
      "cleanedStartLine" : 41,
      "cleanedEndLine" : 46
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/testing/components/TestHint.android.js",
        "extension" : "js",
        "linesOfCode" : 16,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 28,
      "endLine" : 41,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    }, {
      "file" : {
        "relativePath" : "react/features/base/testing/components/TestHint.ios.js",
        "extension" : "js",
        "linesOfCode" : 15,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 9,
      "startLine" : 18,
      "endLine" : 30,
      "cleanedStartLine" : 1,
      "cleanedEndLine" : 6
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractBlockAudioVideoDialog.js",
        "extension" : "js",
        "linesOfCode" : 16,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 12,
      "startLine" : 22,
      "endLine" : 42,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/AbstractKickRemoteParticipantDialog.js",
        "extension" : "js",
        "linesOfCode" : 29,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 22,
      "startLine" : 33,
      "endLine" : 53,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/popover/components/Popover.web.js",
        "extension" : "js",
        "linesOfCode" : 264,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 234,
      "startLine" : 392,
      "endLine" : 397,
      "cleanedStartLine" : 226,
      "cleanedEndLine" : 231
    }, {
      "file" : {
        "relativePath" : "react/features/participants-pane/components/native/MeetingParticipantItem.js",
        "extension" : "js",
        "linesOfCode" : 99,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 84,
      "startLine" : 167,
      "endLine" : 172,
      "cleanedStartLine" : 70,
      "cleanedEndLine" : 75
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/remote-control/actions.js",
        "extension" : "js",
        "linesOfCode" : 476,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 415,
      "startLine" : 324,
      "endLine" : 333,
      "cleanedStartLine" : 168,
      "cleanedEndLine" : 173
    }, {
      "file" : {
        "relativePath" : "react/features/remote-control/actions.js",
        "extension" : "js",
        "linesOfCode" : 476,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 415,
      "startLine" : 360,
      "endLine" : 369,
      "cleanedStartLine" : 189,
      "cleanedEndLine" : 194
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/LoginDialog.js",
        "extension" : "js",
        "linesOfCode" : 221,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 329,
      "endLine" : 334,
      "cleanedStartLine" : 171,
      "cleanedEndLine" : 176
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/FlipLocalVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 52,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/shared-video/components/native/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 72,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 54,
      "startLine" : 137,
      "endLine" : 142,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 52
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/FlipLocalVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 52,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/LoginDialog.js",
        "extension" : "js",
        "linesOfCode" : 221,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 329,
      "endLine" : 334,
      "cleanedStartLine" : 171,
      "cleanedEndLine" : 176
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/web/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 74,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 54
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/polls/reducer.js",
        "extension" : "js",
        "linesOfCode" : 111,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 92,
      "endLine" : 97,
      "cleanedStartLine" : 53,
      "cleanedEndLine" : 58
    }, {
      "file" : {
        "relativePath" : "react/features/polls/reducer.js",
        "extension" : "js",
        "linesOfCode" : 111,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 90,
      "startLine" : 124,
      "endLine" : 129,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 80
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/large-video/components/LargeVideo.web.js",
        "extension" : "js",
        "linesOfCode" : 135,
        "components" : [ "primary::react" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 118,
      "startLine" : 193,
      "endLine" : 198,
      "cleanedStartLine" : 108,
      "cleanedEndLine" : 113
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/FlipLocalVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 52,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/toolbox/components/native/OverflowMenu.js",
        "extension" : "js",
        "linesOfCode" : 132,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 96,
      "startLine" : 170,
      "endLine" : 175,
      "cleanedStartLine" : 69,
      "cleanedEndLine" : 74
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/native/RemoteVideoMenu.js",
        "extension" : "js",
        "linesOfCode" : 153,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 122,
      "startLine" : 182,
      "endLine" : 187,
      "cleanedStartLine" : 74,
      "cleanedEndLine" : 79
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "conference.js",
        "extension" : "js",
        "linesOfCode" : 2110,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1902,
      "startLine" : 2976,
      "endLine" : 2981,
      "cleanedStartLine" : 1812,
      "cleanedEndLine" : 1817
    }, {
      "file" : {
        "relativePath" : "conference.js",
        "extension" : "js",
        "linesOfCode" : 2110,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 1902,
      "startLine" : 3010,
      "endLine" : 3015,
      "cleanedStartLine" : 1839,
      "cleanedEndLine" : 1844
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/shared-video/components/native/AbstractVideoManager.js",
        "extension" : "js",
        "linesOfCode" : 103,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 78,
      "startLine" : 180,
      "endLine" : 189,
      "cleanedStartLine" : 43,
      "cleanedEndLine" : 48
    }, {
      "file" : {
        "relativePath" : "react/features/shared-video/components/web/AbstractVideoManager.js",
        "extension" : "js",
        "linesOfCode" : 206,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 158,
      "startLine" : 281,
      "endLine" : 290,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/chat/components/native/MessageContainer.js",
        "extension" : "js",
        "linesOfCode" : 80,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 71,
      "endLine" : 77,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/native/AddPeopleDialog.js",
        "extension" : "js",
        "linesOfCode" : 461,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 418,
      "startLine" : 296,
      "endLine" : 302,
      "cleanedStartLine" : 179,
      "cleanedEndLine" : 184
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/DialInSection.js",
        "extension" : "js",
        "linesOfCode" : 44,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/InviteContactsForm.js",
        "extension" : "js",
        "linesOfCode" : 426,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 577,
      "endLine" : 582,
      "cleanedStartLine" : 370,
      "cleanedEndLine" : 375
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "modules/util/helpers.js",
        "extension" : "js",
        "linesOfCode" : 12,
        "components" : [ "primary::modules" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 9,
      "startLine" : 9,
      "endLine" : 16,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 7
    }, {
      "file" : {
        "relativePath" : "react/features/base/util/helpers.js",
        "extension" : "js",
        "linesOfCode" : 103,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 80,
      "startLine" : 52,
      "endLine" : 59,
      "cleanedStartLine" : 16,
      "cleanedEndLine" : 21
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/label/components/Label.web.js",
        "extension" : "js",
        "linesOfCode" : 84,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 75,
      "startLine" : 95,
      "endLine" : 100,
      "cleanedStartLine" : 48,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "react/features/etherpad/components/native/SharedDocument.js",
        "extension" : "js",
        "linesOfCode" : 82,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 81,
      "endLine" : 86,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/base/react/components/native/BackButton.js",
        "extension" : "js",
        "linesOfCode" : 32,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 52,
      "endLine" : 68,
      "cleanedStartLine" : 18,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "react/features/base/react/components/native/ForwardButton.js",
        "extension" : "js",
        "linesOfCode" : 39,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 31,
      "startLine" : 72,
      "endLine" : 88,
      "cleanedStartLine" : 25,
      "cleanedEndLine" : 30
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "ios/sdk/src/callkit/CallKit.m",
        "extension" : "m",
        "linesOfCode" : 236,
        "components" : [ "primary::ios" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 187,
      "startLine" : 159,
      "endLine" : 165,
      "cleanedStartLine" : 79,
      "cleanedEndLine" : 84
    }, {
      "file" : {
        "relativePath" : "ios/sdk/src/callkit/CallKit.m",
        "extension" : "m",
        "linesOfCode" : 236,
        "components" : [ "primary::ios" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 187,
      "startLine" : 176,
      "endLine" : 182,
      "cleanedStartLine" : 90,
      "cleanedEndLine" : 95
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/DialInSection.js",
        "extension" : "js",
        "linesOfCode" : 44,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 38,
      "startLine" : 76,
      "endLine" : 81,
      "cleanedStartLine" : 32,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/FlipLocalVideoButton.js",
        "extension" : "js",
        "linesOfCode" : 52,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 96,
      "endLine" : 101,
      "cleanedStartLine" : 37,
      "cleanedEndLine" : 42
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/conference/components/web/InviteMore.js",
        "extension" : "js",
        "linesOfCode" : 63,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 52,
      "startLine" : 50,
      "endLine" : 57,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 18
    }, {
      "file" : {
        "relativePath" : "react/features/prejoin/components/country-picker/CountrySelector.js",
        "extension" : "js",
        "linesOfCode" : 28,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 24,
      "startLine" : 26,
      "endLine" : 33,
      "cleanedStartLine" : 6,
      "cleanedEndLine" : 11
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/authentication/components/native/LoginDialog.js",
        "extension" : "js",
        "linesOfCode" : 221,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 195,
      "startLine" : 329,
      "endLine" : 334,
      "cleanedStartLine" : 171,
      "cleanedEndLine" : 176
    }, {
      "file" : {
        "relativePath" : "react/features/invite/components/add-people-dialog/web/InviteContactsForm.js",
        "extension" : "js",
        "linesOfCode" : 426,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 380,
      "startLine" : 577,
      "endLine" : 582,
      "cleanedStartLine" : 370,
      "cleanedEndLine" : 375
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "react/features/shared-video/components/web/SharedVideo.js",
        "extension" : "js",
        "linesOfCode" : 74,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 57,
      "startLine" : 131,
      "endLine" : 136,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "react/features/video-menu/components/web/LocalVideoMenuTriggerButton.js",
        "extension" : "js",
        "linesOfCode" : 125,
        "components" : [ "primary::react" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 102,
      "startLine" : 202,
      "endLine" : 207,
      "cleanedStartLine" : 91,
      "cleanedEndLine" : 96
    } ]
  } ],
  "overallDuplication" : null
}