// Metro module 1904 (f1905). let c1595_0, _decompress, _inflate, c1595_4, _filterZero, _IHDR, _copyTile; let c1596_0; const decodeImage = function decodeImage(data, a1, a2, a3) { const r30 = a1 * a2; const r37 = Math.ceil(a1 * ([1, null, 3, 1, 2, null, 4][a3.ctype] * a3.depth) / 8); const uint8Array = new Uint8Array(4 * r30); const uint32Array = new Uint32Array(uint8Array.buffer); const { ctype, depth } = a3; const readUshort2 = c1595_0.readUshort; Date.now(); if (ctype == 6) { const r375 = r30 << 2; if (depth == 8) { let r378 = 0; while (r378 < r375) { uint8Array[r378] = data[r378]; const r380 = r378 + 1; uint8Array[r380] = data[r380]; const r382 = r378 + 2; uint8Array[r382] = data[r382]; const r384 = r378 + 3; uint8Array[r384] = data[r384]; r378 = r378 + 4; } } if (depth == 16) { let r388 = 0; while (r388 < r375) { uint8Array[r388] = data[r388 << 1]; r388 = r388 + 1; } } } else if (ctype == 2) { const tRNS2 = a3.tabs.tRNS; if (tRNS2 == null) { if (depth == 8) { let r347 = 0; while (r347 < r30) { const r348 = 3 * r347; uint32Array[r347] = -16777216 | data[r348 + 2] << 16 | data[r348 + 1] << 8 | data[r348]; r347 = r347 + 1; } } if (depth == 16) { let r362 = 0; while (r362 < r30) { const r363 = 6 * r362; uint32Array[r362] = -16777216 | data[r363 + 4] << 16 | data[r363 + 2] << 8 | data[r363]; r362 = r362 + 1; } } } else { const r291 = tRNS2[0]; const r292 = tRNS2[1]; const r293 = tRNS2[2]; if (depth == 8) { let r299 = 0; while (r299 < r30) { const r300 = 3 * r299; const r301 = r300 + 2; const r303 = data[r301] << 16; const r304 = r300 + 1; uint32Array[r299] = -16777216 | r303 | data[r304] << 8 | data[r300]; let r312 = data[r300] == r291; const r313 = r299; if (r312) { r312 = data[r304] == r292; } if (r312) { r312 = data[r301] == r293; } if (r312) { uint8Array[(r313 << 2) + 3] = 0; } r299 = r313 + 1; } } if (depth == 16) { let r324 = 0; while (r324 < r30) { const r325 = 6 * r324; const r326 = r325 + 4; const r328 = data[r326] << 16; const r329 = r325 + 2; uint32Array[r324] = -16777216 | r328 | data[r329] << 8 | data[r325]; let r337 = readUshort2(data, r325) == r291; const r338 = r324; if (r337) { r337 = readUshort2(data, r329) == r292; } if (r337) { r337 = readUshort2(data, r326) == r293; } if (r337) { uint8Array[(r338 << 2) + 3] = 0; } r324 = r338 + 1; } } } } else if (ctype == 3) { const PLTE = a3.tabs.PLTE; const tRNS = a3.tabs.tRNS; const r179 = tRNS ? tRNS.length : 0; if (depth == 1) { const r181 = 0 < a2; let r184 = 0; if (r181) { do { const r185 = r184 * r37; const r186 = r184 * a1; const r187 = 0 < a1; const r188 = r184; let r189 = 0; if (r187) { do { const r191 = r186 + r189 << 2; const r198 = data[r185 + (r189 >> 3)] >> 7 - (7 & r189) & 1; const r199 = 3 * r198; uint8Array[r191] = PLTE[r199]; uint8Array[r191 + 1] = PLTE[r199 + 1]; uint8Array[r191 + 2] = PLTE[r199 + 2]; const r207 = r198 < r179; const r208 = r189; uint8Array[r191 + 3] = r207 ? tRNS[r198] : 255; r189 = r208 + 1; } while (r189 < a1); } r184 = r188 + 1; } while (r184 < a2); } } if (depth == 2) { const r211 = 0 < a2; let r213 = 0; if (r211) { do { const r214 = r213 * r37; const r215 = r213 * a1; const r216 = 0 < a1; const r217 = r213; let r218 = 0; if (r216) { do { const r220 = r215 + r218 << 2; const r228 = data[r214 + (r218 >> 2)] >> 6 - ((3 & r218) << 1) & 3; const r229 = 3 * r228; uint8Array[r220] = PLTE[r229]; uint8Array[r220 + 1] = PLTE[r229 + 1]; uint8Array[r220 + 2] = PLTE[r229 + 2]; const r237 = r228 < r179; const r238 = r218; uint8Array[r220 + 3] = r237 ? tRNS[r228] : 255; r218 = r238 + 1; } while (r218 < a1); } r213 = r217 + 1; } while (r213 < a2); } } if (depth == 4) { const r241 = 0 < a2; let r244 = 0; if (r241) { do { const r245 = r244 * r37; const r246 = r244 * a1; const r247 = 0 < a1; const r248 = r244; let r249 = 0; if (r247) { do { const r251 = r246 + r249 << 2; const r259 = data[r245 + (r249 >> 1)] >> 4 - ((1 & r249) << 2) & 15; const r260 = 3 * r259; uint8Array[r251] = PLTE[r260]; uint8Array[r251 + 1] = PLTE[r260 + 1]; uint8Array[r251 + 2] = PLTE[r260 + 2]; const r268 = r259 < r179; const r269 = r249; uint8Array[r251 + 3] = r268 ? tRNS[r259] : 255; r249 = r269 + 1; } while (r249 < a1); } r244 = r248 + 1; } while (r244 < a2); } } if (depth == 8) { let r273 = 0; while (r273 < r30) { const r274 = r273 << 2; const r275 = data[r273]; const r276 = 3 * r275; uint8Array[r274] = PLTE[r276]; uint8Array[r274 + 1] = PLTE[r276 + 1]; uint8Array[r274 + 2] = PLTE[r276 + 2]; const r284 = r275 < r179; const r285 = r273; uint8Array[r274 + 3] = r284 ? tRNS[r275] : 255; r273 = r285 + 1; } } } else if (ctype == 4) { if (depth == 8) { let r156 = 0; while (r156 < r30) { const r157 = r156 << 2; const r158 = r156 << 1; const r159 = data[r158]; uint8Array[r157] = r159; uint8Array[r157 + 1] = r159; uint8Array[r157 + 2] = r159; uint8Array[r157 + 3] = data[r158 + 1]; r156 = r156 + 1; } } if (depth == 16) { let r167 = 0; while (r167 < r30) { const r168 = r167 << 2; const r169 = data[r168]; uint8Array[r168] = r169; uint8Array[r168 + 1] = r169; const r171 = r168 + 2; uint8Array[r171] = r169; uint8Array[r168 + 3] = data[r171]; r167 = r167 + 1; } } } else if (ctype == 0) { const r66 = a3.tabs.tRNS ? a3.tabs.tRNS : -1; const r25 = 0 < a2; let r68 = 0; if (r25) { do { const r21 = r68 * r37; const r14 = r68 * a1; const r9 = r68; if (depth == 1) { const r135 = 0 < a1; let r136 = 0; if (r135) { do { const r144 = 255 * (data[r21 + (r136 >>> 3)] >>> 7 - (7 & r136) & 1); const r145 = 255 * r66; const r146 = r136; uint32Array[r14 + r146] = (r144 === r145 ? 0 : 255) << 24 | r144 << 16 | r144 << 8 | r144; r136 = r146 + 1; } while (r136 < a1); } } else if (depth == 2) { const r114 = 0 < a1; let r115 = 0; if (r114) { do { const r124 = 85 * (data[r21 + (r115 >>> 2)] >>> 6 - ((3 & r115) << 1) & 3); const r125 = 85 * r66; const r126 = r115; uint32Array[r14 + r126] = (r124 === r125 ? 0 : 255) << 24 | r124 << 16 | r124 << 8 | r124; r115 = r126 + 1; } while (r115 < a1); } } else if (depth == 4) { const r94 = 0 < a1; let r95 = 0; if (r94) { do { const r104 = 17 * (data[r21 + (r95 >>> 1)] >>> 4 - ((1 & r95) << 2) & 15); const r105 = 17 * r66; const r106 = r95; uint32Array[r14 + r106] = (r104 === r105 ? 0 : 255) << 24 | r104 << 16 | r104 << 8 | r104; r95 = r106 + 1; } while (r95 < a1); } } else if (depth == 8) { const r80 = 0 < a1; let r81 = 0; if (r80) { do { const r83 = data[r21 + r81]; const r84 = r83 == r66; const r85 = r81; uint32Array[r14 + r85] = (r84 ? 0 : 255) << 24 | r83 << 16 | r83 << 8 | r83; r81 = r85 + 1; } while (r81 < a1); } } else if (depth == 16) { const r69 = 0 < a1; let r3 = 0; if (r69) { do { const r70 = r21 + (r3 << 1); const r71 = data[r70]; const r73 = readUshort2(data, r70) == r66; const r74 = r3; uint32Array[r14 + r74] = (r73 ? 0 : 255) << 24 | r71 << 16 | r71 << 8 | r71; r3 = r74 + 1; } while (r3 < a1); } } r68 = r9 + 1; } while (r68 < a2); } } return uint8Array; }; _decompress = function _decompress(a0, a1, a2, a3) { let r89; Date.now(); const uint8Array2 = new Uint8Array((Math.ceil(a2 * ([1, null, 3, 1, 2, null, 4][a0.ctype] * a0.depth) / 8) + 1 + a0.interlace) * a3); const CgBI = a0.tabs.CgBI; const r81 = CgBI ? c1595_4(a1, uint8Array2) : c1595_4(new Uint8Array(a1.buffer, 2, a1.length - 6), uint8Array2); Date.now(); if (a0.interlace == 0) { _filterZero(r81, a0, 0, a2, a3); r89 = r81; } else { const interlace = a0.interlace; r89 = r81; if (interlace == 1) { const { width, height } = a0; const r38 = [1, null, 3, 1, 2, null, 4][a0.ctype] * a0.depth; const r14 = r38 >> 3; const r37 = Math.ceil(width * r38 / 8); const uint8Array = new Uint8Array(height * r37); const r102 = [0, 0, 4, 0, 2, 0, 1]; const r103 = [0, 4, 0, 2, 0, 1, 0]; const r104 = [8, 8, 8, 4, 4, 2, 2]; const r105 = [8, 8, 4, 4, 2, 2, 1]; let r21 = 0; let r106 = 0; do { const r45 = r104[r21]; const r44 = r105[r21]; let r42 = r102[r21]; const r24 = r42 < height; const r20 = r21; const r19 = r106; let r16 = 0; let r18 = 0; if (r24) { do { r42 = r42 + r45; r16 = r16 + 1; r18 = r16; } while (r42 < height); } let r107 = r103[r20]; const r108 = r107 < width; let r12 = 0; let r109 = 0; if (r108) { do { r107 = r107 + r44; r12 = r12 + 1; r109 = r12; } while (r107 < width); } const r113 = Math.ceil(r109 * r38 / 8); _filterZero(r81, a0, r19, r109, r18); let r120 = r102[r20]; const r121 = r120 < height; let r122 = 0; if (r121) { do { let r47 = r103[r20]; let r8 = r19 + r122 * r113 << 3; const r46 = r120; const r124 = r122; while (r47 < width) { const r5 = r8; const r48 = r47; if (r38 == 1) { const r127 = r81[r5 >> 3] >> 7 - (7 & r5); const r129 = r46 * r37 + (r48 >> 3); uint8Array[r129] = uint8Array[r129] | (r127 & 1) << 7 - (7 & r48); } if (r38 == 2) { const r139 = r81[r5 >> 3] >> 6 - (7 & r5); const r142 = r46 * r37 + (r48 >> 2); uint8Array[r142] = uint8Array[r142] | (r139 & 3) << 6 - ((3 & r48) << 1); } if (r38 == 4) { const r154 = r81[r5 >> 3] >> 4 - (7 & r5); const r157 = r46 * r37 + (r48 >> 1); uint8Array[r157] = uint8Array[r157] | (r154 & 15) << 4 - ((1 & r48) << 2); } if (r38 >= 8) { const r167 = r46 * r37 + r48 * r14; const r168 = r5 >> 3; let r169 = 0; while (r169 < r14) { uint8Array[r167 + r169] = r81[r168 + r169]; r169 = r169 + 1; } } r8 = r5 + r38; r47 = r48 + r44; } r122 = r124 + 1; r120 = r46 + r45; } while (r120 < height); } const r173 = r109 * r18 !== 0 ? r19 + r18 * (1 + r113) : r19; r21 = r20 + 1; r106 = r173; r89 = uint8Array; } while (r21 < 7); } } return r89; }; _inflate = function _inflate(a0, a1) { return c1595_4(new Uint8Array(a0.buffer, 2, a0.length - 6), a1); }; _filterZero = function _filterZero(a0, a1, a2, a3, a4) { const r17 = [1, null, 3, 1, 2, null, 4][a1.ctype] * a1.depth; const r35 = Math.ceil(a3 * r17 / 8); const r39 = Math.ceil(r17 / 8); const r40 = a0[a2]; if (r40 > 1) { a0[a2] = [0, 0, 1][r40 - 2]; } if (r40 == 3) { let r46 = r39; while (r46 < r35) { a0[r46 + 1] = a0[r46 + 1] + (a0[r46 + 1 - r39] >>> 1) & 255; r46 = r46 + 1; } } const r11 = 0 < a4; let r57 = 0; if (r11) { do { const r58 = a2 + r57 * r35; const r60 = r58 + r57 + 1; const r62 = a0[r60 - 1]; const r63 = r57; if (r62 == 0) { const r131 = 0 < r35; let r132 = 0; if (r131) { do { a0[r58 + r132] = a0[r60 + r132]; r132 = r132 + 1; } while (r132 < r35); } } else if (r62 == 1) { const r119 = 0 < r39; let r120 = 0; let r121 = 0; if (r119) { do { a0[r58 + r120] = a0[r60 + r120]; r120 = r120 + 1; r121 = r120; } while (r121 < r39); } while (r121 < r35) { const r125 = r58 + r121; a0[r125] = a0[r60 + r121] + a0[r125 - r39]; r121 = r121 + 1; } } else if (r62 == 2) { const r111 = 0 < r35; let r112 = 0; if (r111) { do { const r113 = r58 + r112; a0[r113] = a0[r60 + r112] + a0[r113 - r35]; r112 = r112 + 1; } while (r112 < r35); } } else if (r62 == 3) { const r91 = 0 < r39; let r92 = 0; let r93 = 0; if (r91) { do { const r94 = r58 + r92; a0[r94] = a0[r60 + r92] + (a0[r94 - r35] >>> 1); r92 = r92 + 1; r93 = r92; } while (r93 < r39); } while (r93 < r35) { const r101 = r58 + r93; a0[r101] = a0[r60 + r93] + (a0[r101 - r35] + a0[r101 - r39] >>> 1); r93 = r93 + 1; } } else { const r64 = 0 < r39; let r0 = 0; let r1 = 0; if (r64) { do { const r20 = r58 + r0; const r21 = a0[r60 + r0]; const r23 = a0[r20 - r35]; const r67 = 0 + r23 - 0; const r5 = r67 - 0; const r68 = r67 - r23; const r6 = r5 * r5; const r69 = r68 * r68; const r70 = r0; a0[r20] = r21 + (r6 <= r69 ? r6 <= r6 ? 0 : r69 <= r6 ? r23 : 0 : r69 <= r6 ? r23 : 0); r0 = r70 + 1; r1 = r0; } while (r1 < r39); } while (r1 < r35) { const r73 = r58 + r1; const r75 = a0[r60 + r1]; let r77 = a0[r73 - r39]; const r79 = a0[r73 - r35]; let r82 = a0[r73 - r39 - r35]; const r83 = r77 + r79 - r82; const r26 = r83 - r77; const r25 = r83 - r79; const r84 = r83 - r82; const r28 = r26 * r26; const r27 = r25 * r25; const r85 = r1; if (!(r28 <= r27 && r26 * r26 <= r84 * r84)) { if (r25 * r25 <= r84 * r84) { r82 = r79; } r77 = r82; } a0[r73] = r75 + r77; r1 = r85 + 1; } } r57 = r63 + 1; } while (r57 < a4); } return a0; }; _IHDR = function _IHDR(uint8Array, a1, a2) { a2.width = c1595_0.readUint(uint8Array, a1); const r10 = a1 + 4; a2.height = c1595_0.readUint(uint8Array, r10); const r13 = r10 + 4; a2.depth = uint8Array[r13]; const r15 = r13 + 1; a2.ctype = uint8Array[r15]; const r17 = r15 + 1; a2.compress = uint8Array[r17]; const r19 = r17 + 1; a2.filter = uint8Array[r19]; a2.interlace = uint8Array[r19 + 1]; }; _copyTile = function _copyTile(uint8Array2, width2, height2, uint8Array, width, height, a6, a7, a8) { let r2, r56; const r45 = Math.min(width2, width); const r48 = Math.min(height2, height); const r27 = 0 < r48; let r23 = 0; if (r27) { do { const r49 = 0 < r45; const r13 = r23; let r12 = 0; if (r49) { do { const r11 = r12; if (a6 >= 0 && a7 >= 0) { r2 = r13 * width2 + r11 << 2; r56 = (a7 + r13) * width + a6 + r11 << 2; } else { r2 = (-a7 + r13) * width2 - a6 + r11 << 2; r56 = r13 * width + r11 << 2; } L27: { if (a8 == 0) { uint8Array[r56] = uint8Array2[r2]; uint8Array[r56 + 1] = uint8Array2[r2 + 1]; uint8Array[r56 + 2] = uint8Array2[r2 + 2]; uint8Array[r56 + 3] = uint8Array2[r2 + 3]; } else if (a8 == 1) { const r6 = 0.00392156862745098 * uint8Array2[r2 + 3]; const r14 = uint8Array2[r2] * r6; const r18 = uint8Array2[r2 + 1] * r6; const r21 = uint8Array2[r2 + 2] * r6; const r17 = r56 + 3; const r92 = 0.00392156862745098 * uint8Array[r17]; const r8 = uint8Array[r56] * r92; const r19 = r56 + 1; const r9 = uint8Array[r19] * r92; const r95 = r56 + 2; const r20 = uint8Array[r95] * r92; const r97 = 1 - r6; const r99 = r6 + r92 * r97; const r100 = r99 !== 0 ? 1 / r99 : 0; uint8Array[r17] = 255 * r99; uint8Array[r56 + 0] = (r14 + r8 * r97) * r100; uint8Array[r19] = (r18 + r9 * r97) * r100; uint8Array[r95] = (r21 + r20 * r97) * r100; } else if (a8 == 2) { const r72 = uint8Array2[r2 + 3]; const r73 = uint8Array2[r2]; const r75 = uint8Array2[r2 + 1]; const r77 = uint8Array2[r2 + 2]; const r78 = r56 + 3; const r79 = uint8Array[r78]; const r80 = uint8Array[r56]; const r3 = r56 + 1; const r81 = uint8Array[r3]; const r82 = r56 + 2; const r83 = uint8Array[r82]; if (r72 == r79 && r73 == r80 && r75 == r81 && r77 == r83) { uint8Array[r56] = 0; uint8Array[r3] = 0; uint8Array[r82] = 0; uint8Array[r78] = 0; break L27; } uint8Array[r56] = r73; uint8Array[r3] = r75; uint8Array[r82] = r77; uint8Array[r78] = r72; } else if (a8 == 3) { const r62 = uint8Array2[r2 + 3]; const r44 = uint8Array2[r2]; const r42 = uint8Array2[r2 + 1]; const r40 = uint8Array2[r2 + 2]; const r66 = uint8Array[r56 + 3]; const r43 = uint8Array[r56]; const r41 = uint8Array[r56 + 1]; const r69 = uint8Array[r56 + 2]; if (r62 == r66 && r44 == r43 && r42 == r41 && r40 == r69) { break L27; } if (r62 < 220 && r66 > 20) { return false; } } } r12 = r11 + 1; } while (r12 < r45); } r23 = r13 + 1; } while (r23 < r48); } return true; }; c1595_0 = { nextZero: function nextZero(a0, a1) { let r7; const r2 = a0[a1]; let r3 = a1; let r6 = a1; if (r2 != 0) { do { const r5 = r3 + 1; r7 = a0[r5]; r3 = r5; r6 = r3; } while (r7 != 0); } return r6; }, readUshort: function readUshort(a0, a1) { return a0[a1] << 8 | a0[a1 + 1]; }, writeUshort: function writeUshort(a0, a1, a2) { a0[a1] = a2 >> 8 & 255; a0[a1 + 1] = 255 & a2; }, readUint: function readUint(a0, a1) { return 16777216 * a0[a1] + (a0[a1 + 1] << 16 | a0[a1 + 2] << 8 | a0[a1 + 3]); }, writeUint: function writeUint(a0, a1, a2) { a0[a1] = a2 >> 24 & 255; a0[a1 + 1] = a2 >> 16 & 255; a0[a1 + 2] = a2 >> 8 & 255; a0[a1 + 3] = 255 & a2; }, readASCII: function readASCII(a0, a1, a2) { let r0 = 0; const r3 = 0 < a2; let r5 = ""; let r4 = ""; if (r3) { do { r5 = r5 + String.fromCharCode(a0[a1 + r0]); r0 = r0 + 1; r4 = r5; } while (r0 < a2); } return r4; }, writeASCII: function writeASCII(a0, a1, a2) { const length = a2.length; let r0 = 0; if (0 < length) { do { a0[a1 + r0] = a2.charCodeAt(r0); r0 = r0 + 1; } while (r0 < a2.length); } }, readBytes: function readBytes(a0, a1, a2) { const r4 = []; let r0 = 0; while (r0 < a2) { r4.push(a0[a1 + r0]); r0 = r0 + 1; } return r4; }, pad: function pad(a0) { return a0.length < 2 ? "0" + a0 : a0; }, readUTF8: function readUTF8(a0, a1, a2) { let r23; let r11 = 0; const r12 = 0 < a2; let r5 = ""; let r6 = ""; if (r12) { do { r5 = r5 + ("%" + c1595_0.pad(a0[a1 + r11].toString(16))); r11 = r11 + 1; r6 = r5; } while (r11 < a2); } try { r23 = decodeURIComponent(r6); } catch ($e) { return c1595_0.readASCII(a0, a1, a2); } return r23; } }; const r29 = Uint16Array; const r30 = Uint32Array; c1596_0 = { m: new r29(16), v: new r29(16), d: [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], o: [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 999, 999, 999], z: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0, 0], B: new r29(32), p: [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 65535, 65535], w: [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 0, 0], h: new r30(32), g: new r29(512), s: [], A: new r29(32), t: [], k: new r29(32768), c: [], a: [], n: new r29(32768), e: [], C: new r29(512), b: [], i: new r29(32768), r: new r30(286), f: new r30(30), l: new r30(19), u: new r30(15000), q: new r29(65536), j: new r29(32768) }; let r1 = 0; while (true) { const r139 = (2863311530 & r1) >>> 1 | (1431655765 & r1) << 1; const r144 = (3435973836 & r139) >>> 2 | (858993459 & r139) << 2; const r149 = (4042322160 & r144) >>> 4 | (252645135 & r144) << 4; const r154 = (4278255360 & r149) >>> 8 | (16711935 & r149) << 8; c1596_0.i[r1] = (r154 >>> 16 | r154 << 16) >>> 17; r1 = r1 + 1; let r160 = 0; if (!(r1 < 32768)) { while (true) { c1596_0.B[r160] = c1596_0.o[r160] << 3 | c1596_0.z[r160]; c1596_0.h[r160] = c1596_0.p[r160] << 4 | c1596_0.w[r160]; r160 = r160 + 1; if (!(r160 < 32)) { const r175 = c1596_0.s; let r176 = 143; while (true) { r175.push(0, 8); const r179 = r176 - 1; const r180 = r176; r176 = r179; if (r180 === 0) { const r181 = c1596_0.s; let r182 = 111; while (true) { r181.push(0, 9); const r186 = r182 - 1; const r187 = r182; r182 = r186; if (r187 === 0) { const r188 = c1596_0.s; let r189 = 23; while (true) { r188.push(0, 7); const r193 = r189 - 1; const r194 = r189; r189 = r193; if (r194 === 0) { const r195 = c1596_0.s; let r196 = 7; while (true) { r195.push(0, 8); const r199 = r196 - 1; const r200 = r196; r196 = r199; if (r200 === 0) { const r201 = c1596_0.s; const length = r201.length; const r203 = c1596_0.v; let r204 = 0; while (true) { r203[r204] = 0; r204 = r204 + 1; if (!(r204 <= 9)) { const r22 = 1 < length; let r205 = 1; if (r22) { do { const r33 = r201[r205]; r203[r33] = r203[r33] + 1; r205 = r205 + 2; } while (r205 < length); } const r208 = c1596_0.m; r203[0] = 0; let r209 = 1; let r210 = 0; while (true) { const r214 = r210 + r203[r209 - 1] << 1; r208[r209] = r214; r209 = r209 + 1; r210 = r214; if (!(r209 <= 9)) { const r215 = 0 < length; let r216 = 0; if (r215) { do { const r218 = r201[r216 + 1]; const r219 = r216; if (r218 != 0) { r201[r219] = r208[r218]; r208[r218] = r208[r218] + 1; } r216 = r219 + 2; } while (r216 < length); } const { s: r223, g: r224 } = c1596_0; const length2 = r223.length; const r226 = c1596_0.i; const r227 = 0 < length2; let r229 = 0; if (r227) { do { const r230 = r229 + 1; const r231 = r223[r230]; const r232 = r229; if (r231 != 0) { const r233 = r223[r230]; const r236 = r232 >> 1 << 4 | r233; const r237 = 9 - r233; let r239 = r223[r232] << r237; const r241 = r239 + (1 << r237); while (r239 !== r241) { r224[r226[r239] >>> 6] = r236; r239 = r239 + 1; } } r229 = r232 + 2; } while (r229 < length2); } const { s: r244, i: r245 } = c1596_0; const r247 = 0 < r244.length; let r248 = 0; if (r247) { do { r244[r248] = r245[r244[r248] << 9 - r244[r248 + 1]] >>> 6; r248 = r248 + 2; } while (r248 < r244.length); } const r257 = c1596_0.t; let r258 = 31; while (true) { r257.push(0, 5); const r262 = r258 - 1; const r263 = r258; r258 = r262; if (r263 === 0) { const r264 = c1596_0.t; const length3 = r264.length; const r266 = c1596_0.v; let r267 = 0; while (true) { r266[r267] = 0; r267 = r267 + 1; if (!(r267 <= 5)) { const r268 = 1 < length3; let r269 = 1; if (r268) { do { const r270 = r264[r269]; r266[r270] = r266[r270] + 1; r269 = r269 + 2; } while (r269 < length3); } const r273 = c1596_0.m; r266[0] = 0; let r274 = 1; let r275 = 0; while (true) { const r279 = r275 + r266[r274 - 1] << 1; r273[r274] = r279; r274 = r274 + 1; r275 = r279; if (!(r274 <= 5)) { const r280 = 0 < length3; let r281 = 0; if (r280) { do { const r283 = r264[r281 + 1]; const r284 = r281; if (r283 != 0) { r264[r284] = r273[r283]; r273[r283] = r273[r283] + 1; } r281 = r284 + 2; } while (r281 < length3); } const { t: r288, A: r289 } = c1596_0; const length4 = r288.length; const r291 = c1596_0.i; const r292 = 0 < length4; let r294 = 0; if (r292) { do { const r295 = r294 + 1; const r296 = r288[r295]; const r297 = r294; if (r296 != 0) { const r298 = r288[r295]; const r301 = r297 >> 1 << 4 | r298; const r302 = 5 - r298; let r304 = r288[r297] << r302; const r306 = r304 + (1 << r302); while (r304 !== r306) { r289[r291[r304] >>> 10] = r301; r304 = r304 + 1; } } r294 = r297 + 2; } while (r294 < length4); } const { t: r309, i: r310 } = c1596_0; const r312 = 0 < r309.length; let r313 = 0; if (r312) { do { r309[r313] = r310[r309[r313] << 5 - r309[r313 + 1]] >>> 10; r313 = r313 + 2; } while (r313 < r309.length); } const r322 = c1596_0.b; let r323 = 18; while (true) { r322.push(0, 0); const r326 = r323 - 1; const r327 = r323; r323 = r326; if (r327 === 0) { const r328 = c1596_0.c; let r329 = 285; while (true) { r328.push(0, 0); const r332 = r329 - 1; const r333 = r329; r329 = r332; if (r333 === 0) { const r334 = c1596_0.e; let r335 = 29; while (true) { r334.push(0, 0); const r338 = r335 - 1; const r339 = r335; r335 = r338; if (r339 === 0) { const r340 = c1596_0.a; let r341 = 319; while (true) { r340.push(0, 0); const r344 = r341 - 1; const r345 = r341; r341 = r344; if (r345 === 0) { let _copyTile2, _bin, _paeth2, c1597_3, dither2, _main2, compressPNG2, compress2, _updateFrame2, quantize2, findNearest2, getKDtree2, getNearest2, vecDot2, stats2, estats2, c1597_16; const _paeth = function _paeth(a0, a1, a2) { let r0 = a0; let r1 = a2; const r8 = a0 + a1 - a2; const r5 = r8 - a0; const r4 = r8 - a1; const r9 = r8 - a2; if (!(r5 * r5 <= r4 * r4 && r5 * r5 <= r9 * r9)) { if (r4 * r4 <= r9 * r9) { r1 = a1; } r0 = r1; } return r0; }; c1595_4 = function v(a0, a1) { let r18, r30, r31, r32, r43, r44, r45, r141, r142, r143, r144, r158, r159, r160, r285, r286, r316, r317; let r59 = a1; const r60 = Uint8Array; if (a0[0] == 3 && a0[1] == 0) { if (!a1) { r59 = new r60(0); } return r59; } const r89 = a1 == null; let r73 = r89 ? new r60(a0.length >>> 2 << 3) : a1; let r71 = void 0; let r38 = 0; let r39 = 0; let r40 = 0; let r41 = 0; let r70 = void 0; while (true) { L107: { const r93 = r38 >>> 3; r43 = a0[r93] | a0[1 + r93] << 8; r44 = a0[2 + r93] << 16; const r99 = r38 + 1; const r100 = r99 >>> 3; const r10 = (a0[r100] | a0[1 + r100] << 8 | a0[2 + r100] << 16) >>> (7 & r99) & 3; const r11 = r38 + 3; r45 = r38; const r27 = r39; let r17 = r40; let r111 = r41; let r63 = r71; let r112 = r70; const r69 = r73; if (r10 !== 0) { let r79 = r69; if (r89) { const r145 = r27 + 131072; const length2 = r69.length; let r146 = r69; if (!(r145 <= length2)) { const uint8Array2 = new Uint8Array(Math.max(length2 << 1, r145)); uint8Array2.set(r69, 0); r146 = uint8Array2; } r79 = r146; } if (r10 === 1) { r112 = c1596_0.g; r63 = c1596_0.A; r17 = 31; r111 = 511; } L96: { r158 = r11; r159 = r27; r160 = r79; if (r10 === 2) { const r161 = r11 >>> 3; const r9 = a0[r161] | a0[1 + r161] << 8; const r23 = r11 + 5; const r166 = r23 >>> 3; const r2 = a0[r166] | a0[1 + r166] << 8; const r171 = r11 + 10; const r172 = r171 >>> 3; const r177 = a0[r172] | a0[1 + r172] << 8; let r6 = 0; while (true) { c1596_0.b[r6] = 0; c1596_0.b[r6 + 1] = 0; r6 = r6 + 2; if (!(r6 < 38)) { const r184 = (r177 >>> (7 & r171) & 15) + 4; const r185 = r11 + 14; let r1 = 0; let r186 = 1; let r187 = 1; while (r1 < r184) { const r188 = r185 + 3 * r1; const r5 = r188 >>> 3; const r8 = (a0[r5] | a0[1 + r5] << 8) >>> (7 & r188) & 7; c1596_0.b[1 + (c1596_0.d[r1] << 1)] = r8; const r202 = r1; let r203 = r186; if (r203 < r8) { r203 = r8; } r1 = r202 + 1; r186 = r203; r187 = r186; } const r205 = c1596_0.b; const length3 = r205.length; const r207 = c1596_0.v; let r208 = 0; while (r208 <= r187) { r207[r208] = 0; r208 = r208 + 1; } const r57 = 1 < length3; let r209 = 1; if (r57) { do { const r78 = r205[r209]; r207[r78] = r207[r78] + 1; r209 = r209 + 2; } while (r209 < length3); } const r213 = c1596_0.m; r207[0] = 0; let r214 = 1; let r215 = 0; while (r214 <= r187) { const r219 = r215 + r207[r214 - 1] << 1; r213[r214] = r219; r214 = r214 + 1; r215 = r219; } const r220 = 0 < length3; let r221 = 0; if (r220) { do { const r223 = r205[r221 + 1]; const r224 = r221; if (r223 != 0) { r205[r224] = r213[r223]; r213[r223] = r213[r223] + 1; } r221 = r224 + 2; } while (r221 < length3); } const { b: r228, C: r229 } = c1596_0; const length4 = r228.length; const r232 = c1596_0.i; const r233 = 0 < length4; const r234 = 15 - r187; let r235 = 0; if (r233) { do { const r236 = r235 + 1; const r237 = r228[r236]; const r238 = r235; if (r237 != 0) { const r239 = r228[r236]; const r7 = r238 >> 1 << 4 | r239; const r242 = r187 - r239; let r244 = r228[r238] << r242; const r246 = r244 + (1 << r242); while (r244 !== r246) { r229[r232[r244] >>> r234] = r7; r244 = r244 + 1; } } r235 = r238 + 2; } while (r235 < length4); } const r251 = (r9 >>> (7 & r11) & 31) + 257; const r255 = (r2 >>> (7 & r23) & 31) + 1; const r257 = r185 + 3 * r184; const { k: r258, n: r259, C: r260 } = c1596_0; const r262 = (1 << r187) - 1; const r263 = r251 + r255; const r264 = c1596_0.a; let r265 = 0; let r266 = r257; let r267 = r266; while (r265 < r263) { const r268 = r266 >>> 3; const r280 = r260[(a0[r268] | a0[1 + r268] << 8 | a0[2 + r268] << 16) >>> (7 & r266) & r262]; const r282 = r266 + (15 & r280); const r283 = r280 >>> 4; const r284 = r265; if (r283 <= 15) { r264[r284] = r283; r317 = r284 + 1; r316 = r282; } else { if (r283 === 16) { const r304 = r282 >>> 3; r285 = 3 + ((a0[r304] | a0[1 + r304] << 8) >>> (7 & r282) & 3); r18 = r282 + 2; r286 = r264[r284 - 1]; } else if (r283 === 17) { const r295 = r282 >>> 3; r285 = 3 + ((a0[r295] | a0[1 + r295] << 8) >>> (7 & r282) & 7); r18 = r282 + 3; r286 = 0; } else { r285 = 0; r286 = 0; r18 = r282; if (r283 === 18) { const r287 = r282 >>> 3; r285 = 11 + ((a0[r287] | a0[1 + r287] << 8) >>> (7 & r282) & 127); r18 = r282 + 7; r286 = 0; } } const r314 = r284 + r285; let r315 = r284; r316 = r18; r317 = r315; while (r317 < r314) { r264[r315] = r286; r315 = r315 + 1; r316 = r18; r317 = r315; } } r265 = r317; r266 = r316; r267 = r266; } const { a: r318, c: r319 } = c1596_0; const r321 = r319.length >>> 1; let r322 = 0; let r323 = 0; let r324 = 0; let r325 = 0; while (r324 < r251) { const r82 = r318[r322 + 0]; const r327 = r322 << 1; r319[r327] = 0; r319[1 + r327] = r82; const r329 = r322; let r330 = r323; if (r82 > r330) { r330 = r82; } r322 = r329 + 1; r323 = r330; r325 = r323; r324 = r322; } while (r324 < r321) { const r331 = r324 << 1; r319[r331] = 0; r319[1 + r331] = 0; r324 = r324 + 1; } const r333 = 1 << r325; const { a: r334, e: r335 } = c1596_0; const r337 = r335.length >>> 1; let r338 = 0; let r339 = 0; let r340 = 0; let r341 = 0; while (r340 < r255) { const r83 = r334[r338 + r251]; const r343 = r338 << 1; r335[r343] = 0; r335[1 + r343] = r83; const r345 = r338; let r346 = r339; if (r83 > r346) { r346 = r83; } r338 = r345 + 1; r339 = r346; r341 = r339; r340 = r338; } while (r340 < r337) { const r347 = r340 << 1; r335[r347] = 0; r335[1 + r347] = 0; r340 = r340 + 1; } const r349 = 1 << r341; const r350 = c1596_0.c; const length5 = r350.length; const r353 = c1596_0.v; const r354 = 0 <= r325; let r355 = 0; if (r354) { do { r353[r355] = 0; r355 = r355 + 1; } while (r355 <= r325); } const r356 = 1 < length5; let r357 = 1; if (r356) { do { const r358 = r350[r357]; r353[r358] = r353[r358] + 1; r357 = r357 + 2; } while (r357 < length5); } const r362 = c1596_0.m; r353[0] = 0; const r363 = 1 <= r325; let r364 = 1; let r365 = 0; if (r363) { do { const r369 = r365 + r353[r364 - 1] << 1; r362[r364] = r369; r364 = r364 + 1; r365 = r369; } while (r364 <= r325); } const r370 = 0 < length5; let r371 = 0; if (r370) { do { const r373 = r350[r371 + 1]; const r374 = r371; if (r373 != 0) { r350[r374] = r362[r373]; r362[r373] = r362[r373] + 1; } r371 = r374 + 2; } while (r371 < length5); } const r378 = c1596_0.c; const length6 = r378.length; const r381 = c1596_0.i; const r382 = 0 < length6; let r383 = 0; if (r382) { do { const r384 = r383 + 1; const r385 = r378[r384]; const r386 = r383; if (r385 != 0) { const r387 = r378[r384]; const r390 = r386 >> 1 << 4 | r387; const r391 = r325 - r387; let r393 = r378[r386] << r391; const r395 = r393 + (1 << r391); while (r393 != r395) { r258[r381[r393] >>> 15 - r325] = r390; r393 = r393 + 1; } } r383 = r386 + 2; } while (r383 < length6); } const r399 = c1596_0.e; const length7 = r399.length; const r402 = c1596_0.v; const r403 = 0 <= r341; let r404 = 0; if (r403) { do { r402[r404] = 0; r404 = r404 + 1; } while (r404 <= r341); } const r405 = 1 < length7; let r406 = 1; if (r405) { do { const r407 = r399[r406]; r402[r407] = r402[r407] + 1; r406 = r406 + 2; } while (r406 < length7); } const r411 = c1596_0.m; r402[0] = 0; const r412 = 1 <= r341; let r413 = 1; let r414 = 0; if (r412) { do { const r418 = r414 + r402[r413 - 1] << 1; r411[r413] = r418; r413 = r413 + 1; r414 = r418; } while (r413 <= r341); } const r419 = 0 < length7; let r420 = 0; if (r419) { do { const r422 = r399[r420 + 1]; const r423 = r420; if (r422 != 0) { r399[r423] = r411[r422]; r411[r422] = r411[r422] + 1; } r420 = r423 + 2; } while (r420 < length7); } const r427 = r333 - 1; const r428 = r349 - 1; const r429 = c1596_0.e; const length8 = r429.length; const r432 = c1596_0.i; const r433 = 0 < length8; let r434 = 0; r158 = r267; r159 = r27; r17 = r428; r111 = r427; r63 = r259; r112 = r258; r160 = r79; if (!r433) { break; } while (true) { const r435 = r434 + 1; const r436 = r429[r435]; const r437 = r434; if (r436 != 0) { const r438 = r429[r435]; const r441 = r437 >> 1 << 4 | r438; const r442 = r341 - r438; let r444 = r429[r437] << r442; const r446 = r444 + (1 << r442); while (r444 != r446) { r259[r432[r444] >>> 15 - r341] = r441; r444 = r444 + 1; } } r434 = r437 + 2; r158 = r267; r159 = r27; r17 = r428; r111 = r427; r63 = r259; r112 = r258; r160 = r79; if (!(r434 < length8)) { break L96; } } } } } } loop96: while (true) { const r450 = r158 >>> 3; const r463 = r112[(a0[r450] | a0[1 + r450] << 8 | a0[2 + r450] << 16) >>> (7 & r158) & r111]; const r465 = r158 + (15 & r463); const r466 = r463 >>> 4; const r467 = r466 >>> 8; const r468 = r159; const r469 = r17; const r470 = r111; const r471 = r63; const r472 = r112; const r473 = r160; if (r467 === 0) { r159 = r468 + 1; r473[r468] = r466; r158 = r465; r17 = r469; r111 = r470; r63 = r471; r112 = r472; r160 = r473; } else { r30 = r465; r141 = r468; r31 = r469; r32 = r470; r143 = r471; r144 = r472; r142 = r473; if (r466 === 256) { break L107; } let r475 = r468 + r466 - 254; let r476 = r465; if (264 < r466) { const r480 = c1596_0.B[r466 - 257]; const r481 = r480 >>> 3; const r482 = 7 & r480; const r483 = r465 >>> 3; r475 = r468 + r481 + ((a0[r483] | a0[1 + r483] << 8) >>> (7 & r465) & (1 << r482) - 1); r476 = r465 + (7 & r480); } const r496 = r476 >>> 3; const r509 = r471[(a0[r496] | a0[1 + r496] << 8 | a0[2 + r496] << 16) >>> (7 & r476) & r469]; const r511 = r476 + (15 & r509); const r515 = c1596_0.h[r509 >>> 4]; const r516 = r515 >>> 4; const r517 = 15 & r515; const r518 = r511 >>> 3; const r533 = r516 + ((a0[r518] | a0[1 + r518] << 8 | a0[2 + r518] << 16) >>> (7 & r511) & (1 << r517) - 1); const r534 = 15 & r515; let r535 = r473; if (r89) { const r536 = r468 + 131072; const length9 = r473.length; let r538 = r473; if (!(r536 <= length9)) { const uint8Array3 = new Uint8Array(Math.max(length9 << 1, r536)); uint8Array3.set(r473, 0); r538 = uint8Array3; } r535 = r538; } const r550 = r511 + r534; r158 = r550; r159 = r475; r17 = r469; r111 = r470; r63 = r471; r112 = r472; r160 = r535; let r551 = r468; if (r468 < r475) { while (true) { const r552 = r551 + 1; r535[r551] = r535[r551 - r533]; const r555 = r552 + 1; r535[r552] = r535[r552 - r533]; const r558 = r555 + 1; r535[r555] = r535[r555 - r533]; r551 = r558 + 1; r535[r558] = r535[r558 - r533]; r158 = r550; r17 = r469; r111 = r470; r63 = r471; r112 = r472; r160 = r535; r159 = r475; if (!(r551 < r159)) { continue loop96; } } } } } } else { const r113 = 7 & r11; const r117 = 4 + ((r113 ? r11 + (8 - r113) : r11) >>> 3); const r122 = a0[r117 - 4] | a0[r117 - 3] << 8; let r123 = r69; if (r89) { const r29 = r27 + r122; const length = r69.length; let r124 = r69; if (!(r29 <= length)) { const uint8Array = new Uint8Array(Math.max(length << 1, r29)); uint8Array.set(r69, 0); r124 = uint8Array; } r123 = r124; } r123.set(new r60(a0.buffer, a0.byteOffset + r117, r122), r27); r30 = r117 + r122 << 3; r141 = r27 + r122; r142 = r123; r31 = r17; r32 = r111; r143 = r63; r144 = r112; } } const r566 = (r43 | r44) >>> (7 & r45) & 1; r38 = r30; r40 = r31; r41 = r32; r71 = r143; r70 = r144; r39 = r141; r73 = r142; if (r566 !== 0) { return r142.length != r141 ? r142.slice(0, r141) : r142; } } }; const exports2 = { decode: function decode(a0) { let r53, r55, r56, r91, r92, r177, r201, r295, r307, length; const uint8Array = new Uint8Array(a0); const { readUshort: readUshort2, readUint: readUint2 } = c1595_0; const r74 = { tabs: {}, frames: [] }; const uint8Array2 = new Uint8Array(uint8Array.length); const r6 = [137, 80, 78, 71, 13, 10, 26, 10]; let r80 = 0; while (true) { const r11 = uint8Array[r80]; const r10 = r6[r80]; const r7 = r80; if (r11 != r10) { throw "The input is not a PNG file!"; } r80 = r7 + 1; if (!(r80 < 8)) { const r83 = 8 < uint8Array.length; let r12 = 0; let r84 = 0; let r85 = 8; let r86 = void 0; let r87 = 0; let r88 = void 0; if (r83) { do { L80: { r53 = c1595_0.readUint(uint8Array, r85); const r90 = r85 + 4; const r62 = c1595_0.readASCII(uint8Array, r90, 4); r91 = r90 + 4; const r59 = r12; const r58 = r84; const r57 = r86; if (r62 == "IHDR") { _IHDR(uint8Array, r91, r74); r55 = r59; r56 = r58; r92 = r57; } else if (r62 == "iCCP") { const r291 = uint8Array[r91]; let r292 = r91; let r293 = r292; if (r291 != 0) { do { const r294 = r292 + 1; r295 = uint8Array[r294]; r292 = r294; r293 = r292; } while (r295 != 0); } c1595_0.readASCII(uint8Array, r91, r293 - r91); uint8Array[r293 + 1]; const r304 = uint8Array.slice(r293 + 2, r91 + r53); try { r307 = _inflate(r304); } catch ($e) { r307 = c1595_4(r304); } r74.tabs[r62] = r307; r55 = r59; r56 = r58; r92 = r57; } else if (r62 == "CgBI") { r74.tabs[r62] = uint8Array.slice(r91, r91 + 4); r55 = r59; r56 = r58; r92 = r57; } else if (r62 == "IDAT") { const r282 = 0 < r53; let r283 = 0; if (r282) { do { uint8Array2[r58 + r283] = uint8Array[r91 + r283]; r283 = r283 + 1; } while (r283 < r53); } r56 = r58 + r53; r55 = r59; r92 = r57; } else if (r62 == "acTL") { r74.tabs[r62] = { num_frames: readUint2(uint8Array, r91), num_plays: readUint2(uint8Array, r91 + 4) }; r92 = new Uint8Array(uint8Array.length); r55 = r59; r56 = r58; } else if (r62 == "fcTL") { let r234 = r59; if (r59 !== 0) { const r239 = r74.frames[r74.frames.length - 1]; r239.data = _decompress(r74, r57.slice(0, r59), r239.rect.width, r239.rect.height); r234 = 0; } const rect = { x: readUint2(uint8Array, r91 + 12), y: readUint2(uint8Array, r91 + 16), width: readUint2(uint8Array, r91 + 4), height: readUint2(uint8Array, r91 + 8) }; const r257 = readUshort2(uint8Array, r91 + 22); r74.frames.push({ rect, delay: 1000 * (readUshort2(uint8Array, r91 + 20) / (r257 == 0 ? 100 : r257)), dispose: uint8Array[r91 + 24], blend: uint8Array[r91 + 25] }); r55 = r234; r56 = r58; r92 = r57; } else if (r62 == "fdAT") { const r226 = r53 - 4; let r227 = 0; if (0 < r226) { do { r57[r59 + r227] = uint8Array[r91 + r227 + 4]; r227 = r227 + 1; } while (r227 < r53 - 4); } r55 = r59 + (r53 - 4); r56 = r58; r92 = r57; } else if (r62 == "pHYs") { r74.tabs[r62] = [c1595_0.readUint(uint8Array, r91), c1595_0.readUint(uint8Array, r91 + 4), uint8Array[r91 + 8]]; r55 = r59; r56 = r58; r92 = r57; } else if (r62 == "cHRM") { r74.tabs[r62] = []; let r208 = 0; do { r74.tabs[r62].push(c1595_0.readUint(uint8Array, r91 + 4 * r208)); r208 = r208 + 1; r55 = r59; r56 = r58; r92 = r57; } while (r208 < 8); } else { if (r62 != "tEXt" && r62 != "zTXt") { if (r62 == "iTXt") { if (r74.tabs[r62] == null) { r74.tabs[r62] = {}; } const r148 = c1595_0.nextZero(uint8Array, r91); const r151 = c1595_0.readASCII(uint8Array, r91, r148 - r91); const r152 = r148 + 1; const r153 = uint8Array[r152]; uint8Array[r152 + 1]; const r66 = r152 + 2; const r157 = c1595_0.nextZero(uint8Array, r66); c1595_0.readASCII(uint8Array, r66, r157 - r66); const r161 = r157 + 1; const r163 = c1595_0.nextZero(uint8Array, r161); c1595_0.readUTF8(uint8Array, r161, r163 - r161); const r167 = r163 + 1; const r169 = r53 - (r167 - r91); if (r153 == 0) { r177 = c1595_0.readUTF8(uint8Array, r167, r169); } else { const r174 = _inflate(uint8Array.slice(r167, r167 + r169)); r177 = c1595_0.readUTF8(r174, 0, r174.length); } r74.tabs[r62][r151] = r177; r55 = r59; r56 = r58; r92 = r57; break L80; } if (r62 == "PLTE") { r74.tabs[r62] = c1595_0.readBytes(uint8Array, r91, r53); r55 = r59; r56 = r58; r92 = r57; break L80; } if (r62 != "hIST") { if (r62 == "tRNS") { if (r74.ctype == 3) { r74.tabs[r62] = c1595_0.readBytes(uint8Array, r91, r53); r55 = r59; r56 = r58; r92 = r57; break L80; } if (r74.ctype == 0) { r74.tabs[r62] = readUshort2(uint8Array, r91); r55 = r59; r56 = r58; r92 = r57; break L80; } const ctype2 = r74.ctype; r55 = r59; r56 = r58; r92 = r57; if (ctype2 != 2) { break L80; } r74.tabs[r62] = [readUshort2(uint8Array, r91), readUshort2(uint8Array, r91 + 2), readUshort2(uint8Array, r91 + 4)]; r55 = r59; r56 = r58; r92 = r57; break L80; } if (r62 == "gAMA") { r74.tabs[r62] = c1595_0.readUint(uint8Array, r91) / 100000; r55 = r59; r56 = r58; r92 = r57; break L80; } if (r62 == "sRGB") { r74.tabs[r62] = uint8Array[r91]; r55 = r59; r56 = r58; r92 = r57; break L80; } if (r62 == "bKGD") { if (r74.ctype != 0 && r74.ctype != 4) { if (r74.ctype != 2 && r74.ctype != 6) { const ctype = r74.ctype; r55 = r59; r56 = r58; r92 = r57; if (ctype != 3) { break L80; } r74.tabs[r62] = uint8Array[r91]; r55 = r59; r56 = r58; r92 = r57; break L80; } r74.tabs[r62] = [readUshort2(uint8Array, r91), readUshort2(uint8Array, r91 + 2), readUshort2(uint8Array, r91 + 4)]; r55 = r59; r56 = r58; r92 = r57; break L80; } r74.tabs[r62] = [readUshort2(uint8Array, r91)]; r55 = r59; r56 = r58; r92 = r57; break L80; } r55 = r59; r56 = r58; r92 = r57; r87 = r55; r88 = r92; if (r62 == "IEND") { break; } break L80; } const r131 = r74.tabs.PLTE.length / 3; r74.tabs[r62] = []; let r134 = 0; r55 = r59; r56 = r58; r92 = r57; if (!(0 < r131)) { break L80; } while (true) { r74.tabs[r62].push(readUshort2(uint8Array, r91 + 2 * r134)); r134 = r134 + 1; r55 = r59; r56 = r58; r92 = r57; if (!(r134 < r131)) { break L80; } } } if (r74.tabs[r62] == null) { r74.tabs[r62] = {}; } const r186 = c1595_0.nextZero(uint8Array, r91); const r189 = c1595_0.readASCII(uint8Array, r91, r186 - r91); const r192 = r91 + r53 - r186 - 1; if (r62 == "tEXt") { r201 = c1595_0.readASCII(uint8Array, r186 + 1, r192); } else { const r198 = _inflate(uint8Array.slice(r186 + 2, r186 + 2 + r192)); r201 = c1595_0.readUTF8(r198, 0, r198.length); } r74.tabs[r62][r189] = r201; r55 = r59; r56 = r58; r92 = r57; } } const r314 = r91 + r53; c1595_0.readUint(uint8Array, r314); r85 = r314 + 4; length = uint8Array.length; r12 = r55; r84 = r56; r86 = r92; r87 = r12; r88 = r86; } while (r85 < length); } if (r87 !== 0) { const r322 = r74.frames[r74.frames.length - 1]; r322.data = _decompress(r74, r88.slice(0, r87), r322.rect.width, r322.rect.height); } r74.data = _decompress(r74, uint8Array2, r74.width, r74.height); delete r74["compress"]; delete r74["interlace"]; delete r74["filter"]; return r74; } } }, toRGBA8: function toRGBA8(a0) { const { width, height } = a0; if (a0.tabs.acTL == null) { return [decodeImage(a0.data, width, height, a0).buffer]; } if (a0.frames[0].data == null) { a0.frames[0].data = a0.data; } const r42 = []; const r5 = width * height * 4; const uint8Array = new Uint8Array(r5); const uint8Array2 = new Uint8Array(r5); const uint8Array3 = new Uint8Array(r5); const r9 = 0 < a0.frames.length; let r60 = 0; if (r9) { do { const r62 = a0.frames[r60]; const r22 = r62.rect.x; const r21 = r62.rect.y; const width2 = r62.rect.width; const height2 = r62.rect.height; const r69 = decodeImage(r62.data, width2, height2, a0); const r4 = r60; if (r4 !== 0) { let r0 = 0; while (r0 < r5) { uint8Array3[r0] = uint8Array[r0]; r0 = r0 + 1; } } if (r62.blend == 0) { _copyTile(r69, width2, height2, uint8Array, width, height, r22, r21, 0); } else if (r62.blend == 1) { _copyTile(r69, width2, height2, uint8Array, width, height, r22, r21, 1); } r42.push(uint8Array.buffer.slice(0)); if (r62.dispose != 0) { if (r62.dispose == 1) { _copyTile(uint8Array2, width2, height2, uint8Array, width, height, r22, r21, 0); } else if (r62.dispose == 2) { let r98 = 0; while (r98 < r5) { uint8Array[r98] = uint8Array3[r98]; r98 = r98 + 1; } } } r60 = r4 + 1; } while (r60 < a0.frames.length); } return r42; }, _paeth, _copyTile, _bin: c1595_0 }; _copyTile2 = void 0; _bin = void 0; _paeth2 = void 0; c1597_3 = void 0; c1597_16 = void 0; dither2 = function dither(a0, a1, a2, a3, a4, a5, a6) { let r130; const r31 = a6 == null ? 1 : a6; const length = a3.length; const r28 = []; const r22 = []; const r44 = 0 < length; let r16 = 0; if (r44) { do { const r25 = a3[r16]; r28.push([r25 >>> 0 & 255, r25 >>> 8 & 255, r25 >>> 16 & 255, r25 >>> 24 & 255]); r16 = r16 + 1; } while (r16 < length); } const r53 = 0 < length; let r55 = 0; if (r53) { do { const r56 = 0 < length; const r57 = r55; let r58 = 0; let r59 = 4294967295; let r60 = 4294967295; if (r56) { do { const r36 = r28[r57]; const r61 = r28[r58]; const r35 = r36[0] - r61[0]; const r64 = r36[1] - r61[1]; const r66 = r36[2] - r61[2]; const r69 = r36[3] - r61[3]; const r76 = r35 * r35 + r64 * r64 + r66 * r66 + r69 * r69; let r77 = r58 !== r57; const r6 = r58; let r78 = r59; if (r6 !== r57) { r77 = r76 < r78; } if (r77) { r78 = r76; } r58 = r6 + 1; r59 = r78; r60 = r59; } while (r58 < length); } const r82 = Math.sqrt(r60) / 2; r22[r57] = ~~(r82 * r82); r55 = r57 + 1; } while (r55 < length); } const uint32Array = new Uint32Array(a4.buffer); const int16Array = new Int16Array(a1 * a2 * 4); const r101 = [0, 8, 2, 10, 12, 4, 14, 6, 3, 11, 1, 9, 15, 7, 13, 5]; const r103 = 0 < r101.length; let r105 = 0; if (r103) { do { r101[r105] = 255 * ((r101[r105] + 0.5) / 16 - 0.5); r105 = r105 + 1; } while (r105 < r101.length); } const r112 = 0 < a2; let r117 = 0; if (r112) { do { const r118 = 0 < a1; const r19 = 4 * (3 & r117); const r119 = r117; let r14 = 0; if (r118) { do { const r8 = 4 * (r119 * a1 + r14); const r121 = r14; if (r31 != 2) { const r166 = [Math.max(0, Math.min(255, a0[r8] + int16Array[r8])), , , ,]; const r167 = r8 + 1; r166[1] = Math.max(0, Math.min(255, a0[r167] + int16Array[r167])); const r177 = r8 + 2; r166[2] = Math.max(0, Math.min(255, a0[r177] + int16Array[r177])); const r187 = r8 + 3; r166[3] = Math.max(0, Math.min(255, a0[r187] + int16Array[r187])); r130 = r166; } else { const r123 = r101[r19 + (3 & r121)]; r130 = [Math.max(0, Math.min(255, a0[r8] + r123)), Math.max(0, Math.min(255, a0[r8 + 1] + r123)), Math.max(0, Math.min(255, a0[r8 + 2] + r123)), Math.max(0, Math.min(255, a0[r8 + 3] + r123))]; } const r197 = 0 < length; let r198 = 16777215; let r0 = 0; let r1 = 0; let r199 = 0; if (r197) { do { const r200 = r28[r0]; const r203 = r130[0] - r200[0]; const r206 = r130[1] - r200[1]; const r209 = r130[2] - r200[2]; const r212 = r130[3] - r200[3]; const r219 = r203 * r203 + r206 * r206 + r209 * r209 + r212 * r212; let r220 = r198; const r3 = r0; let r2 = r1; if (r219 < r220) { r220 = r219; r2 = r3; } r0 = r3 + 1; r198 = r220; r1 = r2; r199 = r1; } while (r0 < length); } const r221 = r28[r199]; const r225 = [r130[0] - r221[0], r130[1] - r221[1], r130[2] - r221[2], r130[3] - r221[3]]; if (r31 == 1) { if (r121 !== a1 - 1) { const r236 = r8 + 4; int16Array[r236] = int16Array[r236] + (r225[0] * 7 >> 4); const r242 = r236 + 1; int16Array[r242] = int16Array[r242] + (r225[1] * 7 >> 4); const r248 = r236 + 2; int16Array[r248] = int16Array[r248] + (r225[2] * 7 >> 4); const r254 = r236 + 3; int16Array[r254] = int16Array[r254] + (r225[3] * 7 >> 4); } if (r119 !== a2 - 1) { if (r121 !== 0) { const r263 = r8 + 4 * a1 - 4; int16Array[r263] = int16Array[r263] + (r225[0] * 3 >> 4); const r269 = r263 + 1; int16Array[r269] = int16Array[r269] + (r225[1] * 3 >> 4); const r275 = r263 + 2; int16Array[r275] = int16Array[r275] + (r225[2] * 3 >> 4); const r281 = r263 + 3; int16Array[r281] = int16Array[r281] + (r225[3] * 3 >> 4); } const r288 = r8 + 4 * a1; int16Array[r288] = int16Array[r288] + (r225[0] * 5 >> 4); const r294 = r288 + 1; int16Array[r294] = int16Array[r294] + (r225[1] * 5 >> 4); const r300 = r288 + 2; int16Array[r300] = int16Array[r300] + (r225[2] * 5 >> 4); const r306 = r288 + 3; int16Array[r306] = int16Array[r306] + (r225[3] * 5 >> 4); if (r121 !== a1 - 1) { const r315 = r8 + 4 * a1 + 4; int16Array[r315] = int16Array[r315] + (r225[0] * 1 >> 4); const r321 = r315 + 1; int16Array[r321] = int16Array[r321] + (r225[1] * 1 >> 4); const r327 = r315 + 2; int16Array[r327] = int16Array[r327] + (r225[2] * 1 >> 4); const r333 = r315 + 3; int16Array[r333] = int16Array[r333] + (r225[3] * 1 >> 4); } } } const r339 = r8 >> 2; a5[r339] = r199; uint32Array[r339] = a3[r199]; r14 = r121 + 1; } while (r14 < a1); } r117 = r119 + 1; } while (r117 < a2); } }; _main2 = function _main(a0, a1, a2, a3, a4) { let length2, length5; const r30 = a4 == null ? {} : a4; const crc2 = c1597_3.crc; const { writeUint: writeUint2, writeUshort: writeUshort2, writeASCII: writeASCII2 } = _bin; const r22 = a0.frames.length > 1; const r0 = 33 + (r22 ? 20 : 0); const r4 = r30.sRGB != null ? r0 + 13 : r0; const r52 = r30.pHYs != null ? r4 + 21 : r4; const r20 = r30.iCCP != null; let r27 = r52; let r25 = void 0; if (r20) { const r57 = pako.deflate(r30.iCCP); r27 = r52 + (21 + r57.length + 4); r25 = r57; } const r17 = a0.ctype == 3; let r64 = r27; let r65 = false; if (r17) { const length = a0.plte.length; const r16 = 0 < length; let r70 = 0; let r71 = false; let r18 = false; if (r16) { do { const r9 = a0.plte[r70] >>> 24; const r6 = r70; const r74 = r9 !== 255 ? true : r71; r70 = r6 + 1; r71 = r74; r18 = r71; } while (r70 < length); } r64 = r27 + (8 + 3 * length + 4 + (r18 ? 8 + 1 * length + 4 : 0)); r65 = r18; } const r88 = 0 < a0.frames.length; let r92 = r64; let r93 = 0; let r94 = r92; if (r88) { do { const r95 = r93; const r96 = r92; const r103 = (r22 ? r96 + 38 : r96) + (a0.frames[r95].cimg.length + 12); const r104 = r95 !== 0 ? r103 + 4 : r103; r93 = r95 + 1; length2 = a0.frames.length; r92 = r104; r94 = r92; } while (r93 < length2); } const uint8Array = new Uint8Array(r94 + 12); const r112 = [137, 80, 78, 71, 13, 10, 26, 10]; let r113 = 0; while (true) { uint8Array[r113] = r112[r113]; r113 = r113 + 1; if (!(r113 < 8)) { writeUint2(uint8Array, 8, 13); writeASCII2(uint8Array, 12, "IHDR"); writeUint2(uint8Array, 16, a1); writeUint2(uint8Array, 20, a2); uint8Array[24] = a0.depth; uint8Array[25] = a0.ctype; uint8Array[26] = 0; uint8Array[27] = 0; uint8Array[28] = 0; writeUint2(uint8Array, 29, crc2(uint8Array, 12, 17)); const r135 = r30.sRGB != null; let r136 = 33; if (r135) { writeUint2(uint8Array, 33, 1); writeASCII2(uint8Array, 37, "sRGB"); uint8Array[41] = r30.sRGB; writeUint2(uint8Array, 42, crc2(uint8Array, 37, 5)); r136 = 46; } const iCCP = r30.iCCP; let r147 = r136; if (iCCP != null) { const r149 = 13 + r25.length; writeUint2(uint8Array, r136, r149); const r151 = r136 + 4; writeASCII2(uint8Array, r151, "iCCP"); const r154 = r151 + 4; writeASCII2(uint8Array, r154, "ICC profile"); const r160 = r154 + 11 + 2; uint8Array.set(r25, r160); const r164 = r160 + r25.length; const r165 = r149 + 4; writeUint2(uint8Array, r164, crc2(uint8Array, r164 - r165, r165)); r147 = r164 + 4; } const pHYs = r30.pHYs; let r170 = r147; if (pHYs != null) { writeUint2(uint8Array, r147, 9); const r173 = r147 + 4; writeASCII2(uint8Array, r173, "pHYs"); const r176 = r173 + 4; writeUint2(uint8Array, r176, r30.pHYs[0]); const r180 = r176 + 4; writeUint2(uint8Array, r180, r30.pHYs[1]); const r184 = r180 + 4; uint8Array[r184] = r30.pHYs[2]; const r187 = r184 + 1; writeUint2(uint8Array, r187, crc2(uint8Array, r187 - 13, 13)); r170 = r187 + 4; } let r191 = r170; if (r22) { writeUint2(uint8Array, r170, 8); const r193 = r170 + 4; writeASCII2(uint8Array, r193, "acTL"); const r196 = r193 + 4; writeUint2(uint8Array, r196, a0.frames.length); const r202 = r30.loop != null ? r30.loop : 0; const r203 = r196 + 4; writeUint2(uint8Array, r203, r202); const r205 = r203 + 4; writeUint2(uint8Array, r205, crc2(uint8Array, r205 - 12, 12)); r191 = r205 + 4; } const ctype = a0.ctype; let r210 = r191; if (ctype == 3) { const length3 = a0.plte.length; writeUint2(uint8Array, r191, 3 * length3); const r215 = r191 + 4; writeASCII2(uint8Array, r215, "PLTE"); const r218 = r215 + 4; const r219 = 0 < length3; let r222 = 0; if (r219) { do { const r224 = a0.plte[r222]; const r13 = 255 & r224; const r225 = r224 >>> 8; const r226 = r224 >>> 16; const r227 = r218 + 3 * r222; uint8Array[r227 + 0] = r13; uint8Array[r227 + 1] = r225 & 255; uint8Array[r227 + 2] = r226 & 255; r222 = r222 + 1; } while (r222 < length3); } const r234 = r218 + 3 * length3; writeUint2(uint8Array, r234, crc2(uint8Array, r234 - 3 * length3 - 4, 3 * length3 + 4)); const r242 = r234 + 4; r210 = r242; if (r65) { writeUint2(uint8Array, r242, length3); const r244 = r242 + 4; writeASCII2(uint8Array, r244, "tRNS"); const r247 = r244 + 4; const r248 = 0 < length3; let r249 = 0; if (r248) { do { uint8Array[r247 + r249] = a0.plte[r249] >>> 24 & 255; r249 = r249 + 1; } while (r249 < length3); } const r255 = r247 + length3; writeUint2(uint8Array, r255, crc2(uint8Array, r255 - length3 - 4, length3 + 4)); r210 = r255 + 4; } } const r263 = 0 < a0.frames.length; let r269 = r210; let r270 = 0; let r271 = 0; let r272 = r269; if (r263) { do { const r274 = a0.frames[r271]; const r275 = r270; const r276 = r271; const r37 = r269; let r277 = r275; let r36 = r37; if (r22) { writeUint2(uint8Array, r37, 26); const r278 = r37 + 4; writeASCII2(uint8Array, r278, "fcTL"); const r280 = r278 + 4; r277 = r275 + 1; writeUint2(uint8Array, r280, r275); const r282 = r280 + 4; writeUint2(uint8Array, r282, r274.rect.width); const r286 = r282 + 4; writeUint2(uint8Array, r286, r274.rect.height); const r290 = r286 + 4; writeUint2(uint8Array, r290, r274.rect.x); const r294 = r290 + 4; writeUint2(uint8Array, r294, r274.rect.y); const r298 = r294 + 4; writeUshort2(uint8Array, r298, a3[r276]); const r301 = r298 + 2; writeUshort2(uint8Array, r301, 1000); const r303 = r301 + 2; uint8Array[r303] = r274.dispose; const r305 = r303 + 1; uint8Array[r305] = r274.blend; const r307 = r305 + 1; writeUint2(uint8Array, r307, crc2(uint8Array, r307 - 30, 30)); r36 = r307 + 4; } const cimg = r274.cimg; const length4 = cimg.length; writeUint2(uint8Array, r36, length4 + (r276 === 0 ? 0 : 4)); const r315 = r276 === 0 ? "IDAT" : "fdAT"; const r316 = r36 + 4; writeASCII2(uint8Array, r316, r315); const r318 = r316 + 4; let r319 = r277; let r320 = r318; if (r276 !== 0) { r319 = r277 + 1; writeUint2(uint8Array, r318, r277); r320 = r318 + 4; } uint8Array.set(cimg, r320); const r323 = r320 + length4; writeUint2(uint8Array, r323, crc2(uint8Array, r316, r323 - r316)); r269 = r323 + 4; r271 = r276 + 1; length5 = a0.frames.length; r270 = r319; r272 = r269; } while (r271 < length5); } writeUint2(uint8Array, r272, 0); const r330 = r272 + 4; writeASCII2(uint8Array, r330, "IEND"); const r333 = r330 + 4; writeUint2(uint8Array, r333, crc2(uint8Array, r333 - 4, 4)); return uint8Array.buffer; } } }; compressPNG2 = function compressPNG(a0, a1, a2) { let length2; const r24 = 0 < a0.frames.length; let r13 = 0; if (r24) { do { const r34 = a0.frames[r13]; r34.rect.width; const height = r34.rect.height; const uint8Array = new Uint8Array(height * r34.bpl + height); const { img, bpp, bpl } = r34; const r14 = r13; const r39 = a1 != -1 ? [a1] : height * bpl > 500000 || bpp == 1 ? [0] : [0, 1, 2, 3, 4]; const r38 = a2 ? { level: 0 } : void 0; const r69 = uint8Array.length > 10000000 && window.UZIP != null ? window.UZIP : pako; const r71 = []; Date.now(); const r75 = 0 < r39.length; let r12 = 0; if (r75) { do { const r76 = 0 < height; const r11 = r12; let r9 = 0; if (r76) { do { const r77 = r39[r11]; const r2 = r9 * bpl; const r10 = r2 + r9; uint8Array[r10] = r77; const r3 = r10 + 1; const r78 = r9; if (r77 == 0) { if (bpl < 500) { const r192 = 0 < bpl; let r193 = 0; if (r192) { do { uint8Array[r3 + r193] = img[r2 + r193]; r193 = r193 + 1; } while (r193 < bpl); } } else { uint8Array.set(new Uint8Array(img.buffer, r2, bpl), r3); } } else if (r77 == 1) { const r169 = 0 < bpp; let r170 = 0; if (r169) { do { uint8Array[r3 + r170] = img[r2 + r170]; r170 = r170 + 1; } while (r170 < bpp); } let r174 = bpp; while (r174 < bpl) { uint8Array[r3 + r174] = img[r2 + r174] - img[r2 + r174 - bpp] + 256 & 255; r174 = r174 + 1; } } else if (r78 === 0) { const r137 = 0 < bpp; let r138 = 0; if (r137) { do { uint8Array[r3 + r138] = img[r2 + r138]; r138 = r138 + 1; } while (r138 < bpp); } if (r77 == 2) { let r142 = bpp; while (r142 < bpl) { uint8Array[r3 + r142] = img[r2 + r142]; r142 = r142 + 1; } } if (r77 == 3) { let r146 = bpp; while (r146 < bpl) { uint8Array[r3 + r146] = img[r2 + r146] - (img[r2 + r146 - bpp] >> 1) + 256 & 255; r146 = r146 + 1; } } if (r77 == 4) { let r157 = bpp; while (r157 < bpl) { uint8Array[r3 + r157] = img[r2 + r157] - _paeth2(img[r2 + r157 - bpp], 0, 0) + 256 & 255; r157 = r157 + 1; } } } else { if (r77 == 2) { const r79 = 0 < bpl; let r0 = 0; if (r79) { do { const r1 = r2 + r0; uint8Array[r3 + r0] = img[r1] + 256 - img[r1 - bpl] & 255; r0 = r0 + 1; } while (r0 < bpl); } } if (r77 == 3) { const r85 = 0 < bpp; let r86 = 0; if (r85) { do { const r87 = r2 + r86; uint8Array[r3 + r86] = img[r87] + 256 - (img[r87 - bpl] >> 1) & 255; r86 = r86 + 1; } while (r86 < bpp); } let r96 = bpp; while (r96 < bpl) { uint8Array[r3 + r96] = img[r2 + r96] + 256 - (img[r2 + r96 - bpl] + img[r2 + r96 - bpp] >> 1) & 255; r96 = r96 + 1; } } if (r77 == 4) { const r108 = 0 < bpp; let r109 = 0; if (r108) { do { const r110 = r2 + r109; uint8Array[r3 + r109] = img[r110] + 256 - _paeth2(0, img[r110 - bpl], 0) & 255; r109 = r109 + 1; } while (r109 < bpp); } let r120 = bpp; while (r120 < bpl) { uint8Array[r3 + r120] = img[r2 + r120] + 256 - _paeth2(img[r2 + r120 - bpp], img[r2 + r120 - bpl], img[r2 + r120 - bpp - bpl]) & 255; r120 = r120 + 1; } } } r9 = r78 + 1; } while (r9 < height); } r71.push(r69.deflate(uint8Array, r38)); r12 = r11 + 1; } while (r12 < r39.length); } const r25 = 0 < r71.length; let r203 = 1000000000; let r26 = void 0; let r204 = 0; let r205 = void 0; if (r25) { do { const length = r71[r204].length; let r208 = r203; let r209 = r26; const r210 = r204; if (length < r208) { r208 = r71[r210].length; r209 = r210; } r204 = r210 + 1; length2 = r71.length; r203 = r208; r26 = r209; r205 = r26; } while (r204 < length2); } r34.cimg = r71[r205]; r13 = r14 + 1; } while (r13 < a0.frames.length); } }; compress2 = function compress(a0, a1, a2, a3, a4) { let r58, r59, r326, r471, r486, r491, bpl, bpp, height2, img2, img3, length10, length2, length6, width3; const r42 = a4[0]; const r45 = a4[1]; const r52 = a4[2]; const r49 = a4[3]; const r47 = a4[4]; const r50 = a4[5]; const r38 = 0 < a0.length; let r20 = 0; let r29 = 255; let r34 = 255; if (r38) { do { const uint8Array2 = new Uint8Array(a0[r20]); const length = uint8Array2.length; const r100 = 0 < length; const r25 = r20; let r28 = r29; let r22 = 0; let r32 = r28; if (r100) { do { r28 = r28 & uint8Array2[r22 + 3]; r22 = r22 + 4; r32 = r28; } while (r22 < length); } r20 = r25 + 1; length2 = a0.length; r29 = r32; r34 = r29; } while (r20 < length2); } const r105 = r34 !== 255; const frames = []; const r36 = 0 < a0.length; let r110 = 0; if (r36) { do { const uint8Array = new Uint8Array(a0[r110]); const uint32Array = new Uint32Array(uint8Array.buffer); const r119 = r110; let blend2 = r42 ? 1 : 0; if (r119 !== 0) { const r26 = !r52 && !r42 && r119 !== 1 ? frames[r119 - 2].dispose != 0 ? 1 : 2 : 1; const r127 = r119 - 1; let r31 = 0; let r33 = 1000000000; let r128 = 0; let r64 = a2; let r63 = a1; let r62 = 0; let r129 = 0; let r130 = 0; let r61 = a2; let r60 = a1; let r55 = 0; let r131 = 0; while (r31 < r26) { const r69 = Uint8Array; const r27 = r127 - r31; new r69(a0[r27]); const uint32Array2 = new Uint32Array(a0[r27]); const r138 = 0 < a2; const r139 = r31; let r18 = r33; let r9 = r128; let r70 = r64; let r140 = r63; let r141 = r62; let r142 = r129; let r19 = 0; let r17 = -1; let r15 = -1; let r72 = a2; let r71 = a1; let r8 = -1; let r16 = -1; let r75 = a2; let r74 = a1; if (r138) { do { const r143 = 0 < a1; const r10 = r19; let r3 = r17; let r4 = r15; let r79 = r72; let r78 = r71; let r5 = 0; let r13 = r3; let r14 = r4; let r77 = r79; let r76 = r78; if (r143) { do { const r144 = r10 * a1 + r5; const r85 = uint32Array[r144]; const r82 = uint32Array2[r144]; const r145 = r5; const r11 = r3; const r0 = r4; const r84 = r79; const r83 = r78; let r6 = r11; let r7 = r0; let r81 = r84; let r80 = r83; if (r85 != r82) { const r146 = r145 < r83 ? r145 : r83; const r2 = r0 < r145 ? r145 : r0; const r147 = r10 < r84 ? r10 : r84; r6 = r11 < r10 ? r10 : r11; r7 = r2; r81 = r147; r80 = r146; } r5 = r145 + 1; r3 = r6; r4 = r7; r79 = r81; r78 = r80; r13 = r3; r14 = r4; r77 = r79; r76 = r78; } while (r5 < a1); } r19 = r10 + 1; r17 = r13; r15 = r14; r72 = r77; r71 = r76; r8 = r17; r16 = r15; r75 = r72; r74 = r71; } while (r19 < a2); } if (r16 === -1) { r8 = 0; r16 = 0; r75 = 0; r74 = 0; } let r149 = r75; let r150 = r74; if (r45) { const r153 = 1 & ~r74 ? r74 : r74 - 1; r149 = 1 & ~r75 ? r75 : r75 - 1; r150 = r153; } const r161 = (r16 - r150 + 1) * (r8 - r149 + 1); if (r161 < r18) { r140 = r16 - r150 + 1; r70 = r8 - r149 + 1; r18 = r161; r9 = r139; r141 = r149; r142 = r150; } r31 = r139 + 1; r33 = r18; r128 = r9; r64 = r70; r63 = r140; r62 = r141; r129 = r142; r130 = r128; r61 = r64; r60 = r63; r55 = r62; r131 = r129; } const uint8Array3 = new Uint8Array(a0[r127 - r130]); if (r130 === 1) { frames[r127].dispose = 2; } const uint8Array4 = new Uint8Array(r60 * r61 * 4); _copyTile2(uint8Array3, a1, a2, uint8Array4, r60, r61, -r131, -r55, 0); const r193 = _copyTile2(uint8Array, a1, a2, uint8Array4, r60, r61, -r131, -r55, 3) ? 1 : 0; if (r193 === 1) { _copyTile2(uint8Array, a1, a2, uint8Array4, r60, r61, -r131, -r55, 2); blend2 = r193; height2 = r61; width3 = r60; r58 = r55; r59 = r131; img2 = uint8Array4; } else { _copyTile2(uint8Array, a1, a2, uint8Array4, r60, r61, -r131, -r55, 0); blend2 = r193; height2 = r61; width3 = r60; r58 = r55; r59 = r131; img2 = uint8Array4; } } else { img2 = uint8Array.slice(0); height2 = a2; width3 = a1; r58 = 0; r59 = 0; } frames.push({ rect: { x: r59, y: r58, width: width3, height: height2 }, img: img2, blend: blend2, dispose: 0 }); r110 = r119 + 1; } while (r110 < a0.length); } if (r42) { const r222 = 0 < frames.length; let r223 = 0; if (r222) { do { const r224 = frames[r223]; const blend = r224.blend; const r226 = r223; if (blend != 1) { const rect = r224.rect; const r228 = r226 - 1; const rect2 = frames[r228].rect; const r235 = Math.min(rect.x, rect2.x); const r240 = Math.min(rect.y, rect2.y); const r251 = { x: r235, y: r240, width: Math.max(rect.x + rect.width, rect2.x + rect2.width) - r235, height: Math.max(rect.y + rect.height, rect2.y + rect2.height) - r240 }; frames[r228].dispose = 1; if (r228 !== 0) { _updateFrame2(a0, a1, a2, frames, r228, r251, r45); } _updateFrame2(a0, a1, a2, frames, r226, r251, r45); } r223 = r226 + 1; } while (r223 < frames.length); } } if (a0.length != 1) { const r286 = 0 < frames.length; let r287 = 0; if (r286) { do { const r288 = frames[r287]; r288.rect.width * r288.rect.height; r287 = r287 + 1; } while (r287 < frames.length); } } const r296 = {}; const plte = []; const r298 = []; if (a3 != 0) { const r340 = []; const r342 = 0 < frames.length; let r343 = 0; if (r342) { do { r340.push(frames[r343].img.buffer); r343 = r343 + 1; } while (r343 < frames.length); } const r351 = 0 < r340.length; let r352 = 0; let r353 = 0; let r354 = 0; if (r351) { do { r353 = r353 + r340[r352].byteLength; r352 = r352 + 1; length6 = r340.length; r354 = r353; } while (r352 < length6); } const uint8Array6 = new Uint8Array(r354); const r365 = 0 < r340.length; let r366 = 0; let r367 = 0; if (r365) { do { const uint8Array7 = new Uint8Array(r340[r367]); const length7 = uint8Array7.length; const r375 = 0 < length7; const r376 = r366; const r377 = r367; let r378 = 0; if (r375) { do { let r379 = uint8Array7[r378]; let r381 = uint8Array7[r378 + 1]; let r383 = uint8Array7[r378 + 2]; const r385 = uint8Array7[r378 + 3]; const r386 = r378; if (r385 == 0) { r383 = 0; r381 = 0; r379 = 0; } const r387 = r376 + r386; uint8Array6[r387] = r379; uint8Array6[r387 + 1] = r381; uint8Array6[r387 + 2] = r383; uint8Array6[r387 + 3] = r385; r378 = r386 + 4; } while (r378 < length7); } r366 = r376 + length7; r367 = r377 + 1; } while (r367 < r340.length); } const r394 = quantize2(uint8Array6.buffer, a3); const r397 = 0 < r394.plte.length; let r398 = 0; if (r397) { do { plte.push(r394.plte[r398].est.rgba); r398 = r398 + 1; } while (r398 < r394.plte.length); } const r408 = 0 < frames.length; let r409 = 0; let r410 = 0; if (r408) { do { const r411 = frames[r410]; const length8 = r411.img.length; const uint8Array8 = new Uint8Array(r394.inds.buffer, r409 >> 2, length8 >> 2); r298.push(uint8Array8); const uint8Array9 = new Uint8Array(r394.abuf, r409, length8); const r433 = r409; const r434 = r410; if (r50) { dither2(r411.img, r411.rect.width, r411.rect.height, plte, uint8Array9, uint8Array8); } r411.img.set(uint8Array9); r409 = r433 + length8; r410 = r434 + 1; } while (r410 < frames.length); } } else { const r39 = 0 < frames.length; let r302 = 0; if (r39) { do { const r303 = frames[r302]; const uint32Array3 = new Uint32Array(r303.img.buffer); const width = r303.rect.width; const length3 = uint32Array3.length; const uint8Array5 = new Uint8Array(length3); r298.push(uint8Array5); const r322 = 0 < length3; const r323 = r302; let r324 = 0; if (r322) { do { L70: { const r325 = uint32Array3[r324]; r326 = r324; if (r326 !== 0) { const r327 = r326 - 1; if (r325 == uint32Array3[r327]) { uint8Array5[r326] = uint8Array5[r327]; break L70; } } if (r326 > width && r325 == uint32Array3[r326 - width]) { uint8Array5[r326] = uint8Array5[r326 - width]; } else { let r331 = r296[r325]; if (r331 == null) { const length4 = plte.length; r296[r325] = length4; plte.push(r325); const length5 = plte.length; r331 = length4; if (length5 >= 300) { break; } } uint8Array5[r326] = r331; } } r324 = r326 + 1; } while (r324 < length3); } r302 = r323 + 1; } while (r302 < frames.length); } } const length9 = plte.length; const depth = length9 <= 256 && r47 == 0 ? Math.max(length9 <= 2 ? 1 : length9 <= 4 ? 2 : length9 <= 16 ? 4 : 8, r49) : 8; const r465 = 0 < frames.length; let r468 = 0; let r469 = 6; let ctype = 6; if (r465) { do { L124: { r471 = frames[r468]; r471.rect.x; r471.rect.y; const width2 = r471.rect.width; const height = r471.rect.height; const img = r471.img; new Uint32Array(img.buffer); const r485 = 4 * width2; r486 = r468; const r487 = r469; if (length9 <= 256 && r47 == 0) { const r516 = Math.ceil(depth * width2 / 8); const uint8Array11 = new Uint8Array(r516 * height); const r523 = r298[r486]; const r524 = 0 < height; let r525 = 0; bpp = 1; bpl = r516; img3 = uint8Array11; r491 = 3; if (!r524) { break L124; } while (true) { const r526 = r525 * r516; const r527 = r525 * width2; const r528 = r525; if (depth == 8) { const r565 = 0 < width2; let r566 = 0; if (r565) { do { uint8Array11[r526 + r566] = r523[r527 + r566]; r566 = r566 + 1; } while (r566 < width2); } } else if (depth == 4) { const r553 = 0 < width2; let r554 = 0; if (r553) { do { const r556 = r526 + (r554 >> 1); uint8Array11[r556] = uint8Array11[r556] | r523[r527 + r554] << 4 - 4 * (1 & r554); r554 = r554 + 1; } while (r554 < width2); } } else if (depth == 2) { const r541 = 0 < width2; let r542 = 0; if (r541) { do { const r544 = r526 + (r542 >> 2); uint8Array11[r544] = uint8Array11[r544] | r523[r527 + r542] << 6 - 2 * (3 & r542); r542 = r542 + 1; } while (r542 < width2); } } else if (depth == 1) { const r529 = 0 < width2; let r530 = 0; if (r529) { do { const r532 = r526 + (r530 >> 3); uint8Array11[r532] = uint8Array11[r532] | r523[r527 + r530] << 7 - 1 * (7 & r530); r530 = r530 + 1; } while (r530 < width2); } } const r570 = r528 + 1; const r571 = r570 < height; r525 = r570; bpp = 1; bpl = r516; img3 = uint8Array11; r491 = 3; if (!r571) { break L124; } } } bpp = 4; bpl = r485; img3 = img; r491 = r487; if (r105 == 0) { const r493 = frames.length == 1; bpp = 4; bpl = r485; img3 = img; r491 = r487; if (r493) { const uint8Array10 = new Uint8Array(width2 * height * 3); const r501 = width2 * height; let r502 = 0; while (r502 < r501) { const r503 = 3 * r502; const r504 = 4 * r502; uint8Array10[r503] = img[r504]; uint8Array10[r503 + 1] = img[r504 + 1]; uint8Array10[r503 + 2] = img[r504 + 2]; r502 = r502 + 1; } bpl = 3 * width2; bpp = 3; img3 = uint8Array10; r491 = 2; } } } r471.img = img3; r471.bpl = bpl; r471.bpp = bpp; r468 = r486 + 1; length10 = frames.length; r469 = r491; ctype = r469; } while (r468 < length10); } return { ctype, depth, plte, frames }; }; _updateFrame2 = function _updateFrame(a0, a1, a2, a3, a4, a5, a6) { let height, width; const r21 = Uint8Array; const r17 = Uint32Array; const r18 = new r21(a0[a4 - 1]); const r35 = new r17(a0[a4 - 1]); const r34 = a4 + 1 < a0.length ? new r21(a0[a4 + 1]) : null; const r79 = new r21(a0[a4]); const r32 = new r17(r79.buffer); const r86 = 0 < a5.height; let r8 = 0; let r31 = -1; let r30 = -1; let r27 = a2; let r87 = a1; let r26 = -1; let r28 = -1; let r29 = a2; let r88 = a1; if (r86) { do { const r90 = 0 < a5.width; const r5 = r8; let r43 = r31; let r42 = r30; let r41 = r27; let r40 = r87; let r0 = 0; let r39 = r43; let r38 = r42; let r37 = r41; let r36 = r40; if (r90) { do { const r48 = a5.x + r0; const r51 = a5.y + r5; const r93 = r51 * a1 + r48; const r45 = r32[r93]; let r94 = r45 == 0; const r95 = r0; const r52 = r43; const r53 = r42; const r50 = r41; const r49 = r40; if (!r94) { r94 = a3[a4 - 1].dispose == 0 && r35[r93] == r45 && (r34 == null || r34[4 * r93 + 3] != 0); } let r47 = r52; let r46 = r53; let r101 = r50; let r102 = r49; if (!r94) { const r103 = r48 < r49 ? r48 : r49; const r104 = r48 > r53 ? r48 : r53; const r105 = r51 < r50 ? r51 : r50; r47 = r51 > r52 ? r51 : r52; r46 = r104; r101 = r105; r102 = r103; } r0 = r95 + 1; width = a5.width; r43 = r47; r42 = r46; r41 = r101; r40 = r102; r39 = r43; r38 = r42; r37 = r41; r36 = r40; } while (r0 < width); } r8 = r5 + 1; height = a5.height; r31 = r39; r30 = r38; r27 = r37; r87 = r36; r26 = r31; r28 = r30; r29 = r27; r88 = r87; } while (r8 < height); } if (r28 == -1) { r26 = 0; r28 = 0; r29 = 0; r88 = 0; } let r110 = r29; let r111 = r88; if (a6) { const r114 = 1 & ~r88 ? r88 : r88 - 1; r110 = 1 & ~r29 ? r29 : r29 - 1; r111 = r114; } const rect = { x: r111, y: r110, width: r28 - r111 + 1, height: r26 - r110 + 1 }; const r124 = a3[a4]; r124.rect = rect; r124.blend = 1; r124.img = new Uint8Array(rect.width * rect.height * 4); if (a3[a4 - 1].dispose == 0) { _copyTile2(r18, a1, a2, r124.img, rect.width, rect.height, -rect.x, -rect.y, 0); _copyTile2(r79, a1, a2, r124.img, rect.width, rect.height, -rect.x, -rect.y, 2); } else { _copyTile2(r79, a1, a2, r124.img, rect.width, rect.height, -rect.x, -rect.y, 0); } }; quantize2 = function quantize(a0, a1, a2) { let left2; Date.now(); const uint8Array = new Uint8Array(a0); const r21 = uint8Array.slice(0); const uint32Array = new Uint32Array(r21.buffer); const kDtree2 = getKDtree2(r21, a1); const r29 = kDtree2[0]; const plte = kDtree2[1]; const length = plte.length; const uint32Array2 = new Uint32Array(length); const uint8Array2 = new Uint8Array(uint32Array2.buffer); const r17 = 0 < length; let r6 = 0; if (r17) { do { uint32Array2[r6] = plte[r6].est.rgba; r6 = r6 + 1; } while (r6 < length); } const length2 = uint8Array.length; const uint8Array3 = new Uint8Array(length2 >> 2); if (length <= 60) { findNearest2(uint8Array, uint8Array3, uint8Array2); const r125 = 0 < uint8Array3.length; let r126 = 0; if (r125) { do { uint32Array[r126] = uint32Array2[uint8Array3[r126]]; r126 = r126 + 1; } while (r126 < uint8Array3.length); } } else if (uint8Array.length < 32000000) { const r102 = 0 < length2; let r106 = 0; if (r102) { do { const nearest2 = getNearest2(r29, 0.00392156862745098 * uint8Array[r106], 0.00392156862745098 * uint8Array[r106 + 1], 0.00392156862745098 * uint8Array[r106 + 2], 0.00392156862745098 * uint8Array[r106 + 3]); const r118 = r106 >> 2; uint8Array3[r118] = nearest2.ind; uint32Array[r118] = nearest2.est.rgba; r106 = r106 + 4; } while (r106 < length2); } } else { const r76 = 0 < length2; let r77 = 0; if (r76) { do { const r3 = 0.00392156862745098 * uint8Array[r77]; const r2 = 0.00392156862745098 * uint8Array[r77 + 1]; const r8 = 0.00392156862745098 * uint8Array[r77 + 2]; const r4 = 0.00392156862745098 * uint8Array[r77 + 3]; const left = r29.left; const r84 = r77; let r32 = r29; let r85 = r32; if (left) { do { const est = r32.est; const r33 = est.e; const r94 = r33[0] * r3 + r33[1] * r2 + r33[2] * r8 + r33[3] * r4 - est.eMq; const r95 = r32; const r96 = r94 <= 0 ? r95.left : r95.right; left2 = r96.left; r32 = r96; r85 = r32; } while (left2); } const r98 = r84 >> 2; uint8Array3[r98] = r85.ind; uint32Array[r98] = r85.est.rgba; r77 = r84 + 4; } while (r77 < length2); } } L29: { let r132 = 1000000000; let r133 = 0; if (!a2) { const r135 = uint8Array.length * length; r132 = 1000000000; r133 = 0; if (!(r135 < 40000000)) { break L29; } } while (true) { const r138 = uint8Array2.length >>> 2; const uint32Array3 = new Uint32Array(4 * r138); const uint32Array4 = new Uint32Array(r138); const r153 = 0 < uint8Array.length; const r155 = r132; const r156 = r133; let r157 = 0; if (r153) { do { const r159 = uint8Array3[r157 >>> 2]; const r160 = 4 * r159; uint32Array4[r159] = uint32Array4[r159] + 1; uint32Array3[r160] = uint32Array3[r160] + uint8Array[r157]; const r166 = r160 + 1; uint32Array3[r166] = uint32Array3[r166] + uint8Array[r157 + 1]; const r171 = r160 + 2; uint32Array3[r171] = uint32Array3[r171] + uint8Array[r157 + 2]; const r176 = r160 + 3; uint32Array3[r176] = uint32Array3[r176] + uint8Array[r157 + 3]; r157 = r157 + 4; } while (r157 < uint8Array.length); } const r183 = 0 < uint8Array2.length; let r184 = 0; if (r183) { do { uint8Array2[r184] = Math.round(uint32Array3[r184] / uint32Array4[r184 >>> 2]); r184 = r184 + 1; } while (r184 < uint8Array2.length); } const r194 = findNearest2(uint8Array, uint8Array3, uint8Array2); if (!(0.997 < r194 / r155)) { r133 = r156 + 1; r132 = r194; if (r133 < 10) { continue; } } const r198 = 0 < length; let r199 = 0; if (r198) { do { plte[r199].est.rgba = uint32Array2[r199]; r199 = r199 + 1; } while (r199 < length); } const r204 = 0 < uint8Array3.length; let r205 = 0; if (!r204) { break; } while (true) { uint32Array[r205] = uint32Array2[uint8Array3[r205]]; r205 = r205 + 1; if (!(r205 < uint8Array3.length)) { break L29; } } } } return { abuf: r21.buffer, inds: uint8Array3, plte }; }; findNearest2 = function findNearest(a0, a1, a2) { let length; const r14 = a2.length >>> 2; const r18 = []; let r11 = 0; while (r11 < r14) { const r6 = 4 * r11; const r25 = a2[r6]; const r24 = a2[r6 + 1]; const r23 = a2[r6 + 2]; const r21 = a2[r6 + 3]; const r35 = r11; let r36 = 0; let r17 = 1000000000; let r22 = 1000000000; while (r36 < r14) { const r5 = r36; const r28 = r17; let r26 = r28; if (r35 !== r5) { const r1 = 4 * r5; const r37 = r25 - a2[r1]; const r29 = r37 * r37; const r39 = r24 - a2[r1 + 1]; const r41 = r29 + r39 * r39; const r44 = r23 - a2[r1 + 2]; const r46 = r41 + r44 * r44; const r49 = r21 - a2[r1 + 3]; const r51 = r46 + r49 * r49; r26 = r28; if (r51 < r26) { r26 = r51; } } r36 = r5 + 1; r17 = r26; r22 = r17; } r18[r35] = 0.5 * Math.sqrt(r22); r18[r35] = r18[r35] * r18[r35]; r11 = r35 + 1; } const r15 = 0 < a0.length; let r61 = 0; let r62 = 0; let r63 = 0; if (r15) { do { const r64 = a0[r61]; const r66 = a0[r61 + 1]; const r68 = a0[r61 + 2]; const r70 = a0[r61 + 3]; const r71 = r61 >>> 2; const r72 = a1[r71]; const r73 = 4 * r72; const r75 = r64 - a2[r73]; const r76 = r75 * r75; const r79 = r66 - a2[r73 + 1]; const r81 = r76 + r79 * r79; const r84 = r68 - a2[r73 + 2]; const r86 = r81 + r84 * r84; const r89 = r70 - a2[r73 + 3]; const r91 = r86 + r89 * r89; const r92 = r18[r72]; const r93 = r61; const r94 = r62; let r95 = r72; let r96 = r91; if (r96 > r92) { let r97 = 0; let r98 = r91; let r99 = r72; r96 = r98; r95 = r99; while (r97 < r14) { const r100 = 4 * r97; const r102 = r64 - a2[r100]; const r103 = r102 * r102; const r105 = r66 - a2[r100 + 1]; const r107 = r103 + r105 * r105; const r110 = r68 - a2[r100 + 2]; const r112 = r107 + r110 * r110; const r115 = r70 - a2[r100 + 3]; const r31 = r112 + r115 * r115; const r117 = r97; let r118 = r98; let r119 = r99; if (r31 < r118) { const r30 = r18[r117]; r118 = r31; r119 = r117; r95 = r119; r96 = r118; if (r96 < r30) { break; } } r97 = r117 + 1; r98 = r118; r99 = r119; r96 = r98; r95 = r99; } } a1[r71] = r95; r62 = r94 + r96; r61 = r93 + 4; length = a0.length; r63 = r62; } while (r61 < length); } return r63 / (a0.length >>> 2); }; getKDtree2 = function getKDtree(a0, a1, a2) { let r101, r122, r166, length; const r21 = a2 == null ? 0.0001 : a2; const uint32Array = new Uint32Array(a0.buffer); const r40 = { i0: 0, i1: a0.length, bst: null, est: null, tdst: 0, left: null, right: null }; r40.bst = stats2(a0, r40.i0, r40.i1); r40.est = estats2(r40.bst); const r48 = [r40]; while (r48.length < a1) { const r13 = 0 < r48.length; let r4 = 0; let r0 = 0; let r23 = 0; let r10 = 0; let r51 = 0; if (r13) { do { const r54 = r48[r4].est.L; const r1 = r4; let r2 = r0; let r24 = r23; if (r54 > r24) { r24 = r48[r1].est.L; r2 = r1; } r4 = r1 + 1; length = r48.length; r0 = r2; r23 = r24; r10 = r0; r51 = r23; } while (r4 < length); } if (r51 < r21) { break; } const r58 = r48[r10]; const { i0, i1 } = r58; const r26 = r58.est.e; const eMq255 = r58.est.eMq255; let r63 = i1 - 4; let r64 = i0; let r65 = r64; while (r65 < r63) { const r81 = a0[r64] * r26[0] + a0[r64 + 1] * r26[1] + a0[r64 + 2] * r26[2] + a0[r64 + 3] * r26[3]; const r82 = r63; let r83 = r64; let r84 = r83; if (r81 <= eMq255) { do { const r31 = r83 + 4; r101 = a0[r31] * r26[0] + a0[r31 + 1] * r26[1] + a0[r31 + 2] * r26[2] + a0[r31 + 3] * r26[3]; r83 = r31; r84 = r83; } while (r101 <= eMq255); } const r102 = vecDot2(a0, r82, r26); let r103 = r82; let r104 = r103; if (r102 > eMq255) { do { const r105 = r103 - 4; r122 = a0[r105] * r26[0] + a0[r105 + 1] * r26[1] + a0[r105 + 2] * r26[2] + a0[r105 + 3] * r26[3]; r103 = r105; r104 = r103; } while (r122 > eMq255); } r65 = r84; if (r65 >= r104) { break; } const r124 = uint32Array[r84 >> 2]; const r125 = r84 >> 2; const r126 = r104 >> 2; uint32Array[r125] = uint32Array[r126]; uint32Array[r126] = r124; r64 = r84 + 4; r63 = r104 - 4; r65 = r64; } const r145 = a0[r65] * r26[0] + a0[r65 + 1] * r26[1] + a0[r65 + 2] * r26[2] + a0[r65 + 3] * r26[3]; let r146 = r65; let r147 = r146; if (r145 > eMq255) { do { const r148 = r146 - 4; r166 = a0[r148] * r26[0] + a0[r148 + 1] * r26[1] + a0[r148 + 2] * r26[2] + a0[r148 + 3] * r26[3]; r146 = r148; r147 = r146; } while (r166 > eMq255); } L24: { const i12 = r147 + 4; if (!(r58.i0 >= i12) && !(r58.i1 <= i12)) { const left = { i0: r58.i0, i1: i12, bst: null, est: null, tdst: 0, left: null, right: null }; left.bst = stats2(a0, left.i0, left.i1); left.est = estats2(left.bst); const right = { i0: i12, i1: r58.i1, bst: { R: [], m: [], N: r58.bst.N - left.bst.N }, est: null, tdst: 0, left: null, right: null }; let r189 = 0; while (true) { right.bst.R[r189] = r58.bst.R[r189] - left.bst.R[r189]; r189 = r189 + 1; let r199 = 0; if (!(r189 < 16)) { while (true) { right.bst.m[r199] = r58.bst.m[r199] - left.bst.m[r199]; r199 = r199 + 1; if (!(r199 < 4)) { right.est = estats2(right.bst); r58.left = left; r58.right = right; r48[r10] = left; r48.push(right); break L24; } } } } } r58.est.L = 0; } } r48.sort(function(a, b) { return b.bst.N - a.bst.N; }); const r220 = 0 < r48.length; let ind = 0; if (r220) { do { r48[ind].ind = ind; ind = ind + 1; } while (ind < r48.length); } return [r40, r48]; }; getNearest2 = function getNearest(a0, a1, a2, a3, a4) { if (a0.left == null) { const r47 = a0.est.q; const r49 = a1 - r47[0]; const r51 = a2 - r47[1]; const r53 = a3 - r47[2]; const r55 = a4 - r47[3]; a0.tdst = r49 * r49 + r51 * r51 + r53 * r53 + r55 * r55; return a0; } const est = a0.est; const r4 = est.e; const r29 = r4[0] * a1 + r4[1] * a2 + r4[2] * a3 + r4[3] * a4 - est.eMq; let left = a0.left; let right = a0.right; if (r29 > 0) { left = a0.right; right = a0.left; } const nearest2 = getNearest2(left, a1, a2, a3, a4); if (nearest2.tdst <= r29 * r29) { return nearest2; } const nearest22 = getNearest2(right, a1, a2, a3, a4); return nearest22.tdst < nearest2.tdst ? nearest22 : nearest2; }; vecDot2 = function vecDot(a0, a1, a2) { return a0[a1] * a2[0] + a0[a1 + 1] * a2[1] + a0[a1 + 2] * a2[2] + a0[a1 + 3] * a2[3]; }; stats2 = function stats(a0, a1, a2) { let r21 = a1; const r20 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; const r19 = [0, 0, 0, 0]; const r17 = a2 - a1 >> 2; if (a1 < a2) { do { const r0 = 0.00392156862745098 * a0[r21]; const r1 = 0.00392156862745098 * a0[r21 + 1]; const r2 = 0.00392156862745098 * a0[r21 + 2]; const r3 = 0.00392156862745098 * a0[r21 + 3]; r19[0] = r19[0] + r0; r19[1] = r19[1] + r1; r19[2] = r19[2] + r2; r19[3] = r19[3] + r3; r20[0] = r20[0] + r0 * r0; r20[1] = r20[1] + r0 * r1; r20[2] = r20[2] + r0 * r2; r20[3] = r20[3] + r0 * r3; r20[5] = r20[5] + r1 * r1; r20[6] = r20[6] + r1 * r2; r20[7] = r20[7] + r1 * r3; r20[10] = r20[10] + r2 * r2; r20[11] = r20[11] + r2 * r3; r20[15] = r20[15] + r3 * r3; r21 = r21 + 4; } while (r21 < a2); } r20[4] = r20[1]; r20[8] = r20[2]; r20[9] = r20[6]; r20[12] = r20[3]; r20[13] = r20[7]; r20[14] = r20[11]; return { R: r20, m: r19, N: r17 }; }; estats2 = function estats({ R: r13, m: r9, N: r11 }) { const r12 = r9[0]; const r17 = r9[1]; const r16 = r9[2]; const r26 = r9[3]; const r1 = r11 == 0 ? 0 : 1 / r11; const Cov = [r13[0] - r12 * r12 * r1, r13[1] - r12 * r17 * r1, r13[2] - r12 * r16 * r1, r13[3] - r12 * r26 * r1, r13[4] - r17 * r12 * r1, r13[5] - r17 * r17 * r1, r13[6] - r17 * r16 * r1, r13[7] - r17 * r26 * r1, r13[8] - r16 * r12 * r1, r13[9] - r16 * r17 * r1, r13[10] - r16 * r16 * r1, r13[11] - r16 * r26 * r1, r13[12] - r26 * r12 * r1, r13[13] - r26 * r17 * r1, r13[14] - r26 * r16 * r1, r13[15] - r26 * r26 * r1]; const r19 = [Math.random(), Math.random(), Math.random(), Math.random()]; const r104 = r11 != 0; let r105 = 0; let r106 = r19; if (r104) { const r20 = c1597_16.multVec(Cov, r19); const r111 = Math.sqrt(c1597_16.dot(r20, r20)); const r114 = c1597_16.sml(1 / r111, r20); let r115 = 0; let r116 = r111; let r117 = r114; while (true) { const r2 = r115 + 1; const r22 = r116; const r118 = r117; r105 = r22; r106 = r118; if (!(r2 < 16)) { break; } const r120 = c1597_16.multVec(Cov, r118); const r123 = Math.sqrt(c1597_16.dot(r120, r120)); const r125 = c1597_16.sml(1 / r123, r120); r115 = r2; r116 = r123; r117 = r125; if (r2 !== 0) { const r128 = Math.abs(r123 - r22); r115 = r2; r116 = r123; r117 = r125; r105 = r22; r106 = r117; if (r128 < 1e-9) { break; } } } } const r130 = [r12 * r1, r17 * r1, r16 * r1, r26 * r1]; return { Cov, q: r130, e: r106, L: r105, eMq255: c1597_16.dot(c1597_16.sml(255, r130), r106), eMq: c1597_16.dot(r106, r130), rgba: (Math.round(255 * r130[3]) << 24 | Math.round(255 * r130[2]) << 16 | Math.round(255 * r130[1]) << 8 | Math.round(255 * r130[0])) >>> 0 }; }; _copyTile2 = exports2._copyTile; _bin = exports2._bin; _paeth2 = exports2._paeth; const uint32Array = new Uint32Array(256); let r375 = 0; loop56: while (true) { const r376 = r375; let r377 = 0; let r378 = r376; while (true) { const r379 = r378 >>> 1; const r380 = 1 & r378; const r381 = r377; const r382 = r380 ? 3988292384 ^ r379 : r379; r377 = r381 + 1; r378 = r382; if (!(r377 < 8)) { uint32Array[r376] = r382; r375 = r376 + 1; if (r375 < 256) { continue loop56; } c1597_3 = { table: uint32Array, update: function update(a0, a1, a2, a3) { let r8 = a0; let r0 = 0; const r6 = 0 < a3; let r7 = a0; if (r6) { do { r8 = c1597_3.table[255 & (r8 ^ a1[a2 + r0])] ^ r8 >>> 8; r0 = r0 + 1; r7 = r8; } while (r0 < a3); } return r7; }, crc: function crc(a0, a1, a2) { return 4294967295 ^ c1597_3.update(4294967295, a0, a1, a2); } }; c1597_16 = { multVec: function multVec(a0, a1) { return [a0[0] * a1[0] + a0[1] * a1[1] + a0[2] * a1[2] + a0[3] * a1[3], a0[4] * a1[0] + a0[5] * a1[1] + a0[6] * a1[2] + a0[7] * a1[3], a0[8] * a1[0] + a0[9] * a1[1] + a0[10] * a1[2] + a0[11] * a1[3], a0[12] * a1[0] + a0[13] * a1[1] + a0[14] * a1[2] + a0[15] * a1[3]]; }, dot: function dot(a0, a1) { return a0[0] * a1[0] + a0[1] * a1[1] + a0[2] * a1[2] + a0[3] * a1[3]; }, sml: function sml(a0, a1) { return [a0 * a1[0], a0 * a1[1], a0 * a1[2], a0 * a1[3]]; } }; exports2.encode = function encode(a0, a1, a2, a3, a4, a5, a6) { const r21 = compress2(a0, a1, a2, a3 == null ? 0 : a3, [false, false, false, 0, a6 == null ? false : a6, false]); compressPNG2(r21, -1); return _main2(r21, a1, a2, a4, a5); }; exports2.encodeLL = function encodeLL(a0, a1, a2, a3, a4, a5, a6, a7) { const r10 = { ctype: 0 + (a3 == 1 ? 0 : 2) + (a4 == 0 ? 0 : 4), depth: a5, frames: [] }; Date.now(); const r32 = (a3 + a4) * a5; const r33 = r32 * a1; const r35 = 0 < a0.length; let r37 = 0; if (r35) { do { r10.frames.push({ rect: { x: 0, y: 0, width: a1, height: a2 }, img: new Uint8Array(a0[r37]), blend: 0, dispose: 1, bpp: Math.ceil(r32 / 8), bpl: Math.ceil(r33 / 8) }); r37 = r37 + 1; } while (r37 < a0.length); } compressPNG2(r10, 0, true); return _main2(r10, a1, a2, a6, a7); }; exports2.encode.compress = compress2; exports2.encode.dither = dither2; exports2.quantize = quantize2; exports2.quantize.findNearest = findNearest2; exports2.quantize.getKDtree = getKDtree2; exports2.quantize.getNearest = getNearest2; module.exports = exports2; return void 0; } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }