function lcg64(str) {
    let range = BigInt(2) ** /** @type {!bigint} */this.bit - BigInt(1),
        type = typeof str;

    if ("bigint" == type) {
        return (/** @type {!bigint} */str & range
        );
    }
    if ("number" == type) {
        return BigInt(str) & range;
    }
    let crc = BigInt(0),
        bit = /** @type {!bigint} */this.bit + BigInt(1);
    for (let i = 0; i < str.length; i++) {
        crc = (crc * bit ^ BigInt(str.charCodeAt(i))) & range;
    }
    return crc;
}
@param {!number|bigint|string} str
@this {KeystoreMap|KeystoreSet}