FairDiffIterable (@NotNull Range range, @NotNull FairDiffIterable iterable, @NotNull CharSequence text1, @NotNull CharSequence text2, @NotNull LineOffsets lineOffsets1, @NotNull LineOffsets lineOffsets2, @NotNull BitSet ignored1, @NotNull BitSet ignored2) { DiffIterableUtil.ChangeBuilder builder = new DiffIterableUtil.ChangeBuilder(iterable.getLength1(), iterable.getLength2()); for (Range ch : iterable.iterateUnchanged()) { int count = ch.end1 - ch.start1; for (int i = 0; i < count; i++) { int index1 = ch.start1 + i; int index2 = ch.start2 + i; if (areIgnoredEqualLines(range.start1 + index1, range.start2 + index2, text1, text2, lineOffsets1, lineOffsets2, ignored1, ignored2)) { builder.markEqual(index1, index2); } } } return fair(builder.finish()); }