sclass MultiShortArrayInputStream_resettable extends InputStream { L l; int idx, iBuf; int mark_idx, mark_iBuf; bool bigEndian; *(L *l) {} public bool markSupported() { true; } public void mark(int n) { mark_idx = idx; mark_iBuf = iBuf; } public void reset() { idx = mark_idx; iBuf = mark_iBuf; } public int read() { while (iBuf >= l(get(l, idx))*2) if (idx >= l(l)-1) ret -1; else { ++idx; iBuf = 0; } short s = get(l, idx)[iBuf/2]; int i = (odd(iBuf) != bigEndian ? s >> 8 : s) & 0xFF; iBuf++; ret i; } }