@Contract(pure = true)
  public boolean containsRange(int startOffset, int endOffset) {
    return getStartOffset() <= startOffset && endOffset <= getEndOffset();
  }
@Contract(pure = true)
  public boolean containsRange(int startOffset, int endOffset)