SA[--m] = i; } else { ++bucketB[BUCKET_B(ti, t0)]; ++bucketB[BUCKET_B(ti, ti1)]; SA[--m] = i; for (--i; 0 <= i && (ti = T[i] & 0xff) <= (ti1 = T[i + 1] & 0xff); --i) { ++bucketB[BUCKET_B(ti, ti1)]; t = i + bucketA[c0]; bucketA[c0] = i + j; i = t + bucketB[BUCKET_B(c0, c0)]; for (c1 = c0 + 1; c1 < 256; ++c1) { j += bucketB[BUCKET_BSTAR(c0, c1)]; bucketB[(c0 << 8) | c1] = j; i += bucketB[BUCKET_B(c0, c1)]; t = i - bucketB[BUCKET_B(c0, c1)]; bucketB[BUCKET_B(c0, c1)] = i + 1; t = i - bucketB[BUCKET_B(c0, c0)]; bucketB[BUCKET_B(c0, c0)] = i + 1; if (c0 < 255) { bucketB[BUCKET_BSTAR(c0, c0 + 1)] = t + 1;
SA[--m] = i; } else { ++bucketB[BUCKET_B(ti, t0)]; ++bucketB[BUCKET_B(ti, ti1)]; SA[--m] = i; for (--i; 0 <= i && (ti = T[i] & 0xff) <= (ti1 = T[i + 1] & 0xff); --i) { ++bucketB[BUCKET_B(ti, ti1)]; t = i + bucketA[c0]; bucketA[c0] = i + j; i = t + bucketB[BUCKET_B(c0, c0)]; for (c1 = c0 + 1; c1 < 256; ++c1) { j += bucketB[BUCKET_BSTAR(c0, c1)]; bucketB[(c0 << 8) | c1] = j; i += bucketB[BUCKET_B(c0, c1)]; t = i - bucketB[BUCKET_B(c0, c1)]; bucketB[BUCKET_B(c0, c1)] = i + 1; t = i - bucketB[BUCKET_B(c0, c0)]; bucketB[BUCKET_B(c0, c0)] = i + 1; if (c0 < 255) { bucketB[BUCKET_BSTAR(c0, c0 + 1)] = t + 1;
SA[--m] = i; } else { ++bucketB[BUCKET_B(ti, t0)]; ++bucketB[BUCKET_B(ti, ti1)]; SA[--m] = i; for (--i; 0 <= i && (ti = T[i] & 0xff) <= (ti1 = T[i + 1] & 0xff); --i) { ++bucketB[BUCKET_B(ti, ti1)]; t = i + bucketA[c0]; bucketA[c0] = i + j; i = t + bucketB[BUCKET_B(c0, c0)]; for (c1 = c0 + 1; c1 < 256; ++c1) { j += bucketB[BUCKET_BSTAR(c0, c1)]; bucketB[(c0 << 8) | c1] = j; i += bucketB[BUCKET_B(c0, c1)]; t = i - bucketB[BUCKET_B(c0, c1)]; bucketB[BUCKET_B(c0, c1)] = i + 1; t = i - bucketB[BUCKET_B(c0, c0)]; bucketB[BUCKET_B(c0, c0)] = i + 1; if (c0 < 255) { bucketB[BUCKET_BSTAR(c0, c0 + 1)] = t + 1;
SA[--m] = i; } else { ++bucketB[BUCKET_B(ti, t0)]; ++bucketB[BUCKET_B(ti, ti1)]; SA[--m] = i; for (--i; 0 <= i && (ti = T[i] & 0xff) <= (ti1 = T[i + 1] & 0xff); --i) { ++bucketB[BUCKET_B(ti, ti1)]; t = i + bucketA[c0]; bucketA[c0] = i + j; i = t + bucketB[BUCKET_B(c0, c0)]; for (c1 = c0 + 1; c1 < 256; ++c1) { j += bucketB[BUCKET_BSTAR(c0, c1)]; bucketB[(c0 << 8) | c1] = j; i += bucketB[BUCKET_B(c0, c1)]; t = i - bucketB[BUCKET_B(c0, c1)]; bucketB[BUCKET_B(c0, c1)] = i + 1; t = i - bucketB[BUCKET_B(c0, c0)]; bucketB[BUCKET_B(c0, c0)] = i + 1; if (c0 < 255) { bucketB[BUCKET_BSTAR(c0, c0 + 1)] = t + 1;
SA[--m] = i; } else { ++bucketB[BUCKET_B(ti, t0)]; ++bucketB[BUCKET_B(ti, ti1)]; SA[--m] = i; for (--i; 0 <= i && (ti = T[i] & 0xff) <= (ti1 = T[i + 1] & 0xff); --i) { ++bucketB[BUCKET_B(ti, ti1)]; t = i + bucketA[c0]; bucketA[c0] = i + j; i = t + bucketB[BUCKET_B(c0, c0)]; for (c1 = c0 + 1; c1 < 256; ++c1) { j += bucketB[BUCKET_BSTAR(c0, c1)]; bucketB[(c0 << 8) | c1] = j; i += bucketB[BUCKET_B(c0, c1)]; t = i - bucketB[BUCKET_B(c0, c1)]; bucketB[BUCKET_B(c0, c1)] = i + 1; t = i - bucketB[BUCKET_B(c0, c0)]; bucketB[BUCKET_B(c0, c0)] = i + 1; if (c0 < 255) { bucketB[BUCKET_BSTAR(c0, c0 + 1)] = t + 1;
SA[--m] = i; } else { ++bucketB[BUCKET_B(ti, t0)]; ++bucketB[BUCKET_B(ti, ti1)]; SA[--m] = i; for (--i; 0 <= i && (ti = T[i] & 0xff) <= (ti1 = T[i + 1] & 0xff); --i) { ++bucketB[BUCKET_B(ti, ti1)]; t = i + bucketA[c0]; bucketA[c0] = i + j; i = t + bucketB[BUCKET_B(c0, c0)]; for (c1 = c0 + 1; c1 < 256; ++c1) { j += bucketB[BUCKET_BSTAR(c0, c1)]; bucketB[(c0 << 8) | c1] = j; i += bucketB[BUCKET_B(c0, c1)]; t = i - bucketB[BUCKET_B(c0, c1)]; bucketB[BUCKET_B(c0, c1)] = i + 1; t = i - bucketB[BUCKET_B(c0, c0)]; bucketB[BUCKET_B(c0, c0)] = i + 1; if (c0 < 255) { bucketB[BUCKET_BSTAR(c0, c0 + 1)] = t + 1;
SA[--m] = i; } else { ++bucketB[BUCKET_B(ti, t0)]; ++bucketB[BUCKET_B(ti, ti1)]; SA[--m] = i; for (--i; 0 <= i && (ti = T[i] & 0xff) <= (ti1 = T[i + 1] & 0xff); --i) { ++bucketB[BUCKET_B(ti, ti1)]; t = i + bucketA[c0]; bucketA[c0] = i + j; i = t + bucketB[BUCKET_B(c0, c0)]; for (c1 = c0 + 1; c1 < 256; ++c1) { j += bucketB[BUCKET_BSTAR(c0, c1)]; bucketB[(c0 << 8) | c1] = j; i += bucketB[BUCKET_B(c0, c1)]; t = i - bucketB[BUCKET_B(c0, c1)]; bucketB[BUCKET_B(c0, c1)] = i + 1; t = i - bucketB[BUCKET_B(c0, c0)]; bucketB[BUCKET_B(c0, c0)] = i + 1; if (c0 < 255) { bucketB[BUCKET_BSTAR(c0, c0 + 1)] = t + 1;