if (c > 127) throw new URISyntaxException(str, "Invalid character");
  private static String unquote(String str) throws URISyntaxException  {    if (str == null)      return null;    byte[] buf = new byte[str.length()];    int pos = 0;    for (int i = 0; i < str.length(); i++)      {	char c = str.charAt(i);	if (c > 127)	  throw new URISyntaxException(str, "Invalid character");	if (c == '%')	  {	    if (i + 2 >= str.length())	      throw new URISyntaxException(str, "Invalid quoted character");	    String hex = "0123456789ABCDEF";	    int hi = hex.indexOf(str.charAt(++i));	    int lo = hex.indexOf(str.charAt(++i));	    if (lo < 0 || hi < 0)	      throw new URISyntaxException(str, "Invalid quoted character");	    buf[pos++] = (byte) (hi * 16 + lo);	  }	else	  buf[pos++] = (byte) c;      }    try      {	return new String(buf, 0, pos, "utf-8");      }    catch (java.io.UnsupportedEncodingException x2)      {	throw (Error) new InternalError().initCause(x2);      }  }