@Override
    public boolean decode(@NotNull TextRange rangeInsideHost, @NotNull StringBuilder outChars) {
      text = myHost.getText();
      contentRanges = myHost.getContentRanges();
      boolean decoded = false;
      for (TextRange range : contentRanges) {
        TextRange intersection = range.intersection(rangeInsideHost);
        if (intersection == null) continue;
        decoded = true;
        String substring = intersection.substring(text);
        outChars.append(processReplacements(substring, myHost.getDecodeReplacements(substring)));
      }
      return decoded;
    }
@Override
    public boolean decode(@NotNull TextRange rangeInsideHost, @NotNull StringBuilder outChars)