XMLString xs = new XMLString(code.length);  char ch;  int end = (off + many);  byte cc;  for (int c = off; c < end; c++) {  cc = code[c];  if (0 <= cc) {  xs.append((char) cc); } else if (0 == cc) { return xs; } else { ch = 0;  if (b11000000 == (cc & b11100000)) {  ch |= (code[c + 1] & b00111111); ch |= (cc & b00011111) << 6;  c += 1; } else if (b11100000 == (cc & b11110000)) {  ch |= (code[c + 2] & b00111111); ch |= (code[c + 1] & b00111111) << 6; ch |= (cc & b00001111) << 12;  c += 2; } else if (b11110000 == (cc & b11111000)) {  ch |= (code[c + 3] & b00111111); ch |= (code[c + 2] & b00111111) << 6; ch |= (code[c + 1] & b00111111) << 12;  c += 3; } else if (b11111000 == (cc & b11111100)) {  ch |= (code[c + 4] & b00111111); ch |= (code[c + 3] & b00111111) << 6; ch |= (code[c + 2] & b00111111) << 12;  c += 4; } else if (b11111100 == (cc & b11111110)) {  ch |= (code[c + 5] & b00111111); ch |= (code[c + 4] & b00111111) << 6; ch |= (code[c + 3] & b00111111) << 12;  c += 5; } else { ch = (char) (cc & b01111111);  } xs.append(ch);  } }  return xs;
return decode(code, 0, code.length);
	public final static XMLString decode(byte[] code, int off, int many) {		if (null == code || 0 >= code.length)			return null;		XMLString xs = new XMLString(code.length);		char ch;		int end = (off + many);		byte cc;		for (int c = off; c < end; c++) {			cc = code[c];			if (0 <= cc) {				xs.append((char) cc);			} else if (0 == cc) {				return xs;			} else {				ch = 0;				if (b11000000 == (cc & b11100000)) {					ch |= (code[c + 1] & b00111111);					ch |= (cc & b00011111) << 6;					c += 1;				} else if (b11100000 == (cc & b11110000)) {					ch |= (code[c + 2] & b00111111);					ch |= (code[c + 1] & b00111111) << 6;					ch |= (cc & b00001111) << 12;					c += 2;				} else if (b11110000 == (cc & b11111000)) {					ch |= (code[c + 3] & b00111111);					ch |= (code[c + 2] & b00111111) << 6;					ch |= (code[c + 1] & b00111111) << 12;					c += 3;				} else if (b11111000 == (cc & b11111100)) {					ch |= (code[c + 4] & b00111111);					ch |= (code[c + 3] & b00111111) << 6;					ch |= (code[c + 2] & b00111111) << 12;					c += 4;				} else if (b11111100 == (cc & b11111110)) {					ch |= (code[c + 5] & b00111111);					ch |= (code[c + 4] & b00111111) << 6;					ch |= (code[c + 3] & b00111111) << 12;					c += 5;				} else {					ch = (char) (cc & b01111111); // 0x7f				}				xs.append(ch);			} // else // if ( 0 < cc)		}		return xs;	}