PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` /* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; const SAFE_LIMIT = 0x80000000; const SAFE_PART = SAFE_LIMIT - 1; const COUNT = 4; const arr = [0, 0, 0, 0, 0]; const primes = [3, 7, 17, 19]; module.exports = (str, range) => { arr.fill(0); for (let i = 0; i < str.length; i++) { const c = str.charCodeAt(i); for (let j = 0; j < COUNT; j++) { const p = (j + COUNT - 1) % COUNT; arr[j] = (arr[j] + c * primes[j] + arr[p]) & SAFE_PART; } for (let j = 0; j < COUNT; j++) { const q = arr[j] % COUNT; arr[j] = arr[j] ^ (arr[q] >> 1); } } if (range <= SAFE_PART) { let sum = 0; for (let j = 0; j < COUNT; j++) { sum = (sum + arr[j]) % range; } return sum; } else { let sum1 = 0; let sum2 = 0; const rangeExt = Math.floor(range / SAFE_LIMIT); for (let j = 0; j < COUNT; j += 2) { sum1 = (sum1 + arr[j]) & SAFE_PART; } for (let j = 1; j < COUNT; j += 2) { sum2 = (sum2 + arr[j]) % rangeExt; } return (sum2 * SAFE_LIMIT + sum1) % range; } };