dchar front(char[] s) { dchar c = s[0]; if (!(c & 0x80)) return c; byte b = (c >> 4) & 3; b += !b; c &= 63 >> b; char *p = s.ptr; do { p++; c = c << 6 | *p & 63; } while(--b); return c; }