private static long codePointToFourUtf8Bytes(int codePoint) {
    return (((0xFL << 4) | (codePoint >>> 18)) & 0xFF)
           | ((0x80L | (0x3F & (codePoint >>> 12))) << 8)
           | ((0x80L | (0x3F & (codePoint >>> 6))) << 16)
           | ((0x80L | (0x3F & codePoint)) << 24);
  }
private static long codePointToFourUtf8Bytes(int codePoint)