@NotNull
  private static FairDiffIterable optimizeLineChunks(@NotNull List<? extends Line> lines1,
                                                     @NotNull List<? extends Line> lines2,
                                                     @NotNull FairDiffIterable iterable,
                                                     @NotNull CancellationChecker indicator) {
    return new ChunkOptimizer.LineChunkOptimizer(lines1, lines2, iterable, indicator).build();
  }
@NotNull
  private static FairDiffIterable optimizeLineChunks(@NotNull List<? extends Line> lines1,
                                                     @NotNull List<? extends Line> lines2,
                                                     @NotNull FairDiffIterable iterable,
                                                     @NotNull CancellationChecker indicator)