private int getChangeIndex(int clientOffset) {
    return ObjectUtils.binarySearch(0, myChanges.size(), i->{
      ChangeEntry changeEntry = myChanges.get(i);
      if (changeEntry.clientStartOffset > clientOffset) return 1;
      if (changeEntry.clientStartOffset + changeEntry.change.getText().length() < clientOffset) return -1;
      return 0;
    });
  }
private int getChangeIndex(int clientOffset)