495 lines
21 KiB
TypeScript
495 lines
21 KiB
TypeScript
/* Metro module 14861; source: modules/thumbhash/ThumbhashUtils.tsx; dependencies: [13657, 2] */
|
|
import * as FileImportTrackerModule from '../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
|
|
import * as Module13657Module from '../../by-id/module-13657.js'; /* Metro dependency 13657 */
|
|
|
|
function _fun112367(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#112367, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15058:6, offset: 0x023c7b18, size: 113 bytes, params: 8, frame: 19
|
|
const env0_0 = require;
|
|
const thumbHashToRGBA_1123682 = thumbHashToRGBA_112368;
|
|
const Object = global.Object;
|
|
Object.defineProperty(exports, '__esModule', {value: true});
|
|
(FileImportTrackerModule).fileFinishedImporting('modules/thumbhash/ThumbhashUtils.tsx');
|
|
exports.createThumbhashImageFromPlaceholder = createThumbhashImageFromPlaceholder;
|
|
exports.thumbHashToRGBA = thumbHashToRGBA_1123682;
|
|
function thumbHashToRGBA_112368(a0) { // fn#112368, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15058:47, offset: 0x023c7b89, size: 1501 bytes, params: 2, frame: 101
|
|
var r0;
|
|
var r11;
|
|
var r8;
|
|
var r1;
|
|
var r38;
|
|
var r5;
|
|
var r23;
|
|
var r24;
|
|
var r59;
|
|
var r60;
|
|
var r61;
|
|
var r62;
|
|
var r63;
|
|
var r66;
|
|
var r70;
|
|
var r77;
|
|
var r78;
|
|
var r64;
|
|
var r82;
|
|
var r67;
|
|
var r68;
|
|
var r80;
|
|
var r81;
|
|
var r83;
|
|
var r79;
|
|
var r85;
|
|
var r86;
|
|
var r87;
|
|
var r84;
|
|
var value11;
|
|
var value13;
|
|
var value16;
|
|
var value19;
|
|
var value27;
|
|
var value29;
|
|
var value38;
|
|
var value39;
|
|
var value40;
|
|
var value41;
|
|
var value42;
|
|
var value43;
|
|
var value44;
|
|
var value45;
|
|
var value46;
|
|
var value47;
|
|
var value48;
|
|
var value49;
|
|
var value50;
|
|
var value51;
|
|
var value52;
|
|
var value53;
|
|
var value54;
|
|
var value55;
|
|
var value56;
|
|
var value57;
|
|
var value58;
|
|
var value59;
|
|
var value60;
|
|
var value61;
|
|
var value62;
|
|
var value63;
|
|
var value64;
|
|
var value65;
|
|
var value66;
|
|
var value67;
|
|
var value68;
|
|
var value69;
|
|
var value70;
|
|
var value71;
|
|
var value72;
|
|
let value = a1;
|
|
const env0_0 = a0;
|
|
reducibleJoin2: while (true) {
|
|
if (value !== undefined) {
|
|
r0 = value;
|
|
break reducibleJoin2;
|
|
}
|
|
r0 = {};
|
|
break reducibleJoin2;
|
|
}
|
|
let detail = r0.detail;
|
|
reducibleJoin4: while (true) {
|
|
if (detail !== undefined) {
|
|
break reducibleJoin4;
|
|
}
|
|
value = 1;
|
|
detail = value;
|
|
break reducibleJoin4;
|
|
}
|
|
let pop = r0.pop;
|
|
reducibleJoin6: while (true) {
|
|
if (pop !== undefined) {
|
|
break reducibleJoin6;
|
|
}
|
|
value = 1;
|
|
pop = value;
|
|
break reducibleJoin6;
|
|
}
|
|
let Math = global.Math;
|
|
const PI = Math.PI;
|
|
Math = global.Math;
|
|
const min = Math.min;
|
|
Math = global.Math;
|
|
const max = Math.max;
|
|
Math = global.Math;
|
|
const cos = Math.cos;
|
|
Math = global.Math;
|
|
const round = Math.round;
|
|
value = 0;
|
|
let property = a0[value];
|
|
const value2 = 1;
|
|
const value4 = property | a0[value2] << 8 | a0[2] << 16;
|
|
const value5 = 3;
|
|
const value6 = a0[value5] | a0[4] << 8;
|
|
const value7 = value4 >> 23;
|
|
const value8 = value6 >> 15;
|
|
const value9 = 7;
|
|
if (value8) {
|
|
reducibleJoin10: while (true) {
|
|
if (value7) {
|
|
value11 = 5;
|
|
r11 = value11;
|
|
break reducibleJoin10;
|
|
}
|
|
r11 = value9;
|
|
break reducibleJoin10;
|
|
}
|
|
r8 = r11;
|
|
} else {
|
|
r8 = value9 & value6;
|
|
}
|
|
const value12 = max(value5, r8);
|
|
if (value8) {
|
|
r1 = value9 & value6;
|
|
} else {
|
|
reducibleJoin14: while (true) {
|
|
if (value7) {
|
|
value13 = 5;
|
|
r1 = value13;
|
|
break reducibleJoin14;
|
|
}
|
|
r1 = value9;
|
|
break reducibleJoin14;
|
|
}
|
|
}
|
|
const value15 = max(value5, r1);
|
|
reducibleJoin18: while (true) {
|
|
if (value7) {
|
|
value16 = (15 & a0[5]) / 15;
|
|
r38 = value16;
|
|
break reducibleJoin18;
|
|
}
|
|
r38 = value2;
|
|
break reducibleJoin18;
|
|
}
|
|
const value17 = 5;
|
|
const value18 = a0[value17] >> 4;
|
|
reducibleJoin20: while (true) {
|
|
if (value7) {
|
|
value19 = 6;
|
|
r5 = value19;
|
|
break reducibleJoin20;
|
|
}
|
|
r5 = value17;
|
|
break reducibleJoin20;
|
|
}
|
|
const thumbHashToRGBA_112368DecodeChannel2 = thumbHashToRGBA_112368DecodeChannel;
|
|
const value20 = thumbHashToRGBA_112368DecodeChannel2(value12, value15, (value4 >> 18 & 31) / 31 / 2);
|
|
const value21 = thumbHashToRGBA_112368DecodeChannel2(value5, value5, (value6 >> value5 & 63) / 63 * pop);
|
|
const value22 = thumbHashToRGBA_112368DecodeChannel2(value5, value5, (value6 >> 9 & 63) / 63 * pop);
|
|
const r33 = value7 ? thumbHashToRGBA_112368DecodeChannel2(value17, value17, value18 / 15) : [];
|
|
const value25 = require(dependencyMap[value]).thumbHashToApproximateAspectRatio(a0);
|
|
const value26 = 32;
|
|
reducibleJoin25: while (true) {
|
|
if (value25 > value2) {
|
|
r1 = value26;
|
|
break reducibleJoin25;
|
|
}
|
|
value27 = value26 * value25;
|
|
r1 = value27;
|
|
break reducibleJoin25;
|
|
}
|
|
const value28 = round(r1);
|
|
reducibleJoin27: while (true) {
|
|
if (value25 > value2) {
|
|
value29 = value26 / value25;
|
|
r1 = value29;
|
|
break reducibleJoin27;
|
|
}
|
|
r1 = value26;
|
|
break reducibleJoin27;
|
|
}
|
|
const value30 = round(r1);
|
|
const Uint8Array = global.Uint8Array;
|
|
const uint8Array = new Uint8Array(value28 * value30 * 4);
|
|
const items2 = [];
|
|
const items3 = [];
|
|
const value34 = value < value30;
|
|
const value35 = (63 & value4) / 63;
|
|
if (value34) {
|
|
r23 = value;
|
|
r24 = value;
|
|
reducibleLoop28: while (true) {
|
|
if (value < value28) {
|
|
r59 = value;
|
|
r60 = r23;
|
|
reducibleLoop29: while (true) {
|
|
r61 = value7 ? value17 : value5;
|
|
value38 = max(value12, r61);
|
|
if (value < value38) {
|
|
r61 = value;
|
|
reducibleLoop31: while (true) {
|
|
value39 = PI / value28;
|
|
items2[r61] = cos(value39 * (r59 + 0.5) * r61);
|
|
value40 = typeof r61 === 'bigint' ? r61 + 1n : +r61 + 1;
|
|
if (value40 < value38) {
|
|
r61 = value40;
|
|
continue reducibleLoop31;
|
|
}
|
|
break reducibleLoop31;
|
|
}
|
|
}
|
|
r61 = value7 ? value17 : value5;
|
|
value41 = max(value15, r61);
|
|
if (value < value41) {
|
|
r61 = value;
|
|
reducibleLoop34: while (true) {
|
|
value42 = PI / value30;
|
|
items3[r61] = cos(value42 * (r24 + 0.5) * r61);
|
|
value43 = typeof r61 === 'bigint' ? r61 + 1n : +r61 + 1;
|
|
if (value43 < value41) {
|
|
r61 = value43;
|
|
continue reducibleLoop34;
|
|
}
|
|
break reducibleLoop34;
|
|
}
|
|
}
|
|
if (value < value15) {
|
|
r61 = value;
|
|
r62 = value;
|
|
r63 = value35;
|
|
reducibleLoop36: while (true) {
|
|
r66 = r62 ? value : value2;
|
|
value44 = 2 * items3[r62];
|
|
value45 = r66 * value15;
|
|
if (value45 < value12 * (value15 - r62)) {
|
|
r70 = r66;
|
|
r77 = r61;
|
|
r78 = r63;
|
|
reducibleLoop38: while (true) {
|
|
value46 = r70 > detail;
|
|
reducibleJoin40: while (true) {
|
|
if (value46) {
|
|
r64 = value46;
|
|
break reducibleJoin40;
|
|
}
|
|
value47 = r62 > detail;
|
|
r64 = value47;
|
|
break reducibleJoin40;
|
|
}
|
|
reducibleJoin42: while (true) {
|
|
if (r64) {
|
|
r82 = r78;
|
|
break reducibleJoin42;
|
|
}
|
|
property = value20[r77];
|
|
value48 = r78 + property * items2[r70] * value44;
|
|
r82 = value48;
|
|
break reducibleJoin42;
|
|
}
|
|
value49 = typeof r70 === 'bigint' ? r70 + 1n : +r70 + 1;
|
|
value50 = typeof r77 === 'bigint' ? r77 + 1n : +r77 + 1;
|
|
value51 = value49 * value15;
|
|
if (value51 < value12 * (value15 - r62)) {
|
|
r70 = value49;
|
|
r77 = value50;
|
|
r78 = r82;
|
|
continue reducibleLoop38;
|
|
}
|
|
r67 = value50;
|
|
r68 = r82;
|
|
break reducibleLoop38;
|
|
}
|
|
} else {
|
|
r67 = r61;
|
|
r68 = r63;
|
|
}
|
|
value52 = typeof r62 === 'bigint' ? r62 + 1n : +r62 + 1;
|
|
if (value52 < value15) {
|
|
r61 = r67;
|
|
r62 = value52;
|
|
r63 = r68;
|
|
continue reducibleLoop36;
|
|
}
|
|
r80 = r68;
|
|
break reducibleLoop36;
|
|
}
|
|
} else {
|
|
r80 = value35;
|
|
}
|
|
r61 = value;
|
|
r62 = value;
|
|
r63 = (value4 >> 12 & 63) / 31.5 - value2;
|
|
r64 = (value4 >> 6 & 63) / 31.5 - value2;
|
|
reducibleLoop45: while (true) {
|
|
r66 = r62 ? value : value2;
|
|
value53 = 2 * items3[r62];
|
|
if (r66 < value5 - r62) {
|
|
r77 = r66;
|
|
r81 = r61;
|
|
r82 = r63;
|
|
r83 = r64;
|
|
reducibleLoop47: while (true) {
|
|
value54 = items2[r77] * value53;
|
|
value55 = r83 + value21[r81] * value54;
|
|
value56 = r82 + value22[r81] * value54;
|
|
value57 = typeof r77 === 'bigint' ? r77 + 1n : +r77 + 1;
|
|
value58 = typeof r81 === 'bigint' ? r81 + 1n : +r81 + 1;
|
|
if (value57 < value5 - r62) {
|
|
r77 = value57;
|
|
r81 = value58;
|
|
r82 = value56;
|
|
r83 = value55;
|
|
continue reducibleLoop47;
|
|
}
|
|
r67 = value58;
|
|
r78 = value56;
|
|
r79 = value55;
|
|
break reducibleLoop47;
|
|
}
|
|
} else {
|
|
r67 = r61;
|
|
r78 = r63;
|
|
r79 = r64;
|
|
}
|
|
value59 = typeof r62 === 'bigint' ? r62 + 1n : +r62 + 1;
|
|
if (value59 < value5) {
|
|
r61 = r67;
|
|
r62 = value59;
|
|
r63 = r78;
|
|
r64 = r79;
|
|
continue reducibleLoop45;
|
|
}
|
|
break reducibleLoop45;
|
|
}
|
|
if (value7) {
|
|
r62 = value;
|
|
r63 = value;
|
|
r64 = r38;
|
|
reducibleLoop50: while (true) {
|
|
r82 = r63 ? value : value2;
|
|
value60 = 2 * items3[r63];
|
|
if (r82 < value17 - r63) {
|
|
r85 = r82;
|
|
r86 = r62;
|
|
r87 = r64;
|
|
reducibleLoop52: while (true) {
|
|
property = r33[r86];
|
|
value61 = r87 + property * items2[r85] * value60;
|
|
value62 = typeof r85 === 'bigint' ? r85 + 1n : +r85 + 1;
|
|
value63 = typeof r86 === 'bigint' ? r86 + 1n : +r86 + 1;
|
|
if (value62 < value17 - r63) {
|
|
r85 = value62;
|
|
r86 = value63;
|
|
r87 = value61;
|
|
continue reducibleLoop52;
|
|
}
|
|
r83 = value63;
|
|
r84 = value61;
|
|
break reducibleLoop52;
|
|
}
|
|
} else {
|
|
r83 = r62;
|
|
r84 = r64;
|
|
}
|
|
value64 = typeof r63 === 'bigint' ? r63 + 1n : +r63 + 1;
|
|
if (value64 < value17) {
|
|
r62 = r83;
|
|
r63 = value64;
|
|
r64 = r84;
|
|
continue reducibleLoop50;
|
|
}
|
|
r61 = r84;
|
|
break reducibleLoop50;
|
|
}
|
|
} else {
|
|
r61 = r38;
|
|
}
|
|
value65 = r80 - 0.6666666666666666 * r79;
|
|
value66 = (value5 * r80 - value65 + r78) / 2;
|
|
uint8Array[r60] = max(value, 255 * min(value2, value66));
|
|
value67 = max(value, 255 * min(value2, value66 - r78));
|
|
uint8Array[r60 + value2] = value67;
|
|
value68 = max(value, 255 * min(value2, value65));
|
|
uint8Array[r60 + 2] = value68;
|
|
value69 = max(value, 255 * min(value2, r61));
|
|
uint8Array[r60 + value5] = value69;
|
|
value70 = typeof r59 === 'bigint' ? r59 + 1n : +r59 + 1;
|
|
value71 = r60 + 4;
|
|
if (value70 < value28) {
|
|
r59 = value70;
|
|
r60 = value71;
|
|
continue reducibleLoop29;
|
|
}
|
|
r23 = value71;
|
|
break reducibleLoop29;
|
|
}
|
|
}
|
|
value72 = typeof r24 === 'bigint' ? r24 + 1n : +r24 + 1;
|
|
if (value72 < value30) {
|
|
r24 = value72;
|
|
continue reducibleLoop28;
|
|
}
|
|
break reducibleLoop28;
|
|
}
|
|
}
|
|
return {w: value28, h: value30, rgba: uint8Array};
|
|
function thumbHashToRGBA_112368DecodeChannel(a0, a1, a2) { // fn#112369, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15058:316, owner: thumbHashToRGBA_112368.decodeChannel, offset: 0x02290c5a, size: 177 bytes, params: 4, frame: 24
|
|
var r1;
|
|
var r13;
|
|
var value4;
|
|
var push;
|
|
var binding;
|
|
var binding2;
|
|
var property;
|
|
var value5;
|
|
var value6;
|
|
var value7;
|
|
var value8;
|
|
const items2 = [];
|
|
const value = 0;
|
|
const value3 = 1;
|
|
if (value < a1) {
|
|
r1 = value;
|
|
reducibleLoop1: while (true) {
|
|
r13 = r1 ? value : value3;
|
|
value4 = r13 * a1;
|
|
if (value4 < a0 * (a1 - r1)) {
|
|
reducibleLoop3: while (true) {
|
|
push = items2.push;
|
|
binding = env0_0;
|
|
binding2 = env0_1;
|
|
property = binding[binding2 + (env0_2 >> value3)];
|
|
binding = env0_2;
|
|
value5 = typeof binding === 'bigint' ? binding : +binding;
|
|
env0_2 = typeof value5 === 'bigint' ? value5 + 1n : +value5 + 1;
|
|
Reflect.apply(push, items2, [((property >> ((value3 & value5) << 2) & 15) / 7.5 - value3) * a2]);
|
|
value6 = typeof r13 === 'bigint' ? r13 + 1n : +r13 + 1;
|
|
value7 = value6 * a1;
|
|
if (value7 < a0 * (a1 - r1)) {
|
|
r13 = value6;
|
|
continue reducibleLoop3;
|
|
}
|
|
break reducibleLoop3;
|
|
}
|
|
}
|
|
value8 = typeof r1 === 'bigint' ? r1 + 1n : +r1 + 1;
|
|
if (value8 < a1) {
|
|
r1 = value8;
|
|
continue reducibleLoop1;
|
|
}
|
|
break reducibleLoop1;
|
|
}
|
|
}
|
|
return items2;
|
|
}
|
|
|
|
}
|
|
|
|
function createThumbhashImageFromPlaceholder(a0) { // fn#112370, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:15058:1505, offset: 0x023c8166, size: 121 bytes, params: 2, frame: 17
|
|
const thumbHashToRGBA_112368Binding = thumbHashToRGBA_112368;
|
|
const Uint8Array = global.Uint8Array;
|
|
const value4 = thumbHashToRGBA_112368Binding(Uint8Array.from(global.atob(a0), function(a0) {
|
|
return a0.charCodeAt(0);
|
|
}), {'detail': 1, 'pop': 1.1});
|
|
return Module13657Module.rgbaToDataURL(value4.w, value4.h, value4.rgba);
|
|
}
|
|
|
|
}
|
|
|
|
global.__d(_fun112367, 14861, [13657, 2]) /* metro module 14861, dependencies: [13657, 2] */;
|