UNPKG

@breezystack/lamejs

Version:
1,403 lines 260 kB
var fa = {}; function Xa(w) { return new Int8Array(w); } function ma(w) { return new Int16Array(w); } function ba(w) { return new Int32Array(w); } function ca(w) { return new Float32Array(w); } function Ya(w) { return new Float64Array(w); } function Sa(w) { if (w.length == 1) return ca(w[0]); var Z = w[0]; w = w.slice(1); for (var X = [], z = 0; z < Z; z++) X.push(Sa(w)); return X; } function da(w) { if (w.length == 1) return ba(w[0]); var Z = w[0]; w = w.slice(1); for (var X = [], z = 0; z < Z; z++) X.push(da(w)); return X; } function Aa(w) { if (w.length == 1) return ma(w[0]); var Z = w[0]; w = w.slice(1); for (var X = [], z = 0; z < Z; z++) X.push(Aa(w)); return X; } function Ra(w) { if (w.length == 1) return new Array(w[0]); var Z = w[0]; w = w.slice(1); for (var X = [], z = 0; z < Z; z++) X.push(Ra(w)); return X; } var xa = {}; xa.fill = function(w, Z, X, z) { if (arguments.length == 2) for (var u0 = 0; u0 < w.length; u0++) w[u0] = arguments[1]; else for (var u0 = Z; u0 < X; u0++) w[u0] = z; }; var W1 = {}; W1.arraycopy = function(w, Z, X, z, u0) { for (var W = Z + u0; Z < W; ) X[z++] = w[Z++]; }; W1.out = {}; W1.out.println = function(w) { console.log(w); }; W1.out.printf = function() { console.log.apply(console, arguments); }; var se = {}; se.SQRT2 = 1.4142135623730951; se.FAST_LOG10 = function(w) { return Math.log10(w); }; se.FAST_LOG10_X = function(w, Z) { return Math.log10(w) * Z; }; function B1(w) { this.ordinal = w; } B1.short_block_allowed = new B1(0); B1.short_block_coupled = new B1(1); B1.short_block_dispensed = new B1(2); B1.short_block_forced = new B1(3); var Ma = {}; Ma.MAX_VALUE = 34028235e31; function u1(w) { this.ordinal = w; } u1.vbr_off = new u1(0); u1.vbr_mt = new u1(1); u1.vbr_rh = new u1(2); u1.vbr_abr = new u1(3); u1.vbr_mtrh = new u1(4); u1.vbr_default = u1.vbr_mtrh; var qa = function(w) { }, Q0 = { System: W1, VbrMode: u1, Float: Ma, ShortBlock: B1, Util: se, Arrays: xa, new_array_n: Ra, new_byte: Xa, new_double: Ya, new_float: ca, new_float_n: Sa, new_int: ba, new_int_n: da, new_short: ma, new_short_n: Aa, assert: qa }, ce, De; function Da() { if (De) return ce; De = 1; var w = Q0, Z = w.System, X = w.Util, z = w.Arrays, u0 = w.new_float, W = t1(); function Q() { var D = [ -0.1482523854003001, 32.308141959636465, 296.40344946382766, 883.1344870032432, 11113.947376231741, 1057.2713659324597, 305.7402417275812, 30.825928907280012, /* 15 */ 3.8533188138216365, 59.42900443849514, 709.5899960123345, 5281.91112291017, -5829.66483675846, -817.6293103748613, -76.91656988279972, -4.594269939176596, 0.9063471690191471, 0.1960342806591213, -0.15466694054279598, 34.324387823855965, 301.8067566458425, 817.599602898885, 11573.795901679885, 1181.2520595540152, 321.59731579894424, 31.232021761053772, /* 14 */ 3.7107095756221318, 53.650946155329365, 684.167428119626, 5224.56624370173, -6366.391851890084, -908.9766368219582, -89.83068876699639, -5.411397422890401, 0.8206787908286602, 0.3901806440322567, -0.16070888947830023, 36.147034243915876, 304.11815768187864, 732.7429163887613, 11989.60988270091, 1300.012278487897, 335.28490093152146, 31.48816102859945, /* 13 */ 3.373875931311736, 47.232241542899175, 652.7371796173471, 5132.414255594984, -6909.087078780055, -1001.9990371107289, -103.62185754286375, -6.104916304710272, 0.7416505462720353, 0.5805693545089249, -0.16636367662261495, 37.751650073343995, 303.01103387567713, 627.9747488785183, 12358.763425278165, 1412.2779918482834, 346.7496836825721, 31.598286663170416, /* 12 */ 3.1598635433980946, 40.57878626349686, 616.1671130880391, 5007.833007176154, -7454.040671756168, -1095.7960341867115, -118.24411666465777, -6.818469345853504, 0.6681786379192989, 0.7653668647301797, -0.1716176790982088, 39.11551877123304, 298.3413246578966, 503.5259106886539, 12679.589408408976, 1516.5821921214542, 355.9850766329023, 31.395241710249053, /* 11 */ 2.9164211881972335, 33.79716964664243, 574.8943997801362, 4853.234992253242, -7997.57021486075, -1189.7624067269965, -133.6444792601766, -7.7202770609839915, 0.5993769336819237, 0.9427934736519954, -0.17645823955292173, 40.21879108166477, 289.9982036694474, 359.3226160751053, 12950.259102786438, 1612.1013903507662, 362.85067106591504, 31.045922092242872, /* 10 */ 2.822222032597987, 26.988862316190684, 529.8996541764288, 4671.371946949588, -8535.899136645805, -1282.5898586244496, -149.58553632943463, -8.643494270763135, 0.5345111359507916, 1.111140466039205, -0.36174739330527045, 41.04429910497807, 277.5463268268618, 195.6386023135583, 13169.43812144731, 1697.6433561479398, 367.40983966190305, 30.557037410382826, /* 9 */ 2.531473372857427, 20.070154905927314, 481.50208566532336, 4464.970341588308, -9065.36882077239, -1373.62841526722, -166.1660487028118, -9.58289321133207, 0.4729647758913199, 1.268786568327291, -0.36970682634889585, 41.393213350082036, 261.2935935556502, 12.935476055240873, 13336.131683328815, 1772.508612059496, 369.76534388639965, 29.751323653701338, 2.4023193045459172, 13.304795348228817, 430.5615775526625, 4237.0568611071185, -9581.931701634761, -1461.6913552409758, -183.12733958476446, -10.718010163869403, 0.41421356237309503, /* tan(PI/8) */ 1.414213562373095, -0.37677560326535325, 41.619486213528496, 241.05423794991074, -187.94665032361226, 13450.063605744153, 1836.153896465782, 369.4908799925761, 29.001847876923147, /* 7 */ 2.0714759319987186, 6.779591200894186, 377.7767837205709, 3990.386575512536, -10081.709459700915, -1545.947424837898, -200.3762958015653, -11.864482073055006, 0.3578057213145241, 1.546020906725474, -0.3829366947518991, 41.1516456456653, 216.47684307105183, -406.1569483347166, 13511.136535077321, 1887.8076599260432, 367.3025214564151, 28.136213436723654, /* 6 */ 1.913880671464418, 0.3829366947518991, 323.85365704338597, 3728.1472257487526, -10561.233882199509, -1625.2025997821418, -217.62525175416, -13.015432208941645, 0.3033466836073424, 1.66293922460509, -0.5822628872992417, 40.35639251440489, 188.20071124269245, -640.2706748618148, 13519.21490106562, 1927.6022433578062, 362.8197642637487, 26.968821921868447, /* 5 */ 1.7463817695935329, -5.62650678237171, 269.3016715297017, 3453.386536448852, -11016.145278780888, -1698.6569643425091, -234.7658734267683, -14.16351421663124, 0.2504869601913055, 1.76384252869671, -0.5887180101749253, 39.23429103868072, 155.76096234403798, -889.2492977967378, 13475.470561874661, 1955.0535223723712, 356.4450994756727, 25.894952980042156, /* 4 */ 1.5695032905781554, -11.181939564328772, 214.80884394039484, 3169.1640829158237, -11443.321309975563, -1765.1588461316153, -251.68908574481912, -15.49755935939164, 0.198912367379658, 1.847759065022573, -0.7912582233652842, 37.39369355329111, 119.699486012458, -1151.0956593239027, 13380.446257078214, 1970.3952110853447, 348.01959814116185, 24.731487364283044, /* 3 */ 1.3850130831637748, -16.421408865300393, 161.05030052864092, 2878.3322807850063, -11838.991423510031, -1823.985884688674, -268.2854986386903, -16.81724543849939, 0.1483359875383474, 1.913880671464418, -0.7960642926861912, 35.2322109610459, 80.01928065061526, -1424.0212633405113, 13235.794061869668, 1973.804052543835, 337.9908651258184, 23.289159354463873, 1.3934255946442087, -21.099669467133474, 108.48348407242611, 2583.700758091299, -12199.726194855148, -1874.2780658979746, -284.2467154529415, -18.11369784385905, 0.09849140335716425, 1.961570560806461, -0.998795456205172, 32.56307803611191, 36.958364584370486, -1706.075448829146, 13043.287458812016, 1965.3831106103316, 326.43182772364605, 22.175018750622293, 1.198638339011324, -25.371248002043963, 57.53505923036915, 2288.41886619975, -12522.674544337233, -1914.8400385312243, -299.26241273417224, -19.37805630698734, 0.04912684976946725, 1.990369453344394, 0.035780907 * X.SQRT2 * 0.5 / 2384e-9, 0.017876148 * X.SQRT2 * 0.5 / 2384e-9, 3134727e-9 * X.SQRT2 * 0.5 / 2384e-9, 2457142e-9 * X.SQRT2 * 0.5 / 2384e-9, 971317e-9 * X.SQRT2 * 0.5 / 2384e-9, 218868e-9 * X.SQRT2 * 0.5 / 2384e-9, 101566e-9 * X.SQRT2 * 0.5 / 2384e-9, 13828e-9 * X.SQRT2 * 0.5 / 2384e-9, 12804.797818791945, 1945.5515939597317, 313.4244966442953, 20.801593959731544, 1995.1556208053692, 9.000838926174497, -29.20218120805369 /* 2.384e-06/2.384e-06 */ ], g = 12, f0 = 36, A = [ [ 2382191739347913e-28, 6423305872147834e-28, 9400849094049688e-28, 1122435026096556e-27, 1183840321267481e-27, 1122435026096556e-27, 940084909404969e-27, 6423305872147839e-28, 2382191739347918e-28, 5456116108943412e-27, 4878985199565852e-27, 4240448995017367e-27, 3559909094758252e-27, 2858043359288075e-27, 2156177623817898e-27, 1475637723558783e-27, 8371015190102974e-28, 2599706096327376e-28, -5456116108943412e-27, -4878985199565852e-27, -4240448995017367e-27, -3559909094758252e-27, -2858043359288076e-27, -2156177623817898e-27, -1475637723558783e-27, -8371015190102975e-28, -2599706096327376e-28, -2382191739347923e-28, -6423305872147843e-28, -9400849094049696e-28, -1122435026096556e-27, -1183840321267481e-27, -1122435026096556e-27, -9400849094049694e-28, -642330587214784e-27, -2382191739347918e-28 ], [ 2382191739347913e-28, 6423305872147834e-28, 9400849094049688e-28, 1122435026096556e-27, 1183840321267481e-27, 1122435026096556e-27, 9400849094049688e-28, 6423305872147841e-28, 2382191739347918e-28, 5456116108943413e-27, 4878985199565852e-27, 4240448995017367e-27, 3559909094758253e-27, 2858043359288075e-27, 2156177623817898e-27, 1475637723558782e-27, 8371015190102975e-28, 2599706096327376e-28, -5461314069809755e-27, -4921085770524055e-27, -4343405037091838e-27, -3732668368707687e-27, -3093523840190885e-27, -2430835727329465e-27, -1734679010007751e-27, -974825365660928e-27, -2797435120168326e-28, 0, 0, 0, 0, 0, 0, -2283748241799531e-28, -4037858874020686e-28, -2146547464825323e-28 ], [ 0.1316524975873958, /* win[SHORT_TYPE] */ 0.414213562373095, 0.7673269879789602, 1.091308501069271, /* tantab_l */ 1.303225372841206, 1.56968557711749, 1.920982126971166, 2.414213562373094, 3.171594802363212, 4.510708503662055, 7.595754112725146, 22.90376554843115, 0.984807753012208, /* cx */ 0.6427876096865394, 0.3420201433256688, 0.9396926207859084, -0.1736481776669303, -0.7660444431189779, 0.8660254037844387, 0.5, -0.5144957554275265, /* ca */ -0.4717319685649723, -0.3133774542039019, -0.1819131996109812, -0.09457419252642064, -0.04096558288530405, -0.01419856857247115, -0.003699974673760037, 0.8574929257125442, /* cs */ 0.8817419973177052, 0.9496286491027329, 0.9833145924917901, 0.9955178160675857, 0.9991605581781475, 0.999899195244447, 0.9999931550702802 ], [ 0, 0, 0, 0, 0, 0, 2283748241799531e-28, 4037858874020686e-28, 2146547464825323e-28, 5461314069809755e-27, 4921085770524055e-27, 4343405037091838e-27, 3732668368707687e-27, 3093523840190885e-27, 2430835727329466e-27, 1734679010007751e-27, 974825365660928e-27, 2797435120168326e-28, -5456116108943413e-27, -4878985199565852e-27, -4240448995017367e-27, -3559909094758253e-27, -2858043359288075e-27, -2156177623817898e-27, -1475637723558782e-27, -8371015190102975e-28, -2599706096327376e-28, -2382191739347913e-28, -6423305872147834e-28, -9400849094049688e-28, -1122435026096556e-27, -1183840321267481e-27, -1122435026096556e-27, -9400849094049688e-28, -6423305872147841e-28, -2382191739347918e-28 ] ], m = A[W.SHORT_TYPE], O = A[W.SHORT_TYPE], s0 = A[W.SHORT_TYPE], K = A[W.SHORT_TYPE], t0 = [ 0, 1, 16, 17, 8, 9, 24, 25, 4, 5, 20, 21, 12, 13, 28, 29, 2, 3, 18, 19, 10, 11, 26, 27, 6, 7, 22, 23, 14, 15, 30, 31 ]; function U(u, d, e) { for (var l = 10, M = d + 238 - 14 - 286, p = -15; p < 0; p++) { var H, B, I; H = D[l + -10], B = u[M + -224] * H, I = u[d + 224] * H, H = D[l + -9], B += u[M + -160] * H, I += u[d + 160] * H, H = D[l + -8], B += u[M + -96] * H, I += u[d + 96] * H, H = D[l + -7], B += u[M + -32] * H, I += u[d + 32] * H, H = D[l + -6], B += u[M + 32] * H, I += u[d + -32] * H, H = D[l + -5], B += u[M + 96] * H, I += u[d + -96] * H, H = D[l + -4], B += u[M + 160] * H, I += u[d + -160] * H, H = D[l + -3], B += u[M + 224] * H, I += u[d + -224] * H, H = D[l + -2], B += u[d + -256] * H, I -= u[M + 256] * H, H = D[l + -1], B += u[d + -192] * H, I -= u[M + 192] * H, H = D[l + 0], B += u[d + -128] * H, I -= u[M + 128] * H, H = D[l + 1], B += u[d + -64] * H, I -= u[M + 64] * H, H = D[l + 2], B += u[d + 0] * H, I -= u[M + 0] * H, H = D[l + 3], B += u[d + 64] * H, I -= u[M + -64] * H, H = D[l + 4], B += u[d + 128] * H, I -= u[M + -128] * H, H = D[l + 5], B += u[d + 192] * H, I -= u[M + -192] * H, B *= D[l + 6], H = I - B, e[30 + p * 2] = I + B, e[31 + p * 2] = D[l + 7] * H, l += 18, d--, M++; } { var B, I, v0, b; I = u[d + -16] * D[l + -10], B = u[d + -32] * D[l + -2], I += (u[d + -48] - u[d + 16]) * D[l + -9], B += u[d + -96] * D[l + -1], I += (u[d + -80] + u[d + 48]) * D[l + -8], B += u[d + -160] * D[l + 0], I += (u[d + -112] - u[d + 80]) * D[l + -7], B += u[d + -224] * D[l + 1], I += (u[d + -144] + u[d + 112]) * D[l + -6], B -= u[d + 32] * D[l + 2], I += (u[d + -176] - u[d + 144]) * D[l + -5], B -= u[d + 96] * D[l + 3], I += (u[d + -208] + u[d + 176]) * D[l + -4], B -= u[d + 160] * D[l + 4], I += (u[d + -240] - u[d + 208]) * D[l + -3], B -= u[d + 224], v0 = B - I, b = B + I, I = e[14], B = e[15] - I, e[31] = b + I, e[30] = v0 + B, e[15] = v0 - B, e[14] = b - I; } { var a; a = e[28] - e[0], e[0] += e[28], e[28] = a * D[l + -2 * 18 + 7], a = e[29] - e[1], e[1] += e[29], e[29] = a * D[l + -2 * 18 + 7], a = e[26] - e[2], e[2] += e[26], e[26] = a * D[l + -4 * 18 + 7], a = e[27] - e[3], e[3] += e[27], e[27] = a * D[l + -4 * 18 + 7], a = e[24] - e[4], e[4] += e[24], e[24] = a * D[l + -6 * 18 + 7], a = e[25] - e[5], e[5] += e[25], e[25] = a * D[l + -6 * 18 + 7], a = e[22] - e[6], e[6] += e[22], e[22] = a * X.SQRT2, a = e[23] - e[7], e[7] += e[23], e[23] = a * X.SQRT2 - e[7], e[7] -= e[6], e[22] -= e[7], e[23] -= e[22], a = e[6], e[6] = e[31] - a, e[31] = e[31] + a, a = e[7], e[7] = e[30] - a, e[30] = e[30] + a, a = e[22], e[22] = e[15] - a, e[15] = e[15] + a, a = e[23], e[23] = e[14] - a, e[14] = e[14] + a, a = e[20] - e[8], e[8] += e[20], e[20] = a * D[l + -10 * 18 + 7], a = e[21] - e[9], e[9] += e[21], e[21] = a * D[l + -10 * 18 + 7], a = e[18] - e[10], e[10] += e[18], e[18] = a * D[l + -12 * 18 + 7], a = e[19] - e[11], e[11] += e[19], e[19] = a * D[l + -12 * 18 + 7], a = e[16] - e[12], e[12] += e[16], e[16] = a * D[l + -14 * 18 + 7], a = e[17] - e[13], e[13] += e[17], e[17] = a * D[l + -14 * 18 + 7], a = -e[20] + e[24], e[20] += e[24], e[24] = a * D[l + -12 * 18 + 7], a = -e[21] + e[25], e[21] += e[25], e[25] = a * D[l + -12 * 18 + 7], a = e[4] - e[8], e[4] += e[8], e[8] = a * D[l + -12 * 18 + 7], a = e[5] - e[9], e[5] += e[9], e[9] = a * D[l + -12 * 18 + 7], a = e[0] - e[12], e[0] += e[12], e[12] = a * D[l + -4 * 18 + 7], a = e[1] - e[13], e[1] += e[13], e[13] = a * D[l + -4 * 18 + 7], a = e[16] - e[28], e[16] += e[28], e[28] = a * D[l + -4 * 18 + 7], a = -e[17] + e[29], e[17] += e[29], e[29] = a * D[l + -4 * 18 + 7], a = X.SQRT2 * (e[2] - e[10]), e[2] += e[10], e[10] = a, a = X.SQRT2 * (e[3] - e[11]), e[3] += e[11], e[11] = a, a = X.SQRT2 * (-e[18] + e[26]), e[18] += e[26], e[26] = a - e[18], a = X.SQRT2 * (-e[19] + e[27]), e[19] += e[27], e[27] = a - e[19], a = e[2], e[19] -= e[3], e[3] -= a, e[2] = e[31] - a, e[31] += a, a = e[3], e[11] -= e[19], e[18] -= a, e[3] = e[30] - a, e[30] += a, a = e[18], e[27] -= e[11], e[19] -= a, e[18] = e[15] - a, e[15] += a, a = e[19], e[10] -= a, e[19] = e[14] - a, e[14] += a, a = e[10], e[11] -= a, e[10] = e[23] - a, e[23] += a, a = e[11], e[26] -= a, e[11] = e[22] - a, e[22] += a, a = e[26], e[27] -= a, e[26] = e[7] - a, e[7] += a, a = e[27], e[27] = e[6] - a, e[6] += a, a = X.SQRT2 * (e[0] - e[4]), e[0] += e[4], e[4] = a, a = X.SQRT2 * (e[1] - e[5]), e[1] += e[5], e[5] = a, a = X.SQRT2 * (e[16] - e[20]), e[16] += e[20], e[20] = a, a = X.SQRT2 * (e[17] - e[21]), e[17] += e[21], e[21] = a, a = -X.SQRT2 * (e[8] - e[12]), e[8] += e[12], e[12] = a - e[8], a = -X.SQRT2 * (e[9] - e[13]), e[9] += e[13], e[13] = a - e[9], a = -X.SQRT2 * (e[25] - e[29]), e[25] += e[29], e[29] = a - e[25], a = -X.SQRT2 * (e[24] + e[28]), e[24] -= e[28], e[28] = a - e[24], a = e[24] - e[16], e[24] = a, a = e[20] - a, e[20] = a, a = e[28] - a, e[28] = a, a = e[25] - e[17], e[25] = a, a = e[21] - a, e[21] = a, a = e[29] - a, e[29] = a, a = e[17] - e[1], e[17] = a, a = e[9] - a, e[9] = a, a = e[25] - a, e[25] = a, a = e[5] - a, e[5] = a, a = e[21] - a, e[21] = a, a = e[13] - a, e[13] = a, a = e[29] - a, e[29] = a, a = e[1] - e[0], e[1] = a, a = e[16] - a, e[16] = a, a = e[17] - a, e[17] = a, a = e[8] - a, e[8] = a, a = e[9] - a, e[9] = a, a = e[24] - a, e[24] = a, a = e[25] - a, e[25] = a, a = e[4] - a, e[4] = a, a = e[5] - a, e[5] = a, a = e[20] - a, e[20] = a, a = e[21] - a, e[21] = a, a = e[12] - a, e[12] = a, a = e[13] - a, e[13] = a, a = e[28] - a, e[28] = a, a = e[29] - a, e[29] = a, a = e[0], e[0] += e[31], e[31] -= a, a = e[1], e[1] += e[30], e[30] -= a, a = e[16], e[16] += e[15], e[15] -= a, a = e[17], e[17] += e[14], e[14] -= a, a = e[8], e[8] += e[23], e[23] -= a, a = e[9], e[9] += e[22], e[22] -= a, a = e[24], e[24] += e[7], e[7] -= a, a = e[25], e[25] += e[6], e[6] -= a, a = e[4], e[4] += e[27], e[27] -= a, a = e[5], e[5] += e[26], e[26] -= a, a = e[20], e[20] += e[11], e[11] -= a, a = e[21], e[21] += e[10], e[10] -= a, a = e[12], e[12] += e[19], e[19] -= a, a = e[13], e[13] += e[18], e[18] -= a, a = e[28], e[28] += e[3], e[3] -= a, a = e[29], e[29] += e[2], e[2] -= a; } } function R(u, d) { for (var e = 0; e < 3; e++) { var l, M, p, H, B, I; H = u[d + 2 * 3] * A[W.SHORT_TYPE][0] - u[d + 5 * 3], l = u[d + 0 * 3] * A[W.SHORT_TYPE][2] - u[d + 3 * 3], M = H + l, p = H - l, H = u[d + 5 * 3] * A[W.SHORT_TYPE][0] + u[d + 2 * 3], l = u[d + 3 * 3] * A[W.SHORT_TYPE][2] + u[d + 0 * 3], B = H + l, I = -H + l, l = (u[d + 1 * 3] * A[W.SHORT_TYPE][1] - u[d + 4 * 3]) * 2069978111953089e-26, H = (u[d + 4 * 3] * A[W.SHORT_TYPE][1] + u[d + 1 * 3]) * 2069978111953089e-26, u[d + 3 * 0] = M * 190752519173728e-25 + l, u[d + 3 * 5] = -B * 190752519173728e-25 + H, p = p * 0.8660254037844387 * 1907525191737281e-26, B = B * 0.5 * 1907525191737281e-26 + H, u[d + 3 * 1] = p - B, u[d + 3 * 2] = p + B, M = M * 0.5 * 1907525191737281e-26 - l, I = I * 0.8660254037844387 * 1907525191737281e-26, u[d + 3 * 3] = M + I, u[d + 3 * 4] = M - I, d++; } } function o(u, d, e) { var l, M; { var p, H, B, I, v0, b, a, S; p = e[17] - e[9], B = e[15] - e[11], I = e[14] - e[12], v0 = e[0] + e[8], b = e[1] + e[7], a = e[2] + e[6], S = e[3] + e[5], u[d + 17] = v0 + a - S - (b - e[4]), M = (v0 + a - S) * O[12 + 7] + (b - e[4]), l = (p - B - I) * O[12 + 6], u[d + 5] = l + M, u[d + 6] = l - M, H = (e[16] - e[10]) * O[12 + 6], b = b * O[12 + 7] + e[4], l = p * O[12 + 0] + H + B * O[12 + 1] + I * O[12 + 2], M = -v0 * O[12 + 4] + b - a * O[12 + 5] + S * O[12 + 3], u[d + 1] = l + M, u[d + 2] = l - M, l = p * O[12 + 1] - H - B * O[12 + 2] + I * O[12 + 0], M = -v0 * O[12 + 5] + b - a * O[12 + 3] + S * O[12 + 4], u[d + 9] = l + M, u[d + 10] = l - M, l = p * O[12 + 2] - H + B * O[12 + 0] - I * O[12 + 1], M = v0 * O[12 + 3] - b + a * O[12 + 4] - S * O[12 + 5], u[d + 13] = l + M, u[d + 14] = l - M; } { var L, V, N, P, E, i, s, r; L = e[8] - e[0], N = e[6] - e[2], P = e[5] - e[3], E = e[17] + e[9], i = e[16] + e[10], s = e[15] + e[11], r = e[14] + e[12], u[d + 0] = E + s + r + (i + e[13]), l = (E + s + r) * O[12 + 7] - (i + e[13]), M = (L - N + P) * O[12 + 6], u[d + 11] = l + M, u[d + 12] = l - M, V = (e[7] - e[1]) * O[12 + 6], i = e[13] - i * O[12 + 7], l = E * O[12 + 3] - i + s * O[12 + 4] + r * O[12 + 5], M = L * O[12 + 2] + V + N * O[12 + 0] + P * O[12 + 1], u[d + 3] = l + M, u[d + 4] = l - M, l = -E * O[12 + 5] + i - s * O[12 + 3] - r * O[12 + 4], M = L * O[12 + 1] + V - N * O[12 + 2] - P * O[12 + 0], u[d + 7] = l + M, u[d + 8] = l - M, l = -E * O[12 + 4] + i - s * O[12 + 5] - r * O[12 + 3], M = L * O[12 + 0] - V + N * O[12 + 1] - P * O[12 + 2], u[d + 15] = l + M, u[d + 16] = l - M; } } this.mdct_sub48 = function(u, d, e) { for (var l = d, M = 286, p = 0; p < u.channels_out; p++) { for (var H = 0; H < u.mode_gr; H++) { for (var B, I = u.l3_side.tt[H][p], v0 = I.xr, b = 0, a = u.sb_sample[p][1 - H], S = 0, L = 0; L < 18 / 2; L++) for (U(l, M, a[S]), U(l, M + 32, a[S + 1]), S += 2, M += 64, B = 1; B < 32; B += 2) a[S - 1][B] *= -1; for (B = 0; B < 32; B++, b += 18) { var V = I.block_type, N = u.sb_sample[p][H], P = u.sb_sample[p][1 - H]; if (I.mixed_block_flag != 0 && B < 2 && (V = 0), u.amp_filter[B] < 1e-12) z.fill( v0, b + 0, b + 18, 0 ); else { if (u.amp_filter[B] < 1) for (var L = 0; L < 18; L++) P[L][t0[B]] *= u.amp_filter[B]; if (V == W.SHORT_TYPE) { for (var L = -g / 4; L < 0; L++) { var E = A[W.SHORT_TYPE][L + 3]; v0[b + L * 3 + 9] = N[9 + L][t0[B]] * E - N[8 - L][t0[B]], v0[b + L * 3 + 18] = N[14 - L][t0[B]] * E + N[15 + L][t0[B]], v0[b + L * 3 + 10] = N[15 + L][t0[B]] * E - N[14 - L][t0[B]], v0[b + L * 3 + 19] = P[2 - L][t0[B]] * E + P[3 + L][t0[B]], v0[b + L * 3 + 11] = P[3 + L][t0[B]] * E - P[2 - L][t0[B]], v0[b + L * 3 + 20] = P[8 - L][t0[B]] * E + P[9 + L][t0[B]]; } R(v0, b); } else { for (var i = u0(18), L = -f0 / 4; L < 0; L++) { var s, r; s = A[V][L + 27] * P[L + 9][t0[B]] + A[V][L + 36] * P[8 - L][t0[B]], r = A[V][L + 9] * N[L + 9][t0[B]] - A[V][L + 18] * N[8 - L][t0[B]], i[L + 9] = s - r * m[3 + L + 9], i[L + 18] = s * m[3 + L + 9] + r; } o(v0, b, i); } } if (V != W.SHORT_TYPE && B != 0) for (var L = 7; L >= 0; --L) { var n, f; n = v0[b + L] * s0[20 + L] + v0[b + -1 - L] * K[28 + L], f = v0[b + L] * K[28 + L] - v0[b + -1 - L] * s0[20 + L], v0[b + -1 - L] = n, v0[b + L] = f; } } } if (l = e, M = 286, u.mode_gr == 1) for (var Y = 0; Y < 18; Y++) Z.arraycopy( u.sb_sample[p][1][Y], 0, u.sb_sample[p][0][Y], 0, 32 ); } }; } return ce = Q, ce; } var Se, Ge; function Ea() { if (Ge) return Se; Ge = 1; var w = t1(), Z = Q0, X = Z.System, z = Z.new_float, u0 = Z.new_float_n; function W() { this.l = z(w.SBMAX_l), this.s = u0([w.SBMAX_s, 3]); var Q = this; this.assign = function(D) { X.arraycopy(D.l, 0, Q.l, 0, w.SBMAX_l); for (var g = 0; g < w.SBMAX_s; g++) for (var f0 = 0; f0 < 3; f0++) Q.s[g][f0] = D.s[g][f0]; }; } return Se = W, Se; } var de, $e; function Ga() { if ($e) return de; $e = 1; var w = Ea(); function Z() { this.thm = new w(), this.en = new w(); } return de = Z, de; } function R1(w) { var Z = w; this.ordinal = function() { return Z; }; } R1.STEREO = new R1(0); R1.JOINT_STEREO = new R1(1); R1.DUAL_CHANNEL = new R1(2); R1.MONO = new R1(3); R1.NOT_SET = new R1(4); var j1 = R1, Ae, Pe; function t1() { if (Pe) return Ae; Pe = 1; var w = Q0, Z = w.System, X = w.VbrMode, z = w.new_array_n, u0 = w.new_float, W = w.new_float_n, Q = w.new_int, D = w.assert; g.ENCDELAY = 576, g.POSTDELAY = 1152, g.MDCTDELAY = 48, g.FFTOFFSET = 224 + g.MDCTDELAY, g.DECDELAY = 528, g.SBLIMIT = 32, g.CBANDS = 64, g.SBPSY_l = 21, g.SBPSY_s = 12, g.SBMAX_l = 22, g.SBMAX_s = 13, g.PSFB21 = 6, g.PSFB12 = 6, g.BLKSIZE = 1024, g.HBLKSIZE = g.BLKSIZE / 2 + 1, g.BLKSIZE_s = 256, g.HBLKSIZE_s = g.BLKSIZE_s / 2 + 1, g.NORM_TYPE = 0, g.START_TYPE = 1, g.SHORT_TYPE = 2, g.STOP_TYPE = 3, g.MPG_MD_LR_LR = 0, g.MPG_MD_LR_I = 1, g.MPG_MD_MS_LR = 2, g.MPG_MD_MS_I = 3, g.fircoef = [ -0.0207887 * 5, -0.0378413 * 5, -0.0432472 * 5, -0.031183 * 5, 779609e-23 * 5, 0.0467745 * 5, 0.10091 * 5, 0.151365 * 5, 0.187098 * 5 ]; function g() { var f0 = Da(), A = Ga(), m = j1, O = g.FFTOFFSET, s0 = g.MPG_MD_MS_LR, K = null; this.psy = null; var t0 = null, U = null, R = null; this.setModules = function(l, M, p, H) { K = l, this.psy = M, t0 = M, U = H, R = p; }; var o = new f0(); function u(l) { var M, p; if (l.ATH.useAdjust == 0) { l.ATH.adjust = 1; return; } if (p = l.loudness_sq[0][0], M = l.loudness_sq[1][0], l.channels_out == 2 ? (p += l.loudness_sq[0][1], M += l.loudness_sq[1][1]) : (p += p, M += M), l.mode_gr == 2 && (p = Math.max(p, M)), p *= 0.5, p *= l.ATH.aaSensitivityP, p > 0.03125) l.ATH.adjust >= 1 ? l.ATH.adjust = 1 : l.ATH.adjust < l.ATH.adjustLimit && (l.ATH.adjust = l.ATH.adjustLimit), l.ATH.adjustLimit = 1; else { var H = 31.98 * p + 625e-6; l.ATH.adjust >= H ? (l.ATH.adjust *= H * 0.075 + 0.925, l.ATH.adjust < H && (l.ATH.adjust = H)) : l.ATH.adjustLimit >= H ? l.ATH.adjust = H : l.ATH.adjust < l.ATH.adjustLimit && (l.ATH.adjust = l.ATH.adjustLimit), l.ATH.adjustLimit = H; } } function d(l) { var M, p; for (D(0 <= l.bitrate_index && l.bitrate_index < 16), D(0 <= l.mode_ext && l.mode_ext < 4), l.bitrate_stereoMode_Hist[l.bitrate_index][4]++, l.bitrate_stereoMode_Hist[15][4]++, l.channels_out == 2 && (l.bitrate_stereoMode_Hist[l.bitrate_index][l.mode_ext]++, l.bitrate_stereoMode_Hist[15][l.mode_ext]++), M = 0; M < l.mode_gr; ++M) for (p = 0; p < l.channels_out; ++p) { var H = l.l3_side.tt[M][p].block_type | 0; l.l3_side.tt[M][p].mixed_block_flag != 0 && (H = 4), l.bitrate_blockType_Hist[l.bitrate_index][H]++, l.bitrate_blockType_Hist[l.bitrate_index][5]++, l.bitrate_blockType_Hist[15][H]++, l.bitrate_blockType_Hist[15][5]++; } } function e(l, M) { var p = l.internal_flags, H, B; if (p.lame_encode_frame_init == 0) { var I, v0, b = u0(2014), a = u0(286 + 1152 + 576); for (p.lame_encode_frame_init = 1, I = 0, v0 = 0; I < 286 + 576 * (1 + p.mode_gr); ++I) I < 576 * p.mode_gr ? (b[I] = 0, p.channels_out == 2 && (a[I] = 0)) : (b[I] = M[0][v0], p.channels_out == 2 && (a[I] = M[1][v0]), ++v0); for (B = 0; B < p.mode_gr; B++) for (H = 0; H < p.channels_out; H++) p.l3_side.tt[B][H].block_type = g.SHORT_TYPE; o.mdct_sub48(p, b, a), D(576 >= g.FFTOFFSET), D(p.mf_size >= g.BLKSIZE + l.framesize - g.FFTOFFSET), D(p.mf_size >= 512 + l.framesize - 32); } } this.lame_encode_mp3_frame = function(l, M, p, H, B, I) { var v0, b = z([2, 2]); b[0][0] = new A(), b[0][1] = new A(), b[1][0] = new A(), b[1][1] = new A(); var a = z([2, 2]); a[0][0] = new A(), a[0][1] = new A(), a[1][0] = new A(), a[1][1] = new A(); var S, L = [null, null], V = l.internal_flags, N = W([2, 4]), P = [0.5, 0.5], E = [[0, 0], [0, 0]], i = [[0, 0], [0, 0]], s, r, n; if (L[0] = M, L[1] = p, V.lame_encode_frame_init == 0 && e(l, L), V.padding = 0, (V.slot_lag -= V.frac_SpF) < 0 && (V.slot_lag += l.out_samplerate, V.padding = 1), V.psymodel != 0) { var f, Y = [null, null], J = 0, T = Q(2); for (n = 0; n < V.mode_gr; n++) { for (r = 0; r < V.channels_out; r++) Y[r] = L[r], J = 576 + n * 576 - g.FFTOFFSET; if (l.VBR == X.vbr_mtrh || l.VBR == X.vbr_mt ? f = t0.L3psycho_anal_vbr( l, Y, J, n, b, a, E[n], i[n], N[n], T ) : f = t0.L3psycho_anal_ns( l, Y, J, n, b, a, E[n], i[n], N[n], T ), f != 0) return -4; for (l.mode == m.JOINT_STEREO && (P[n] = N[n][2] + N[n][3], P[n] > 0 && (P[n] = N[n][3] / P[n])), r = 0; r < V.channels_out; r++) { var q = V.l3_side.tt[n][r]; q.block_type = T[r], q.mixed_block_flag = 0; } } } else for (n = 0; n < V.mode_gr; n++) for (r = 0; r < V.channels_out; r++) V.l3_side.tt[n][r].block_type = g.NORM_TYPE, V.l3_side.tt[n][r].mixed_block_flag = 0, i[n][r] = E[n][r] = 700; if (u(V), o.mdct_sub48(V, L[0], L[1]), V.mode_ext = g.MPG_MD_LR_LR, l.force_ms) V.mode_ext = g.MPG_MD_MS_LR; else if (l.mode == m.JOINT_STEREO) { var i0 = 0, h0 = 0; for (n = 0; n < V.mode_gr; n++) for (r = 0; r < V.channels_out; r++) i0 += i[n][r], h0 += E[n][r]; if (i0 <= 1 * h0) { var d0 = V.l3_side.tt[0], M0 = V.l3_side.tt[V.mode_gr - 1]; d0[0].block_type == d0[1].block_type && M0[0].block_type == M0[1].block_type && (V.mode_ext = g.MPG_MD_MS_LR); } } if (V.mode_ext == s0 ? (S = a, s = i) : (S = b, s = E), l.analysis && V.pinfo != null) for (n = 0; n < V.mode_gr; n++) for (r = 0; r < V.channels_out; r++) V.pinfo.ms_ratio[n] = V.ms_ratio[n], V.pinfo.ms_ener_ratio[n] = P[n], V.pinfo.blocktype[n][r] = V.l3_side.tt[n][r].block_type, V.pinfo.pe[n][r] = s[n][r], Z.arraycopy( V.l3_side.tt[n][r].xr, 0, V.pinfo.xr[n][r], 0, 576 ), V.mode_ext == s0 && (V.pinfo.ers[n][r] = V.pinfo.ers[n][r + 2], Z.arraycopy( V.pinfo.energy[n][r + 2], 0, V.pinfo.energy[n][r], 0, V.pinfo.energy[n][r].length )); if (l.VBR == X.vbr_off || l.VBR == X.vbr_abr) { var R0, A0; for (R0 = 0; R0 < 18; R0++) V.nsPsy.pefirbuf[R0] = V.nsPsy.pefirbuf[R0 + 1]; for (A0 = 0, n = 0; n < V.mode_gr; n++) for (r = 0; r < V.channels_out; r++) A0 += s[n][r]; for (V.nsPsy.pefirbuf[18] = A0, A0 = V.nsPsy.pefirbuf[9], R0 = 0; R0 < 9; R0++) A0 += (V.nsPsy.pefirbuf[R0] + V.nsPsy.pefirbuf[18 - R0]) * g.fircoef[R0]; for (A0 = 670 * 5 * V.mode_gr * V.channels_out / A0, n = 0; n < V.mode_gr; n++) for (r = 0; r < V.channels_out; r++) s[n][r] *= A0; } if (V.iteration_loop.iteration_loop(l, s, P, S), K.format_bitstream(l), v0 = K.copy_buffer(V, H, B, I, 1), l.bWriteVbrTag && U.addVbrFrame(l), l.analysis && V.pinfo != null) { for (r = 0; r < V.channels_out; r++) { var w0; for (w0 = 0; w0 < O; w0++) V.pinfo.pcmdata[r][w0] = V.pinfo.pcmdata[r][w0 + l.framesize]; for (w0 = O; w0 < 1600; w0++) V.pinfo.pcmdata[r][w0] = L[r][w0 - O]; } R.set_frame_pinfo(l, S); } return d(V), v0; }; } return Ae = g, Ae; } var Ba = Q0, Ze = Ba.Util, Ke = Ba.new_float, J0 = t1(); function $a() { var w = Ke(J0.BLKSIZE), Z = Ke(J0.BLKSIZE_s / 2), X = [ 0.9238795325112867, 0.3826834323650898, 0.9951847266721969, 0.0980171403295606, 0.9996988186962042, 0.02454122852291229, 0.9999811752826011, 0.006135884649154475 ]; function z(W, Q, D) { var g = 0, f0, A, m; D <<= 1; var O = Q + D; f0 = 4; do { var s0, K, t0, U, R, o, u; u = f0 >> 1, U = f0, R = f0 << 1, o = R + U, f0 = R << 1, A = Q, m = A + u; do { var d, e, l, M; e = W[A + 0] - W[A + U], d = W[A + 0] + W[A + U], M = W[A + R] - W[A + o], l = W[A + R] + W[A + o], W[A + R] = d - l, W[A + 0] = d + l, W[A + o] = e - M, W[A + U] = e + M, e = W[m + 0] - W[m + U], d = W[m + 0] + W[m + U], M = Ze.SQRT2 * W[m + o], l = Ze.SQRT2 * W[m + R], W[m + R] = d - l, W[m + 0] = d + l, W[m + o] = e - M, W[m + U] = e + M, m += f0, A += f0; } while (A < O); for (K = X[g + 0], s0 = X[g + 1], t0 = 1; t0 < u; t0++) { var p, H; p = 1 - 2 * s0 * s0, H = 2 * s0 * K, A = Q + t0, m = Q + U - t0; do { var B, I, v0, d, e, b, l, a, M, S; I = H * W[A + U] - p * W[m + U], B = p * W[A + U] + H * W[m + U], e = W[A + 0] - B, d = W[A + 0] + B, b = W[m + 0] - I, v0 = W[m + 0] + I, I = H * W[A + o] - p * W[m + o], B = p * W[A + o] + H * W[m + o], M = W[A + R] - B, l = W[A + R] + B, S = W[m + R] - I, a = W[m + R] + I, I = s0 * l - K * S, B = K * l + s0 * S, W[A + R] = d - B, W[A + 0] = d + B, W[m + o] = b - I, W[m + U] = b + I, I = K * a - s0 * M, B = s0 * a + K * M, W[m + R] = v0 - B, W[m + 0] = v0 + B, W[A + o] = e - I, W[A + U] = e + I, m += f0, A += f0; } while (A < O); p = K, K = p * X[g + 0] - s0 * X[g + 1], s0 = p * X[g + 1] + s0 * X[g + 0]; } g += 2; } while (f0 < D); } var u0 = [ 0, 128, 64, 192, 32, 160, 96, 224, 16, 144, 80, 208, 48, 176, 112, 240, 8, 136, 72, 200, 40, 168, 104, 232, 24, 152, 88, 216, 56, 184, 120, 248, 4, 132, 68, 196, 36, 164, 100, 228, 20, 148, 84, 212, 52, 180, 116, 244, 12, 140, 76, 204, 44, 172, 108, 236, 28, 156, 92, 220, 60, 188, 124, 252, 2, 130, 66, 194, 34, 162, 98, 226, 18, 146, 82, 210, 50, 178, 114, 242, 10, 138, 74, 202, 42, 170, 106, 234, 26, 154, 90, 218, 58, 186, 122, 250, 6, 134, 70, 198, 38, 166, 102, 230, 22, 150, 86, 214, 54, 182, 118, 246, 14, 142, 78, 206, 46, 174, 110, 238, 30, 158, 94, 222, 62, 190, 126, 254 ]; this.fft_short = function(W, Q, D, g, f0) { for (var A = 0; A < 3; A++) { var m = J0.BLKSIZE_s / 2, O = 65535 & 576 / 3 * (A + 1), s0 = J0.BLKSIZE_s / 8 - 1; do { var K, t0, U, R, o, u = u0[s0 << 2] & 255; K = Z[u] * g[D][f0 + u + O], o = Z[127 - u] * g[D][f0 + u + O + 128], t0 = K - o, K = K + o, U = Z[u + 64] * g[D][f0 + u + O + 64], o = Z[63 - u] * g[D][f0 + u + O + 192], R = U - o, U = U + o, m -= 4, Q[A][m + 0] = K + U, Q[A][m + 2] = K - U, Q[A][m + 1] = t0 + R, Q[A][m + 3] = t0 - R, K = Z[u + 1] * g[D][f0 + u + O + 1], o = Z[126 - u] * g[D][f0 + u + O + 129], t0 = K - o, K = K + o, U = Z[u + 65] * g[D][f0 + u + O + 65], o = Z[62 - u] * g[D][f0 + u + O + 193], R = U - o, U = U + o, Q[A][m + J0.BLKSIZE_s / 2 + 0] = K + U, Q[A][m + J0.BLKSIZE_s / 2 + 2] = K - U, Q[A][m + J0.BLKSIZE_s / 2 + 1] = t0 + R, Q[A][m + J0.BLKSIZE_s / 2 + 3] = t0 - R; } while (--s0 >= 0); z(Q[A], m, J0.BLKSIZE_s / 2); } }, this.fft_long = function(W, Q, D, g, f0) { var A = J0.BLKSIZE / 8 - 1, m = J0.BLKSIZE / 2; do { var O, s0, K, t0, U, R = u0[A] & 255; O = w[R] * g[D][f0 + R], U = w[R + 512] * g[D][f0 + R + 512], s0 = O - U, O = O + U, K = w[R + 256] * g[D][f0 + R + 256], U = w[R + 768] * g[D][f0 + R + 768], t0 = K - U, K = K + U, m -= 4, Q[m + 0] = O + K, Q[m + 2] = O - K, Q[m + 1] = s0 + t0, Q[m + 3] = s0 - t0, O = w[R + 1] * g[D][f0 + R + 1], U = w[R + 513] * g[D][f0 + R + 513], s0 = O - U, O = O + U, K = w[R + 257] * g[D][f0 + R + 257], U = w[R + 769] * g[D][f0 + R + 769], t0 = K - U, K = K + U, Q[m + J0.BLKSIZE / 2 + 0] = O + K, Q[m + J0.BLKSIZE / 2 + 2] = O - K, Q[m + J0.BLKSIZE / 2 + 1] = s0 + t0, Q[m + J0.BLKSIZE / 2 + 3] = s0 - t0; } while (--A >= 0); z(Q, m, J0.BLKSIZE / 2); }, this.init_fft = function(W) { for (var Q = 0; Q < J0.BLKSIZE; Q++) w[Q] = 0.42 - 0.5 * Math.cos(2 * Math.PI * (Q + 0.5) / J0.BLKSIZE) + 0.08 * Math.cos(4 * Math.PI * (Q + 0.5) / J0.BLKSIZE); for (var Q = 0; Q < J0.BLKSIZE_s / 2; Q++) Z[Q] = 0.5 * (1 - Math.cos(2 * Math.PI * (Q + 0.5) / J0.BLKSIZE_s)); }; } var Pa = $a, T1 = Q0, C1 = T1.VbrMode, Ue = T1.Float, F1 = T1.ShortBlock, n1 = T1.Util, Za = T1.Arrays, g0 = T1.new_float, m1 = T1.new_float_n, L1 = T1.new_int, C0 = T1.assert, Ka = Pa, r0 = t1(); function Ua() { var w = j1, Z = new Ka(), X = 2.302585092994046, z = 2, u0 = 16, W = 2, Q = 16, D = 0.34, g = 1 / (14752 * 14752) / (r0.BLKSIZE / 2), f0 = 0.01, A = 0.8, m = 0.6, O = 0.3, s0 = 3.5, K = 21, t0 = 0.2302585093; function U(v) { return v; } function R(v, h) { for (var x = 0, y = 0; y < r0.BLKSIZE / 2; ++y) x += v[y] * h.ATH.eql_w[y]; return x *= g, x; } function o(v, h, x, y, k, c, C, G, F, e0, $) { var a0 = v.internal_flags; if (F < 2) Z.fft_long(a0, y[k], F, e0, $), Z.fft_short(a0, c[C], F, e0, $); else if (F == 2) { for (var m0 = r0.BLKSIZE - 1; m0 >= 0; --m0) { var N0 = y[k + 0][m0], n0 = y[k + 1][m0]; y[k + 0][m0] = (N0 + n0) * n1.SQRT2 * 0.5, y[k + 1][m0] = (N0 - n0) * n1.SQRT2 * 0.5; } for (var L0 = 2; L0 >= 0; --L0) for (var m0 = r0.BLKSIZE_s - 1; m0 >= 0; --m0) { var N0 = c[C + 0][L0][m0], n0 = c[C + 1][L0][m0]; c[C + 0][L0][m0] = (N0 + n0) * n1.SQRT2 * 0.5, c[C + 1][L0][m0] = (N0 - n0) * n1.SQRT2 * 0.5; } } h[0] = y[k + 0][0], h[0] *= h[0]; for (var m0 = r0.BLKSIZE / 2 - 1; m0 >= 0; --m0) { var j = y[k + 0][r0.BLKSIZE / 2 - m0], x0 = y[k + 0][r0.BLKSIZE / 2 + m0]; h[r0.BLKSIZE / 2 - m0] = (j * j + x0 * x0) * 0.5; } for (var L0 = 2; L0 >= 0; --L0) { x[L0][0] = c[C + 0][L0][0], x[L0][0] *= x[L0][0]; for (var m0 = r0.BLKSIZE_s / 2 - 1; m0 >= 0; --m0) { var j = c[C + 0][L0][r0.BLKSIZE_s / 2 - m0], x0 = c[C + 0][L0][r0.BLKSIZE_s / 2 + m0]; x[L0][r0.BLKSIZE_s / 2 - m0] = (j * j + x0 * x0) * 0.5; } } { for (var k0 = 0, m0 = 11; m0 < r0.HBLKSIZE; m0++) k0 += h[m0]; a0.tot_ener[F] = k0; } if (v.analysis) { for (var m0 = 0; m0 < r0.HBLKSIZE; m0++) a0.pinfo.energy[G][F][m0] = a0.pinfo.energy_save[F][m0], a0.pinfo.energy_save[F][m0] = h[m0]; a0.pinfo.pe[G][F] = a0.pe[F]; } v.athaa_loudapprox == 2 && F < 2 && (a0.loudness_sq[G][F] = a0.loudness_sq_save[F], a0.loudness_sq_save[F] = R(h, a0)); } var u = 8, d = 23, e = 15, l, M, p, H = [ 1, 0.79433, 0.63096, 0.63096, 0.63096, 0.63096, 0.63096, 0.25119, 0.11749 ]; function B() { l = Math.pow(10, (u + 1) / 16), M = Math.pow(10, (d + 1) / 16), p = Math.pow(10, e / 10); } var I = [ 3.3246 * 3.3246, 3.23837 * 3.23837, 3.15437 * 3.15437, 3.00412 * 3.00412, 2.86103 * 2.86103, 2.65407 * 2.65407, 2.46209 * 2.46209, 2.284 * 2.284, 2.11879 * 2.11879, 1.96552 * 1.96552, 1.82335 * 1.82335, 1.69146 * 1.69146, 1.56911 * 1.56911, 1.46658 * 1.46658, 1.37074 * 1.37074, 1.31036 * 1.31036, 1.25264 * 1.25264, 1.20648 * 1.20648, 1.16203 * 1.16203, 1.12765 * 1.12765, 1.09428 * 1.09428, 1.0659 * 1.0659, 1.03826 * 1.03826, 1.01895 * 1.01895, 1 ], v0 = [ 1.33352 * 1.33352, 1.35879 * 1.35879, 1.38454 * 1.38454, 1.39497 * 1.39497, 1.40548 * 1.40548, 1.3537 * 1.3537, 1.30382 * 1.30382, 1.22321 * 1.22321, 1.14758 * 1.14758, 1 ], b = [ 2.35364 * 2.35364, 2.29259 * 2.29259, 2.23313 * 2.23313, 2.12675 * 2.12675, 2.02545 * 2.02545, 1.87894 * 1.87894, 1.74303 * 1.74303, 1.61695 * 1.61695, 1.49999 * 1.49999, 1.39148 * 1.39148, 1.29083 * 1.29083, 1.19746 * 1.19746, 1.11084 * 1.11084, 1.03826 * 1.03826 ]; function a(v, h, x, y, k, c) { var C; if (h > v) if (h < v * M) C = h / v; else return v + h; else { if (v >= h * M) return v + h; C = v / h; } if (v += h, y + 3 <= 3 + 3) { if (C >= l) return v; var G = 0 | n1.FAST_LOG10_X(C, 16); return v * v0[G]; } var G = 0 | n1.FAST_LOG10_X(C, 16); if (c != 0 ? h = k.ATH.cb_s[x] * k.ATH.adjust : h = k.ATH.cb_l[x] * k.ATH.adjust, v < p * h) { if (v > h) { var F, e0; return F = 1, G <= 13 && (F = b[G]), e0 = n1.FAST_LOG10_X(v / h, 10 / 15), v * ((I[G] - F) * e0 + F); } return G > 13 ? v : v * b[G]; } return v * I[G]; } var S = [ 1.33352 * 1.33352, 1.35879 * 1.35879, 1.38454 * 1.38454, 1.39497 * 1.39497, 1.40548 * 1.40548, 1.3537 * 1.3537, 1.30382 * 1.30382, 1.22321 * 1.22321, 1.14758 * 1.14758, 1 ]; function L(v, h, x) { var y; if (v < 0 && (v = 0), h < 0 && (h = 0), v <= 0) return h; if (h <= 0) return v; if (h > v ? y = h / v : y = v / h, -2 <= x && x <= 2) { if (y >= l) return v + h; var k = 0 | n1.FAST_LOG10_X(y, 16); return (v + h) * S[k]; } return y < M ? v + h : (v < h && (v = h), v); } function V(v, h) { var x = v.internal_flags; if (x.channels_out > 1) { for (var y = 0; y < r0.SBMAX_l; y++) { var k = x.thm[0].l[y], c = x.thm[1].l[y]; x.thm[0].l[y] += c * h, x.thm[1].l[y] += k * h; } for (var y = 0; y < r0.SBMAX_s; y++) for (var C = 0; C < 3; C++) { var k = x.thm[0].s[y][C], c = x.thm[1].s[y][C]; x.thm[0].s[y][C] += c * h, x.thm[1].s[y][C] += k * h; } } } function N(v) { for (var h = 0; h < r0.SBMAX_l; h++) if (!(v.thm[0].l[h] > 1.58 * v.thm[1].l[h] || v.thm[1].l[h] > 1.58 * v.thm[0].l[h])) { var x = v.mld_l[h] * v.en[3].l[h], y = Math.max( v.thm[2].l[h], Math.min(v.thm[3].l[h], x) ); x = v.mld_l[h] * v.en[2].l[h]; var k = Math.max( v.thm[3].l[h], Math.min(v.thm[2].l[h], x) ); v.thm[2].l[h] = y, v.thm[3].l[h] = k; } for (var h = 0; h < r0.SBMAX_s; h++) for (var c = 0; c < 3; c++) if (!(v.thm[0].s[h][c] > 1.58 * v.thm[1].s[h][c] || v.thm[1].s[h][c] > 1.58 * v.thm[0].s[h][c])) { var x = v.mld_s[h] * v.en[3].s[h][c], y = Math.max( v.thm[2].s[h][c], Math.min(v.thm[3].s[h][c], x) ); x = v.mld_s[h] * v.en[2].s[h][c]; var k = Math.max( v.thm[3].s[h][c], Math.min(v.thm[2].s[h][c], x) ); v.thm[2].s[h][c] = y, v.thm[3].s[h][c] = k; } } function P(v, h, x) { var y = h, k = Math.pow(10, x); h *= 2, y *= 2; for (var c = 0; c < r0.SBMAX_l; c++) { var C, G, F, e0; if (e0 = v.ATH.cb_l[v.bm_l[c]] * k, C = Math.min( Math.max(v.thm[0].l[c], e0), Math.max(v.thm[1].l[c], e0) ), G = Math.max(v.thm[2].l[c], e0), F = Math.max(v.thm[3].l[c], e0), C * h < G + F) { var $ = C * y / (G + F); G *= $, F *= $; } v.thm[2].l[c] = Math.min(G, v.thm[2].l[c]), v.thm[3].l[c] = Math.min(F, v.thm[3].l[c]); } k *= r0.BLKSIZE_s / r0.BLKSIZE; for (var c = 0; c < r0.SBMAX_s; c++) for (var a0 = 0; a0 < 3; a0++) { var C, G, F, e0; if (e0 = v.ATH.cb_s[v.bm_s[c]] * k, C = Math.min( Math.max(v.thm[0].s[c][a0], e0), Math.max(v.thm[1].s[c][a0], e0) ), G = Math.max(v.thm[2].s[c][a0], e0), F = Math.max(v.thm[3].s[c][a0], e0), C * h < G + F) { var $ = C * h / (G + F); G *= $, F *= $; } v.thm[2].s[c][a0] = Math.min( v.thm[2].s[c][a0], G ), v.thm[3].s[c][a0] = Math.min( v.thm[3].s[c][a0], F ); } } function E(v, h, x, y, k) { var c, C, G = 0, F = 0; for (c = C = 0; c < r0.SBMAX_s; ++C, ++c) { for (var e0 = v.bo_s[c], $ = v.npart_s, a0 = e0 < $ ? e0 : $; C < a0; ) C0(h[C] >= 0), C0(x[C] >= 0), G += h[C], F += x[C], C++; if (v.en[y].s[c][k] = G, v.thm[y].s[c][k] = F, C >= $) { ++c; break; } C0(h[C] >= 0), C0(x[C] >= 0); { var m0 = v.PSY.bo_s_weight[c], N0 = 1 - m0; G = m0 * h[C], F = m0 * x[C], v.en[y].s[c][k] += G, v.thm[y].s[c][k] += F, G = N0 * h[C], F = N0 * x[C]; } } for (; c < r0.SBMAX_s; ++c) v.en[y].s[c][k] = 0, v.thm[y].s[c][k] = 0; } function i(v, h, x, y) { var k, c, C = 0, G = 0; for (k = c = 0; k < r0.SBMAX_l; ++c, ++k) { for (var F = v.bo_l[k], e0 = v.npart_l, $ = F < e0 ? F : e0; c < $; ) C0(h[c] >= 0), C0(x[c] >= 0), C += h[c], G += x[c], c++; if (v.en[y].l[k] = C, v.thm[y].l[k] = G, c >= e0) { ++k; break; } C0(h[c] >= 0), C0(x[c] >= 0); { var a0 = v.PSY.bo_l_weight[k], m0 = 1 - a0; C = a0 * h[c], G = a0 * x[c], v.en[y].l[k] += C, v.thm[y].l[k] += G, C = m0 * h[c], G = m0 * x[c]; } } for (; k < r0.SBMAX_l; ++k) v.en[y].l[k] = 0, v.thm[y].l[k] = 0; } function s(v, h, x, y, k, c) { var C = v.internal_flags, G, F; for (F = G = 0; F < C.npart_s; ++F) { for (var e0 = 0, $ = C.numlines_s[F], a0 = 0; a0 < $; ++a0, ++G) { var m0 = h[c][G]; e0 += m0; } x[F] = e0; } for (C0(F == C.npart_s), G = F = 0; F < C.npart_s; F++) { var N0 = C.s3ind_s[F][0], n0 = C.s3_ss[G++] * x[N0]; for (++N0; N0 <= C.s3ind_s[F][1]; ) n0 += C.s3_ss[G] * x[N0], ++G, ++N0; { var L0 = W * C.nb_s1[k][F]; y[F] = Math.min(n0, L0); } if (C.blocktype_old[k & 1] == r0.SHORT_TYPE) { var L0 = Q * C.nb_s2[k][F], j = y[F]; y[F] = Math.min(L0, j); } C.nb_s2[k][F] = C.nb_s1[k][F], C.nb_s1[k][F] = n0, C0(y[F] >= 0); } for (; F <= r0.CBANDS; ++F) x[F] = 0, y[F] = 0; } function r(v, h, x, y) { var k = v.internal_flags; v.short_blocks == F1.short_block_coupled && !(h[0] != 0 && h[1] != 0) && (h[0] = h[1] = 0); for (var c = 0; c < k.channels_out; c++) y[c] = r0.NORM_TYPE, v.short_blocks == F1.short_block_dispensed && (h[c] = 1), v.short_blocks == F1.short_block_forced && (h[c] = 0), h[c] != 0 ? (C0(k.blocktype_old[c] != r0.START_TYPE), k.blocktype_old[c] == r0.SHORT_TYPE && (y[c] = r0.STOP_TYPE)) : (y[c] = r0.SHORT_TYPE, k.blocktype_old[c] == r0.NORM_TYPE && (k.blocktype_old[c] = r0.START_TYPE), k.blocktype_old[c] == r0.STOP_TYPE && (k.blocktype_old[c] = r0.SHORT_TYPE)), x[c] = k