@Override
  public boolean decode(@NotNull TextRange rangeInsideHost, @NotNull StringBuilder outChars) {
    String subText = rangeInsideHost.substring(myHost.getText());
    outSourceOffsets = new int[subText.length() + 1];
    int prefixLen = outChars.length();
    boolean b = PropertyImpl.parseCharacters(subText, outChars, outSourceOffsets);
    if (b) {
      for (int i = prefixLen, len = outChars.length(); i < len; i++) {
        char outChar = outChars.charAt(i);
        char inChar = subText.charAt(outSourceOffsets[i - prefixLen]);
        if (outChar != inChar && inChar != '\\') {
          LOG.error("input: " + subText + ";\noutput: " + outChars +
                    "\nat: " + i + "; prefix-length: " + prefixLen);
        }
      }
    }
    return b;
  }
@Override
  public boolean decode(@NotNull TextRange rangeInsideHost, @NotNull StringBuilder outChars)