diff --git a/maldoca/js/ir/transforms/dead_code_elimination/BUILD b/maldoca/js/ir/transforms/dead_code_elimination/BUILD index db8c15f..0f5c5e2 100644 --- a/maldoca/js/ir/transforms/dead_code_elimination/BUILD +++ b/maldoca/js/ir/transforms/dead_code_elimination/BUILD @@ -29,6 +29,9 @@ cc_library( hdrs = ["pass.h"], deps = [ "//maldoca/js/ir", + "//maldoca/js/ir:jsir_utils", + "//maldoca/js/ast", + "@abseil-cpp//absl/container:flat_hash_map", "@llvm-project//llvm:Support", "@llvm-project//mlir:IR", "@llvm-project//mlir:Pass", diff --git a/maldoca/js/ir/transforms/dead_code_elimination/pass.cc b/maldoca/js/ir/transforms/dead_code_elimination/pass.cc index a7c3f04..23f6d7d 100644 --- a/maldoca/js/ir/transforms/dead_code_elimination/pass.cc +++ b/maldoca/js/ir/transforms/dead_code_elimination/pass.cc @@ -14,13 +14,20 @@ #include "maldoca/js/ir/transforms/dead_code_elimination/pass.h" +#include +#include + +#include "absl/container/flat_hash_map.h" #include "llvm/ADT/STLExtras.h" +#include "maldoca/js/ast/ast.generated.h" +#include "maldoca/js/ir/ir.h" +#include "maldoca/js/ir/jsir_utils.h" #include "mlir/IR/Block.h" #include "mlir/IR/Operation.h" #include "mlir/IR/Value.h" -#include "maldoca/js/ir/ir.h" namespace maldoca { + void IfStatementElimination(mlir::Operation* root_op) { root_op->walk([&](JshirIfStatementOp op) { auto condition = op.getTest().getDefiningOp(); @@ -56,7 +63,165 @@ void IfStatementElimination(mlir::Operation* root_op) { }); } +void WhileStatementElimination(mlir::Operation* root_op) { + root_op->walk([&](JshirWhileStatementOp op) { + auto condition_op = GetExprRegionOp(op.getTest()); + if (!condition_op.ok()) { + return; + } + + if (!condition_op->getValue()) { + // Condition is constantly false, eliminate the entire loop. + op.erase(); + } + + // If condition is true, it's an infinite loop. For now, we leave it. + }); +} + +struct SymbolInfo { + std::vector definitions; + std::vector references; + // Symbols defined within the scope of this symbol's definition (e.g., if + // this symbol is a function, these are variables defined inside it). + std::vector inner_definitions; + // Symbols defined in the immediate parent scope of this symbol. + std::vector outer_definitions; +}; + +bool operator==(const JsSymbolId& lhs, const JsSymbolId& rhs) { + return std::forward_as_tuple(lhs.name(), lhs.def_scope_uid()) == + std::forward_as_tuple(rhs.name(), rhs.def_scope_uid()); +} + +template +H AbslHashValue(H h, const JsSymbolId& m) { + return H::combine(std::move(h), m.name(), m.def_scope_uid()); +} + +JsSymbolId GetSymbolIdFromAttr(JsirSymbolIdAttr symbol_attr) { + std::string name = symbol_attr.getName().str(); + std::optional scope_uid = symbol_attr.getDefScopeId(); + return JsSymbolId{name, scope_uid}; +} + +void UnusedFunctionElimination(mlir::Operation* root_op) { + absl::flat_hash_map symbol_infos; + + root_op->walk([&](mlir::Operation* op) { + // TODO: We can remove this special handling once the trivia is fixed. + if (llvm::isa(op) || + llvm::isa(op)) { + return; + } + auto trivia = llvm::dyn_cast(op->getLoc()); + if (trivia == nullptr) { + return; + } + JsirSymbolIdAttr symbol = trivia.getReferencedSymbol(); + if (symbol != nullptr) { + symbol_infos[GetSymbolIdFromAttr(symbol)].references.push_back(op); + } + + llvm::ArrayRef mlir_defined_symbols = + trivia.getDefinedSymbols(); + for (JsirSymbolIdAttr defined_symbol : mlir_defined_symbols) { + symbol_infos[GetSymbolIdFromAttr(defined_symbol)].definitions.push_back( + op); + } + }); + + for (auto& [symbol, info] : symbol_infos) { + if (info.definitions.empty()) { + continue; + } + if (info.definitions.size() > 1) { + continue; + } + + mlir::Operation* def_op = info.definitions[0]; + // Recursively traverse the parent chain of def_op by using getParentOp() + // and find the first op in the chain that defines symbols. In order to + // check if an op defines symbols, we can use the trivia attribute like + // above in the same file. + for (mlir::Operation* current_op = def_op->getParentOp(); + current_op != nullptr; current_op = current_op->getParentOp()) { + auto current_trivia = + llvm::dyn_cast(current_op->getLoc()); + if (current_trivia != nullptr) { + llvm::ArrayRef outer_defined_symbols = + current_trivia.getDefinedSymbols(); + if (!outer_defined_symbols.empty()) { + for (JsirSymbolIdAttr outer_defined_symbol_attr : + outer_defined_symbols) { + JsSymbolId outer_symbol = + GetSymbolIdFromAttr(outer_defined_symbol_attr); + auto outer_symbol_info_it = symbol_infos.find(outer_symbol); + if (outer_symbol_info_it != symbol_infos.end()) { + info.outer_definitions.push_back(outer_symbol); + outer_symbol_info_it->second.inner_definitions.push_back(symbol); + } + } + break; // Found the first op in the chain that defines symbols + } + } + } + } + + // Check if info.definitions contains duplicates across symbol_infos? If so, + // print warning + absl::flat_hash_map defined_ops; + for (const auto& [symbol, info] : symbol_infos) { + for (mlir::Operation* def_op : info.definitions) { + defined_ops[def_op]++; + } + } + + for (auto& [symbol, info] : symbol_infos) { + if (info.references.empty()) { + for (mlir::Operation* def_op : info.definitions) { + if (llvm::isa(def_op)) { + // Recursively remove SymbolInfo records for all inner definitions. + // When we remove a function declaration, we are also removing all ops + // in the function body, including definitions of local variables. + // This means we need to remove those SymbolInfo records. + std::vector worklist = info.inner_definitions; + while (!worklist.empty()) { + JsSymbolId current_symbol_id = worklist.back(); + worklist.pop_back(); + + auto it = symbol_infos.find(current_symbol_id); + if (it != symbol_infos.end()) { + it->second.definitions.clear(); + worklist.insert(worklist.end(), + it->second.inner_definitions.begin(), + it->second.inner_definitions.end()); + symbol_infos.erase(it); + } + } + def_op->erase(); + for (const auto& outer_symbol : info.outer_definitions) { + auto outer_it = symbol_infos.find(outer_symbol); + if (outer_it != symbol_infos.end()) { + auto& outer_info = outer_it->second; + outer_info.inner_definitions.erase( + std::remove(outer_info.inner_definitions.begin(), + outer_info.inner_definitions.end(), symbol), + outer_info.inner_definitions.end()); + } + } + } + } + } + } +} + void DeadCodeElimination(mlir::Operation* root_op) { IfStatementElimination(root_op); + WhileStatementElimination(root_op); + // TODO: Iteratively eliminate unused functions until no more can be + // eliminated. + // TODO: Update the AST after dynamic constant progropagation (before dce). + UnusedFunctionElimination(root_op); } } // namespace maldoca diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/BUILD b/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/BUILD new file mode 100644 index 0000000..9f511e8 --- /dev/null +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/BUILD @@ -0,0 +1,31 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +load("//bazel:lit.bzl", "glob_lit_tests") + +package(default_applicable_licenses = ["//:license"]) + +licenses(["notice"]) + +glob_lit_tests( + name = "all_tests", + data = [ + "input.js", + "output.generated.txt", + "//maldoca/js/ir:lit_test_files", + ], + test_file_exts = [ + "lit", + ], +) diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/README.generated.md b/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/README.generated.md new file mode 100644 index 0000000..82b5490 --- /dev/null +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/README.generated.md @@ -0,0 +1,7 @@ +To run manually: + +```shell +bazel run //maldoca/js/ir:jsir_gen -- \ + --input_file $(pwd)/maldoca/js/ir/transforms/dead_code_elimination/tests/high/input.js \ + --passes "source2ast,ast2hir,dead_code_elimination,hir2ast,ast2source" +``` diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/input.js b/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/input.js new file mode 100644 index 0000000..363109b --- /dev/null +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/input.js @@ -0,0 +1,919 @@ +function calculatePrice(_0x5b037d, _0x4b126e) { + function _0x3a3b81(_0x49082e, _0x572c13, _0x32ce12, _0x4a17d8, _0x502d0d) { + return _0x5ec0(_0x502d0d - -170, _0x32ce12); + } + const _0x23fb6 = { + 'FZwIH': function (_0x3f8fa4, _0x58105b) { + return _0x3f8fa4(_0x58105b); + }, + 'IWoxy': function (_0x5d9aa6, _0x144983) { + return _0x5d9aa6 + _0x144983; + }, + 'tUwMG': "return (function() ", + 'oJhKn': "{}.constructor(\"return this\")( )", + 'txgFU': function (_0x30fd9f) { + return _0x30fd9f(); + }, + 'nhPut': function (_0xd62405, _0x3a582a) { + return _0xd62405 === _0x3a582a; + }, + 'voRwb': "AFNky", + 'GbKwb': "OVvjH", + 'HeGGB': function (_0x1b7b9c, _0x4d86b2) { + return _0x1b7b9c !== _0x4d86b2; + }, + 'wZVud': "TWJvb", + 'gIUsJ': "cQQgA", + 'zzAKA': function (_0x508d54, _0x7ace76) { + return _0x508d54 === _0x7ace76; + }, + 'lxcov': "NqUzh", + 'rELsr': "zLyeH", + 'hnIaJ': function (_0x3c8875, _0xf87df5) { + return _0x3c8875(_0xf87df5); + }, + 'lLGBN': function (_0x58b6fa, _0x3d96f1) { + return _0x58b6fa + _0x3d96f1; + }, + 'lKFSI': function (_0xae036c, _0x3da58e) { + return _0xae036c + _0x3da58e; + }, + 'iMnmu': "PRoPb", + 'hlsZB': "hoxlU", + 'MwNVS': "debu", + 'oMPbC': "gger", + 'UCoqb': "stateObject", + 'pWtFV': function (_0x584d7a, _0x301f01) { + return _0x584d7a(_0x301f01); + }, + 'VSLQK': "function *\\( *\\)", + 'TWYxn': "\\+\\+ *(?:[a-zA-Z_$][0-9a-zA-Z_$]*)", + 'RfJBn': function (_0x350326, _0x3ce5bd) { + return _0x350326(_0x3ce5bd); + }, + 'YoyTe': "init", + 'GNdZT': "chain", + 'FKoAj': "input", + 'BOPqU': function (_0x9ffe79, _0x24bad5) { + return _0x9ffe79(_0x24bad5); + }, + 'IQePn': function (_0x554134) { + return _0x554134(); + }, + 'XSQbQ': function (_0x5ab606, _0x2c62f5, _0x521648) { + return _0x5ab606(_0x2c62f5, _0x521648); + }, + 'OVlMy': "LAaXM", + 'xyBvI': "CqrWo", + 'NMvvT': function (_0x4b9f09, _0x2edc9e) { + return _0x4b9f09 + _0x2edc9e; + }, + 'NDoCJ': function (_0x15c537, _0x5ccac7) { + return _0x15c537 + _0x5ccac7; + }, + 'LeAqo': function (_0x1a9fb9, _0x4748d5) { + return _0x1a9fb9 !== _0x4748d5; + }, + 'lJGYk': "kbGEP", + 'ZxHsI': function (_0x186b48, _0x429652) { + return _0x186b48(_0x429652); + }, + 'AAjwv': function (_0xc36c35, _0x5b1405) { + return _0xc36c35 === _0x5b1405; + }, + 'GFISC': "umQMd", + 'biCsT': function (_0x227d3e) { + return _0x227d3e(); + }, + 'xdsvJ': "eckNK", + 'GGULq': "eiCBe", + 'IWcYV': "while (true) {}", + 'dPdUr': "counter", + 'xDMyq': function (_0x4e7cf0, _0x5d02c3) { + return _0x4e7cf0 !== _0x5d02c3; + }, + 'yAGxJ': "vAzJS", + 'jsIgl': "gIPTp", + 'Tqufk': "sHFfh", + 'UHIZG': function (_0x3459a7, _0x509008) { + return _0x3459a7 === _0x509008; + }, + 'Stjop': "bEHUp", + 'hPHhO': "aPxIb", + 'puyhR': "XBYMu", + 'SRFQx': function (_0x494b19, _0x3379df) { + return _0x494b19 !== _0x3379df; + }, + 'PCfRO': "TLjgh", + 'LMwVs': "MekFX", + 'TDTuJ': "tlWRU", + 'SWMyF': function (_0x1fecf2, _0x1e294e) { + return _0x1fecf2(_0x1e294e); + }, + 'TObTc': "cRXBN", + 'tyXku': "action", + 'ixHSk': "UuWki", + 'ThYsS': function (_0x35c982) { + return _0x35c982(); + }, + 'DSNDX': "log", + 'WaCZA': "warn", + 'ytswv': "info", + 'kBqLi': "error", + 'VCkuy': "exception", + 'qMUag': "table", + 'RCHoV': "trace", + 'AzhjX': function (_0x29fbaa, _0x549bc5) { + return _0x29fbaa < _0x549bc5; + }, + 'cRwGw': "Pywil", + 'pUMUj': "ujGre", + 'mOHAK': function (_0x3174ca, _0x22ea39, _0x4a760c) { + return _0x3174ca(_0x22ea39, _0x4a760c); + }, + 'xfELl': function (_0x99593c, _0x5884e7) { + return _0x99593c * _0x5884e7; + }, + 'UFmYJ': function (_0x103392, _0x5e42fe) { + return _0x103392 > _0x5e42fe; + }, + 'oUcea': function (_0x3f98e0, _0x4ebf60) { + return _0x3f98e0 !== _0x4ebf60; + }, + 'nSyDi': "JsOcE", + 'xApGy': function (_0x277418, _0x56a6fc) { + return _0x277418 - _0x56a6fc; + } + }, + _0x54e352 = (function () { + function _0x5d0c51(_0x59f630, _0x121cbc, _0x59395a, _0x3cc6fe, _0x45e319) { + return _0x22ca9b(_0x59f630 - 221, _0x45e319, _0x121cbc - 1092, _0x3cc6fe - 123, _0x45e319 - 27); + } + function _0x3e073c(_0x2516c4, _0x207ef5, _0x420546, _0x2f3381, _0x452168) { + return _0x2d5cb7(_0x2516c4 - 366, _0x207ef5 - 47, _0x2f3381 - -952, _0x2f3381 - 435, _0x2516c4); + } + function _0x4b3646(_0x1a2583, _0x23fea6, _0xd4fa83, _0x2fbf39, _0x114a51) { + return _0x3a3b81(_0x1a2583 - 158, _0x23fea6 - 131, _0x23fea6, _0x2fbf39 - 145, _0x2fbf39 - 685); + } + function _0x3e58c1(_0x37f76b, _0x294670, _0x27b76b, _0x2f328d, _0x3f40f6) { + return _0x22ca9b(_0x37f76b - 14, _0x3f40f6, _0x27b76b - 91, _0x2f328d - 119, _0x3f40f6 - 142); + } + function _0x5765f7(_0x39f077, _0x3b6046, _0x4365f5, _0x3641b6, _0x3624bd) { + return _0x22ca9b(_0x39f077 - 291, _0x3641b6, _0x3624bd - 262, _0x3641b6 - 287, _0x3624bd - 219); + } + if (true) { + let _0x5ea015 = !![]; + return function (_0x447810, _0x17ffae) { + const _0x3be97e = { + 'GzDIq': function (_0x319bf7, _0xd41c35) { + function _0x5078f7(_0x5f45d4, _0x5b9a10, _0x5de014, _0x4e3cf4, _0xcc338d) { + return _0x5ec0(_0xcc338d - 742, _0x5f45d4); + } + return _0x319bf7(_0xd41c35); + }, + 'GtCQm': function (_0x535928, _0x547e85) { + function _0x5219e3(_0x30098e, _0x4e1b34, _0x504a6c, _0x1cbaaf, _0x1ab293) { + return _0x5ec0(_0x4e1b34 - 177, _0x1ab293); + } + return _0x23fb6["IWoxy"](_0x535928, _0x547e85); + }, + 'JdWiA': "return (function() ", + 'JSNoO': "{}.constructor(\"return this\")( )", + 'doDtr': function (_0x61ccf6) { + function _0xc4a3cd(_0x1ebe3b, _0xee6551, _0x4c032a, _0x346e46, _0x34c822) { + return _0x3837ef(_0x346e46 - 984, _0xee6551 - 379, _0x4c032a - 365, _0x346e46 - 236, _0x4c032a); + } + return _0x61ccf6(); + }, + 'JaATJ': function (_0xa8b608, _0x596d22) { + function _0x3b8494(_0x476fe1, _0x41831f, _0x2137f1, _0x2bd392, _0x57fb17) { + return _0x3837ef(_0x476fe1 - 1711, _0x41831f - 313, _0x2137f1 - 492, _0x2bd392 - 90, _0x41831f); + } + return _0x23fb6["nhPut"](_0xa8b608, _0x596d22); + }, + 'LdRVX': "AFNky", + 'QmJGn': "OVvjH", + 'jFTYa': function (_0x441824, _0x4a42f4) { + function _0x24e1b6(_0x20927f, _0x4ddc10, _0x345e9e, _0x4c8572, _0x2c9a5d) { + return _0x3837ef(_0x345e9e - 975, _0x4ddc10 - 297, _0x345e9e - 491, _0x4c8572 - 16, _0x2c9a5d); + } + return _0x23fb6["HeGGB"](_0x441824, _0x4a42f4); + }, + 'LVHVn': "TWJvb", + 'jZxAe': "cQQgA" + }; + function _0x4f512e(_0x4bd4a7, _0x3fdcab, _0x261d49, _0x3b3e1f, _0x3d3975) { + return _0x4b3646(_0x4bd4a7 - 472, _0x4bd4a7, _0x261d49 - 24, _0x3d3975 - -681, _0x3d3975 - 493); + } + function _0x3837ef(_0x379d44, _0xd6ece3, _0x430353, _0x48fe3d, _0x44ac9a) { + return _0x5765f7(_0x379d44 - 457, _0xd6ece3 - 13, _0x430353 - 227, _0x44ac9a, _0x379d44 - -87); + } + function _0x5d9af5(_0x1ffd44, _0x1506be, _0x58f351, _0x1f9066, _0x3617d2) { + return _0x3e073c(_0x1ffd44, _0x1506be - 77, _0x58f351 - 176, _0x1506be - 1232, _0x3617d2 - 402); + } + function _0x11d9ec(_0x349855, _0x5734ad, _0x5b4b23, _0x715491, _0x2fb97f) { + return _0x3e073c(_0x2fb97f, _0x5734ad - 85, _0x5b4b23 - 267, _0x5734ad - 1099, _0x2fb97f - 190); + } + function _0x106ae2(_0x5b078c, _0x59a6d1, _0x149a11, _0x2c2aaf, _0x5aaeaf) { + return _0x3e073c(_0x5aaeaf, _0x59a6d1 - 18, _0x149a11 - 394, _0x2c2aaf - 1376, _0x5aaeaf - 56); + } + if (false) _0x20d949 = _0x4a0256;else { + const _0x3e1e80 = _0x5ea015 ? function () { + function _0x4da531(_0x1d1044, _0x1084a2, _0x193fb3, _0x9f01c5, _0x209212) { + return _0x5d9af5(_0x1084a2, _0x209212 - 367, _0x193fb3 - 109, _0x9f01c5 - 241, _0x209212 - 282); + } + function _0x1748e1(_0x347e8c, _0x4220c1, _0x3e81cf, _0x2d3393, _0x3caece) { + return _0x5d9af5(_0x3caece, _0x347e8c - 403, _0x3e81cf - 471, _0x2d3393 - 276, _0x3caece - 15); + } + function _0x3b85cd(_0x38f856, _0x302f8a, _0x27cf52, _0x262b31, _0x7e66a9) { + return _0x11d9ec(_0x38f856 - 373, _0x38f856 - -968, _0x27cf52 - 299, _0x262b31 - 362, _0x302f8a); + } + function _0x3731d4(_0x5bf3e4, _0x49ea54, _0x123074, _0x5a3d9c, _0xc70fc0) { + return _0x106ae2(_0x5bf3e4 - 259, _0x49ea54 - 283, _0x123074 - 445, _0x49ea54 - -128, _0xc70fc0); + } + function _0x452a1a(_0x20cd1e, _0x4f7756, _0x2f9c33, _0x2f0918, _0x97bb3e) { + return _0x106ae2(_0x20cd1e - 461, _0x4f7756 - 187, _0x2f9c33 - 91, _0x4f7756 - -1360, _0x2f0918); + } + if (_0x3be97e["JaATJ"]("AFNky", "OVvjH")) { + if (_0x268116) { + const _0x1ea2b4 = _0x1268d3["apply"](_0x2c200b, arguments); + return _0x370a70 = null, _0x1ea2b4; + } + } else { + if (_0x17ffae) { + if (_0x3be97e["jFTYa"]("TWJvb", "cQQgA")) { + const _0x28b6a5 = _0x17ffae["apply"](_0x447810, arguments); + return _0x17ffae = null, _0x28b6a5; + } else { + const _0x359357 = tpCaPn["GzDIq"](_0x1ccbb6, tpCaPn["GtCQm"](tpCaPn["GtCQm"](tpCaPn["JdWiA"], tpCaPn["JSNoO"]), ");")); + _0x2c9c20 = tpCaPn["doDtr"](_0x359357); + } + } + } + } : function () {}; + return _0x5ea015 = ![], _0x3e1e80; + } + }; + } else _0xc4a413 = bazvTn[_0x4b3646(0x3d4, 'u0Xg', 0x28e, 0x362, 0x3e0)](_0x5cf055, bazvTn[_0x3e58c1(-0x1a9, -0x1e1, -0x1cb, -0x23e, '$xQO')](bazvTn[_0x5d0c51(0x217, 0x14e, 0xe5, 0x14e, 't!4C')](bazvTn[_0x3e58c1(-0x19a, -0x170, -0x13e, -0x198, 'f6aq')], bazvTn[_0x5765f7(-0xfa, -0x22d, -0x129, '2@7B', -0x183)]), ');'))(); + }()); + (function () { + function _0x25a218(_0x2ce3a1, _0x1cefa3, _0x446213, _0x402655, _0x430a72) { + return _0x22ca9b(_0x2ce3a1 - 71, _0x402655, _0x1cefa3 - 619, _0x402655 - 465, _0x430a72 - 104); + } + function _0x51f4e0(_0x228773, _0xbf116c, _0xcbdb37, _0x36d60b, _0x9b28bd) { + return _0x22ca9b(_0x228773 - 204, _0x228773, _0x9b28bd - 1662, _0x36d60b - 202, _0x9b28bd - 420); + } + function _0x33a3c3(_0x10ba9c, _0x28095f, _0x286159, _0x34aaae, _0x45f54b) { + return _0x22ca9b(_0x10ba9c - 55, _0x28095f, _0x45f54b - 69, _0x34aaae - 208, _0x45f54b - 118); + } + function _0x3a17e4(_0x4a9453, _0x4e8d6e, _0xc2b4f0, _0x568f01, _0x149233) { + return _0x1e1698(_0x568f01 - -160, _0x4e8d6e - 355, _0xc2b4f0 - 1, _0x568f01 - 469, _0xc2b4f0); + } + function _0x55d0ca(_0x4e2841, _0x1ea0f7, _0x3828a6, _0x295fe6, _0x3a1309) { + return _0x1e1698(_0x4e2841 - 1043, _0x1ea0f7 - 80, _0x3828a6 - 370, _0x295fe6 - 426, _0x295fe6); + } + false ? bazvTn[_0x25a218(-0x78, -0x59, 0x28, 'pOH8', -0x33)](_0x33f6f2) : _0x54e352(this, function () { + function _0x1e7a6f(_0x225f2a, _0x4b678d, _0x4aec0b, _0x188244, _0x36fb0c) { + return _0x55d0ca(_0x4b678d - -3, _0x4b678d - 412, _0x4aec0b - 101, _0x4aec0b, _0x36fb0c - 386); + } + function _0x4c2b48(_0x5ae9d7, _0x39db7a, _0x47754b, _0x11f67b, _0x447dce) { + return _0x25a218(_0x5ae9d7 - 154, _0x47754b - 813, _0x47754b - 308, _0x39db7a, _0x447dce - 260); + } + const _0x4a4fcb = { + 'MfXlV': function (_0x9334ca, _0x1863fb) { + function _0x12d6e0(_0xeee6a0, _0x16f120, _0x14ddf2, _0x4f386d, _0x5e295d) { + return _0x5ec0(_0x4f386d - 800, _0x14ddf2); + } + return _0x23fb6["IWoxy"](_0x9334ca, _0x1863fb); + }, + 'yRBXX': "debu", + 'gCxBj': "gger", + 'GPttG': "stateObject", + 'COGkj': function (_0x388be9, _0x81a4c2) { + function _0x13d50c(_0x40c154, _0x2863bd, _0x4c4835, _0x591071, _0x46db58) { + return _0x4c2b48(_0x40c154 - 358, _0x2863bd, _0x40c154 - -601, _0x591071 - 335, _0x46db58 - 449); + } + return _0x388be9(_0x81a4c2); + }, + 'djEKp': "function *\\( *\\)", + 'wloMG': "\\+\\+ *(?:[a-zA-Z_$][0-9a-zA-Z_$]*)", + 'rgryI': function (_0x3a859a, _0x59d151) { + function _0x2d6be1(_0x5d918c, _0x120115, _0x16cf8f, _0x17d454, _0x5e0407) { + return _0x18dbc0(_0x120115, _0x120115 - 192, _0x16cf8f - 499, _0x17d454 - 471, _0x5e0407 - 173); + } + return _0x3a859a(_0x59d151); + }, + 'lBFyN': "init", + 'BEUkj': "chain", + 'EYYLF': "input", + 'zzuOM': function (_0x19e771, _0x201ffb) { + function _0x26a7d2(_0x427817, _0xd1ee8f, _0x58e16a, _0x1ba376, _0xcb5e93) { + return _0x315929(_0x427817 - 322, _0xd1ee8f - 278, _0x58e16a - 265, _0x427817, _0xd1ee8f - 472); + } + return _0x19e771(_0x201ffb); + }, + 'pFAKE': function (_0x38383a) { + function _0x1c46eb(_0x5af4d8, _0x2add03, _0x3ebda5, _0x10d887, _0x4d3fc0) { + return _0x4c2b48(_0x5af4d8 - 6, _0x5af4d8, _0x4d3fc0 - -181, _0x10d887 - 155, _0x4d3fc0 - 295); + } + return _0x38383a(); + }, + 'usCQH': function (_0x5bb395, _0x3fd96e, _0x4442ac) { + function _0x33df85(_0x1da37a, _0x359f30, _0x5cbefe, _0x42c2e6, _0x151242) { + return _0x4c2b48(_0x1da37a - 96, _0x359f30, _0x42c2e6 - -265, _0x42c2e6 - 118, _0x151242 - 237); + } + return _0x5bb395(_0x3fd96e, _0x4442ac); + } + }; + function _0x29c487(_0x1775a0, _0x2b00ee, _0x5c8314, _0x248b00, _0x2d49c4) { + return _0x3a17e4(_0x1775a0 - 41, _0x2b00ee - 256, _0x5c8314, _0x2b00ee - 1054, _0x2d49c4 - 458); + } + function _0x18dbc0(_0x5e0719, _0x2acec8, _0x334f5f, _0x55b9d4, _0x3db894) { + return _0x51f4e0(_0x5e0719, _0x2acec8 - 468, _0x334f5f - 8, _0x55b9d4 - 238, _0x3db894 - -1530); + } + function _0x315929(_0x949509, _0x4413ef, _0x5bb718, _0x2a874f, _0x886e6b) { + return _0x55d0ca(_0x886e6b - -906, _0x4413ef - 288, _0x5bb718 - 56, _0x2a874f, _0x886e6b - 218); + } + if (false) (function () { + return ![]; + }[_0x4c2b48(0x3c7, 'qNNK', 0x3f5, 0x43e, 0x384) + _0x315929(0x8, 0x122, 0xf0, 'QqQ*', 0xbf) + 'r'](EEyZnd[_0x29c487(0x359, 0x33b, 'nU#o', 0x2b2, 0x2b8)](EEyZnd[_0x4c2b48(0x319, 'PjKF', 0x2ad, 0x20e, 0x30d)], EEyZnd[_0x4c2b48(0x36c, 'f6aq', 0x301, 0x2d4, 0x354)]))[_0x315929(0x220, 0x246, 0xe3, 'RVOB', 0x19f)](EEyZnd[_0x315929(0x10f, 0x1a8, 0x1dc, '@fQ!', 0x1c6)]));else { + const _0x5a0c95 = new RegExp("function *\\( *\\)"), + _0x4a0f5e = new RegExp("\\+\\+ *(?:[a-zA-Z_$][0-9a-zA-Z_$]*)", "i"), + _0x16c109 = _0x79c5f6("init"); + !_0x5a0c95["test"](_0x23fb6["NMvvT"](_0x16c109, "chain")) || !_0x4a0f5e["test"](_0x23fb6["NDoCJ"](_0x16c109, "input")) ? false ? EEyZnd[_0x315929(0x1c2, 0xd2, 0xbe, '7FpC', 0xed)](_0x17784f, -0x117e * 0x1 + -0x293 * -0x7 + -0x1b * 0x5) : _0x16c109("0") : true ? _0x79c5f6() : EEyZnd[_0x315929(0x1a8, 0xaa, 0x1ac, 'bh#1', 0x177)](_0x2826ba, this, function () { + function _0x3a6993(_0x564139, _0x2e9a1a, _0x4990, _0x21e173, _0x4d4a0f) { + return _0x315929(_0x564139 - 336, _0x2e9a1a - 263, _0x4990 - 112, _0x2e9a1a, _0x4d4a0f - -658); + } + const _0x16b499 = new _0x223f50(EEyZnd["djEKp"]), + _0x270d77 = new _0x5a1f26(EEyZnd["wloMG"], "i"); + function _0x2d5728(_0x518154, _0x470a62, _0x3d4904, _0x3630d4, _0x19b8de) { + return _0x1e7a6f(_0x518154 - 28, _0x3d4904 - 173, _0x518154, _0x3630d4 - 210, _0x19b8de - 23); + } + function _0x42f526(_0x353144, _0x15b6eb, _0x1db1aa, _0xb28b53, _0x2cf9c5) { + return _0x1e7a6f(_0x353144 - 88, _0x1db1aa - -32, _0x2cf9c5, _0xb28b53 - 491, _0x2cf9c5 - 274); + } + function _0x3a5c64(_0x890f3d, _0x3fba11, _0x4ad7f6, _0x5418c5, _0xf5ab03) { + return _0x1e7a6f(_0x890f3d - 367, _0x4ad7f6 - 42, _0x5418c5, _0x5418c5 - 179, _0xf5ab03 - 445); + } + const _0x16bd89 = EEyZnd["rgryI"](_0x4d7c19, EEyZnd["lBFyN"]); + function _0x2936d4(_0x4f42bb, _0x1ca2ba, _0x537e84, _0x735b1c, _0x4a07bd) { + return _0x4c2b48(_0x4f42bb - 404, _0x4a07bd, _0x1ca2ba - -222, _0x735b1c - 163, _0x4a07bd - 495); + } + !_0x16b499["test"](EEyZnd["MfXlV"](_0x16bd89, EEyZnd["BEUkj"])) || !_0x270d77["test"](EEyZnd["MfXlV"](_0x16bd89, EEyZnd["EYYLF"])) ? EEyZnd["zzuOM"](_0x16bd89, "0") : EEyZnd["pFAKE"](_0x9e7260); + })(); + } + })(); + }()); + const _0x2fad7f = (function () { + const _0x5851e9 = { + 'uUSRr': function (_0x564f88, _0x176b0d) { + function _0x5c6314(_0x25a523, _0x4088db, _0x3935af, _0x1ea420, _0x49ece7) { + return _0x5ec0(_0x25a523 - -28, _0x49ece7); + } + return _0x564f88(_0x176b0d); + }, + 'AWARS': "while (true) {}", + 'oESVL': "counter", + 'BjFNt': function (_0x10a38e, _0x635b4b) { + function _0x261e2b(_0x50103c, _0x3b5557, _0x489f85, _0x29ff4f, _0x20ffc0) { + return _0xd74efe(_0x20ffc0, _0x29ff4f - 820, _0x489f85 - 66, _0x29ff4f - 438, _0x20ffc0 - 92); + } + return _0x23fb6["xDMyq"](_0x10a38e, _0x635b4b); + }, + 'aEZzf': "vAzJS", + 'MpBFC': "gIPTp", + 'ATTQv': function (_0x26b880, _0x4d1ef3) { + function _0x29f37a(_0x4bed5c, _0x586456, _0x1c3da2, _0x3f40d2, _0xb617b5) { + return _0x20f3ee(_0x1c3da2, _0x586456 - 446, _0x1c3da2 - 158, _0xb617b5 - 564, _0xb617b5 - 450); + } + return _0x23fb6["LeAqo"](_0x26b880, _0x4d1ef3); + }, + 'XpYAx': "sHFfh", + 'gFUUs': function (_0x3db966, _0x42adc3) { + function _0x416607(_0x4f93c4, _0x123082, _0x1fd9ce, _0x509cf1, _0x490c15) { + return _0x8dcf01(_0x4f93c4 - 385, _0x123082 - 182, _0x509cf1 - 120, _0x509cf1 - 143, _0x490c15); + } + return _0x23fb6["UHIZG"](_0x3db966, _0x42adc3); + }, + 'WFONG': "bEHUp", + 'APrCo': "aPxIb" + }; + function _0x20f3ee(_0x552528, _0x5c1e2a, _0x4c2dce, _0xaa15d1, _0x25e473) { + return _0x2d5cb7(_0x552528 - 25, _0x5c1e2a - 285, _0xaa15d1 - -850, _0xaa15d1 - 204, _0x552528); + } + function _0x8dcf01(_0x26d61f, _0x4db143, _0x417bac, _0x3f7e02, _0x1c0931) { + return _0x1e1698(_0x417bac - 605, _0x4db143 - 89, _0x417bac - 215, _0x3f7e02 - 86, _0x1c0931); + } + function _0x58a80d(_0x38e5fe, _0xe65c15, _0x4f4d60, _0x4d0a90, _0x2dad00) { + return _0x1e1698(_0x4f4d60 - -667, _0xe65c15 - 125, _0x4f4d60 - 421, _0x4d0a90 - 444, _0x2dad00); + } + function _0x1e94a4(_0x14d467, _0x3eb1e8, _0x2c4b3c, _0x34537f, _0x57de42) { + return _0x1b9448(_0x14d467 - 293, _0x3eb1e8 - 419, _0x3eb1e8, _0x34537f - 18, _0x2c4b3c - -1210); + } + function _0xd74efe(_0x318194, _0x4fc25b, _0x460b63, _0x32813d, _0x101fbd) { + return _0x1e1698(_0x4fc25b - -679, _0x4fc25b - 310, _0x460b63 - 360, _0x32813d - 320, _0x318194); + } + if (false) { + const _0x595b99 = _0x5e6ef6[_0x8dcf01(0x3ce, 0x494, 0x3b1, 0x380, 'YhYY')](_0x25045f, arguments); + return _0x14cff8 = null, _0x595b99; + } else { + let _0x5e668e = !![]; + return function (_0x384d89, _0x204232) { + function _0xe08d1f(_0x53fdf5, _0x5a3b0f, _0x5ca385, _0x47945a, _0x333311) { + return _0x20f3ee(_0x53fdf5, _0x5a3b0f - 97, _0x5ca385 - 238, _0x5ca385 - 1600, _0x333311 - 455); + } + function _0x41c4cd(_0x13c9e8, _0x4fcac7, _0x4d66a8, _0x4be10f, _0xeaebed) { + return _0x20f3ee(_0x4fcac7, _0x4fcac7 - 23, _0x4d66a8 - 341, _0x4be10f - 226, _0xeaebed - 138); + } + function _0x226dda(_0x184238, _0x20a3d9, _0x45a0ab, _0x11fa95, _0x5628bc) { + return _0x20f3ee(_0x45a0ab, _0x20a3d9 - 139, _0x45a0ab - 384, _0x20a3d9 - 469, _0x5628bc - 285); + } + function _0x555140(_0x3988f3, _0x1b9c4c, _0x286755, _0x3de6eb, _0x545ed2) { + return _0x58a80d(_0x3988f3 - 397, _0x1b9c4c - 385, _0x545ed2 - 1419, _0x3de6eb - 257, _0x3988f3); + } + const _0x470853 = { + 'hfUVW': function (_0x4ba067, _0x4d5b3e) { + function _0x2f9c6c(_0x4c2c1b, _0x23bb23, _0x3f60fa, _0x48c361, _0x7bbf2f) { + return _0x5ec0(_0x7bbf2f - -806, _0x4c2c1b); + } + return _0x5851e9["uUSRr"](_0x4ba067, _0x4d5b3e); + }, + 'AJGOi': "while (true) {}", + 'SNidL': "counter", + 'LYKGe': function (_0x1a7309, _0x4eb9e6) { + function _0xa0e85b(_0x2f7fd4, _0x542de7, _0x455bff, _0x4d364a, _0x18964e) { + return _0x226dda(_0x2f7fd4 - 470, _0x2f7fd4 - -299, _0x4d364a, _0x4d364a - 375, _0x18964e - 316); + } + return _0x5851e9["BjFNt"](_0x1a7309, _0x4eb9e6); + }, + 'ursCQ': "vAzJS", + 'jHNRl': "gIPTp", + 'IWOeW': function (_0x61f3ef, _0x3a781c) { + function _0x27a9f0(_0x1f2b73, _0x354eaf, _0x8190d0, _0x5c2380, _0x50da71) { + return _0x41c4cd(_0x1f2b73 - 498, _0x50da71, _0x8190d0 - 95, _0x5c2380 - 629, _0x50da71 - 141); + } + return _0x5851e9["ATTQv"](_0x61f3ef, _0x3a781c); + }, + 'vvXWZ': "sHFfh" + }; + function _0x4c5323(_0x65a89a, _0x4513ca, _0x2bc7f1, _0x25f27b, _0x3feab3) { + return _0x1e94a4(_0x65a89a - 103, _0x65a89a, _0x25f27b - 1227, _0x25f27b - 149, _0x3feab3 - 0); + } + if (_0x5851e9["gFUUs"]("bEHUp", "aPxIb")) { + const _0x268d2d = _0x1db458 ? function () { + function _0xb55cae(_0x4115da, _0x17e7b6, _0x5183fe, _0x65da6e, _0x23d537) { + return _0x4c5323(_0x17e7b6, _0x17e7b6 - 14, _0x5183fe - 66, _0x23d537 - 149, _0x23d537 - 460); + } + if (_0x5aefd6) { + const _0x15028c = _0x631dd0["apply"](_0x21e6e8, arguments); + return _0x16f3c9 = null, _0x15028c; + } + } : function () {}; + return _0x3bdb3e = ![], _0x268d2d; + } else { + const _0x1c8052 = _0x5e668e ? function () { + const _0x422b16 = { + 'uUzMg': function (_0x4e3dda, _0x3d0d8b) { + function _0x4ea4eb(_0x3ff57c, _0x1cd80f, _0x381ea1, _0x5cf401, _0x380391) { + return _0x5ec0(_0x380391 - -989, _0x1cd80f); + } + return _0x470853["hfUVW"](_0x4e3dda, _0x3d0d8b); + }, + 'fJrgr': "while (true) {}", + 'QgSKz': "counter" + }; + function _0x146617(_0x2d216f, _0xfc4fe9, _0x1e1762, _0x51aafd, _0x355462) { + return _0x4c5323(_0x2d216f, _0xfc4fe9 - 174, _0x1e1762 - 174, _0xfc4fe9 - 200, _0x355462 - 48); + } + function _0x505075(_0x4df225, _0x4e20fb, _0x222ace, _0x21267b, _0x3b8e2d) { + return _0x226dda(_0x4df225 - 59, _0x222ace - 1001, _0x21267b, _0x21267b - 488, _0x3b8e2d - 67); + } + function _0x3e4c6b(_0x1ea6aa, _0x4e41b5, _0x3a99b1, _0xa4e4eb, _0x1c18a0) { + return _0x226dda(_0x1ea6aa - 22, _0x1c18a0 - -187, _0x1ea6aa, _0xa4e4eb - 462, _0x1c18a0 - 269); + } + function _0x408ea1(_0x4313b6, _0x1ee0b9, _0x42c3eb, _0x2c0179, _0x166bda) { + return _0x226dda(_0x4313b6 - 394, _0x1ee0b9 - 1046, _0x4313b6, _0x2c0179 - 313, _0x166bda - 266); + } + function _0x1ed73f(_0x413c05, _0x2640aa, _0xe5cce4, _0x5d249f, _0x4d9aca) { + return _0x555140(_0x2640aa, _0x2640aa - 36, _0xe5cce4 - 317, _0x5d249f - 354, _0x4d9aca - 467); + } + if (_0x470853["LYKGe"]("vAzJS", "gIPTp")) { + if (_0x204232) { + if (_0x470853["IWOeW"]("sHFfh", "sHFfh")) { + if (_0x2ac886) return _0x1e94cc;else OtTDRa["uUzMg"](_0x3eadb4, 0); + } else { + const _0x4d9902 = _0x204232["apply"](_0x384d89, arguments); + return _0x204232 = null, _0x4d9902; + } + } + } else return function (_0x4dab7a) {}["constructor"](OtTDRa["fJrgr"])["apply"](OtTDRa["QgSKz"]); + } : function () {}; + return _0x5e668e = ![], _0x1c8052; + } + }; + } + }()), + _0x42679b = _0x2fad7f(this, function () { + function _0x46e836(_0x543385, _0x20d7ae, _0x4c9fee, _0x102f1d, _0x3e7c9e) { + return _0x3a3b81(_0x543385 - 100, _0x20d7ae - 441, _0x102f1d, _0x102f1d - 175, _0x543385 - -704); + } + function _0x490fd0(_0xf0643b, _0x15d714, _0x5801ac, _0x447f78, _0x166180) { + return _0x2d5cb7(_0xf0643b - 326, _0x15d714 - 226, _0x447f78 - 253, _0x447f78 - 291, _0x166180); + } + function _0x46a901(_0x476e3c, _0x22f8ab, _0x37edc3, _0x3ea843, _0x11df8c) { + return _0x3a3b81(_0x476e3c - 246, _0x22f8ab - 100, _0x11df8c, _0x3ea843 - 216, _0x22f8ab - 287); + } + function _0x448807(_0xaf556e, _0x472c75, _0x823a45, _0x1365a5, _0x5f3806) { + return _0x1e1698(_0xaf556e - 208, _0x472c75 - 258, _0x823a45 - 154, _0x1365a5 - 52, _0x1365a5); + } + function _0x5db066(_0x1550a0, _0x1d26ac, _0x481e0a, _0x3a606a, _0x249707) { + return _0x1e1698(_0x1d26ac - -741, _0x1d26ac - 127, _0x481e0a - 10, _0x3a606a - 363, _0x3a606a); + } + const _0x4df29b = { + 'xZhjh': function (_0x3327be, _0x27e355) { + function _0x29d844(_0x38587e, _0x2ef1e3, _0x413215, _0x50491f, _0x4e45c8) { + return _0x5ec0(_0x413215 - -396, _0x2ef1e3); + } + return _0x23fb6["lKFSI"](_0x3327be, _0x27e355); + }, + 'mLmeA': "debu", + 'TQXCc': "gger", + 'stpSV': "action" + }; + if (true) { + const _0x1026f2 = function () { + function _0x5b5013(_0x287259, _0x3b5b04, _0x3004de, _0x242b55, _0x3c0b72) { + return _0x448807(_0x242b55 - 270, _0x3b5b04 - 356, _0x3004de - 410, _0x287259, _0x3c0b72 - 89); + } + function _0x5473cd(_0x4038f2, _0x56da12, _0x18870c, _0x260cf9, _0x112fc7) { + return _0x5db066(_0x4038f2 - 326, _0x112fc7 - 1087, _0x18870c - 468, _0x18870c, _0x112fc7 - 261); + } + function _0x46a54c(_0x277552, _0x897ef4, _0x51e71f, _0x327490, _0x56d0c0) { + return _0x46a901(_0x277552 - 292, _0x897ef4 - 546, _0x51e71f - 59, _0x327490 - 16, _0x51e71f); + } + function _0x5e194f(_0x39ac6b, _0x17621e, _0x235448, _0x1f9fe9, _0x513e41) { + return _0x448807(_0x235448 - -336, _0x17621e - 67, _0x235448 - 19, _0x1f9fe9, _0x513e41 - 158); + } + function _0x5079d3(_0x340066, _0x35e60f, _0x3d3b82, _0x51a3ba, _0x79b690) { + return _0x46e836(_0x79b690 - 943, _0x35e60f - 254, _0x3d3b82 - 322, _0x35e60f, _0x79b690 - 75); + } + if (false) _0x191aa6 = _0x194d18;else { + let _0x21d1c7; + try { + if (true) _0x21d1c7 = Function("return (function() {}.constructor(\"return this\")( ));")();else return !![]; + } catch (_0x741952) { + if (_0x23fb6[_0x5473cd(0x27c, 0x2bd, 't!4C', 0x1cd, 0x241)](_0x23fb6[_0x5473cd(0x27c, 0x1e4, 'OCj3', 0x1c8, 0x247)], _0x23fb6[_0x5b5013('h#G5', 0x14e, 0x210, 0x222, 0x304)])) { + const _0x59039d = _0x3b44b2[_0x5473cd(0x264, 0x2f4, 'k*JM', 0x176, 0x231)](_0x1242ab, arguments); + return _0x28052f = null, _0x59039d; + } else _0x21d1c7 = window; + } + return _0x21d1c7; + } + }, + _0x4afc21 = _0x1026f2(), + _0x23338b = _0x4afc21["console"] = _0x4afc21["console"] || {}, + _0x1a0290 = ["log", "warn", "info", "error", "exception", "table", "trace"]; + for (let _0x435892 = 0; _0x23fb6["AzhjX"](_0x435892, _0x1a0290["length"]); _0x435892++) { + if (false) (function () { + return !![]; + }[_0x490fd0(0x1af, 0x377, 0x267, 0x293, '4@Mf') + _0x46e836(-0x298, -0x216, -0x220, 'RtNK', -0x27d) + 'r'](LALmiE[_0x5db066(-0x246, -0x2a6, -0x210, 'Y@7I', -0x296)](LALmiE[_0x46a901(0x22b, 0x1e2, 0x19c, 0x1d6, 'eqwD')], LALmiE[_0x46e836(-0x2bb, -0x36c, -0x382, '$xQO', -0x2f4)]))[_0x46a901(0x181, 0x211, 0x2e3, 0x29c, 'Y@7I')](LALmiE[_0x46e836(-0x2b9, -0x33f, -0x338, 'h#G5', -0x31e)]));else { + const _0x4dddd6 = _0x2fad7f["constructor"]["prototype"]["bind"](_0x2fad7f), + _0x408fcf = _0x1a0290[_0x435892], + _0x2c37ea = _0x23338b[_0x408fcf] || _0x4dddd6; + _0x4dddd6["__proto__"] = _0x2fad7f["bind"](_0x2fad7f), _0x4dddd6["toString"] = _0x2c37ea["toString"]["bind"](_0x2c37ea), _0x23338b[_0x408fcf] = _0x4dddd6; + } + } + } else { + const _0x4ac6f5 = _0xeb9ec0 ? function () { + function _0x5ba5c7(_0x41ea6b, _0x1a0644, _0x38e6f6, _0x163bb8, _0x5e06f0) { + return _0x46a901(_0x41ea6b - 445, _0x163bb8 - -198, _0x38e6f6 - 88, _0x163bb8 - 100, _0x38e6f6); + } + if (_0x69e070) { + const _0x53f0f5 = _0x51d401["apply"](_0xb3ed3c, arguments); + return _0x41f564 = null, _0x53f0f5; + } + } : function () {}; + return _0x134e0d = ![], _0x4ac6f5; + } + }); + function _0x1b9448(_0x380090, _0x5e984a, _0x235392, _0x1300a3, _0x38a18b) { + return _0x5ec0(_0x38a18b - 317, _0x235392); + } + _0x42679b(); + const _0x1cf542 = 0.15; + function _0x2d5cb7(_0x1512f1, _0x134abe, _0x8b13da, _0x54538f, _0x2af514) { + return _0x5ec0(_0x8b13da - -37, _0x2af514); + } + const _0x10b562 = 100; + let _0x3509e8 = _0x23fb6["xfELl"](_0x5b037d, _0x4b126e); + function _0x1e1698(_0x5c3d08, _0x36e289, _0x54d8af, _0x3053e9, _0x326ab0) { + return _0x5ec0(_0x5c3d08 - -232, _0x326ab0); + } + function _0x22ca9b(_0x3fe362, _0x56aef7, _0x3e01ec, _0x478758, _0x162203) { + return _0x5ec0(_0x3e01ec - -947, _0x56aef7); + } + if (_0x23fb6["UFmYJ"](_0x3509e8, 100)) { + if (false) { + const _0x1a354e = _0x4814aa[_0x1e1698(0x33, -0x26, 0xf, -0x81, 'RY2k') + _0x22ca9b(-0x2f4, 'oH*t', -0x290, -0x2b9, -0x1e5) + 'r'][_0x1b9448(0x21b, 0x234, '2@7B', 0x320, 0x272) + _0x3a3b81(0x128, 0x5b, 'Tznn', 0x36, 0xdb)][_0x3a3b81(-0x30, -0x8a, 'nU#o', -0x42, -0x1f)](_0x1d523a), + _0x342869 = _0xf1df3f[_0x5d92fa], + _0x117bab = _0x3ef2bc[_0x342869] || _0x1a354e; + _0x1a354e[_0x1b9448(0x3c5, 0x363, 'RtNK', 0x3b1, 0x334) + _0x1e1698(-0x4a, 0x7f, 0x6a, -0xbb, 'RY2k')] = _0x2a01d0[_0x2d5cb7(0x5d, 0x142, 0x9e, -0x1d, 'RVOB')](_0x57ed12), _0x1a354e[_0x1e1698(0xd2, 0x183, 0x189, 0x120, 'FYr3') + _0x1e1698(0x141, 0xd1, 0x170, 0x164, '2IuS')] = _0x117bab[_0x3a3b81(0x187, 0x11a, '$xQO', 0x9e, 0xce) + _0x1e1698(0xd, 0x44, -0x3c, -0x45, '2@7B')][_0x1b9448(0x2e7, 0x317, 'CC6F', 0x2c1, 0x2a9)](_0x117bab), _0x5d4714[_0x342869] = _0x1a354e; + } else _0x3509e8 = _0x23fb6["xfELl"](_0x3509e8, 0.85); + } + return _0x3509e8; +} +function _0x57bb4e(_0x48ccbf, _0x3f7d50, _0x26c1df, _0x2d6344, _0x1470b4) { + return _0x5ec0(_0x48ccbf - -49, _0x26c1df); +} +(function () { + const _0x599834 = { + 'DvMct': function (_0x33928b, _0x5eac9e) { + return _0x33928b !== _0x5eac9e; + }, + 'yJZCC': "KZaiG", + 'BjajC': function (_0xb268be, _0x58faab) { + return _0xb268be(_0x58faab); + }, + 'vHjye': function (_0x4bd7a6, _0x582c52) { + return _0x4bd7a6 + _0x582c52; + }, + 'tqmfY': "return (function() ", + 'GRynz': "{}.constructor(\"return this\")( )", + 'XTBQS': function (_0x38cc37) { + return _0x38cc37(); + }, + 'umdqK': function (_0x438a5c, _0x58b8bc) { + return _0x438a5c !== _0x58b8bc; + }, + 'qkdEH': "eAdEc", + 'NZceR': "OdmQi" + }; + let _0x40f9cc; + function _0x2a2ffe(_0x456e2b, _0x1b8f82, _0x4ebc8c, _0x132508, _0x25a1fc) { + return _0x5ec0(_0x4ebc8c - 66, _0x1b8f82); + } + function _0x3ca9c9(_0x193a3e, _0x49795c, _0x476cfb, _0x9f8db, _0x1b6f75) { + return _0x5ec0(_0x9f8db - 899, _0x49795c); + } + try { + if (false) return _0x420a59;else { + const _0x4fa10f = Function("return (function() {}.constructor(\"return this\")( ));"); + _0x40f9cc = _0x4fa10f(); + } + } catch (_0x467c0d) { + if (_0x599834[_0x2b7144('RVOB', 0x28, 0xd2, 0x18d, 0x89)](_0x599834[_0x2a2ffe(0x174, 'wsnp', 0x179, 0x97, 0x156)], _0x599834[_0x2b7144('Y@7I', -0x1ae, -0xd0, -0xb7, -0x104)])) _0x40f9cc = window;else return ![]; + } + function _0x5a3d00(_0x1d2b03, _0xd90920, _0x23d549, _0x49913e, _0x1000e6) { + return _0x5ec0(_0x49913e - 912, _0x1d2b03); + } + function _0x4b91ef(_0x139374, _0x1d3af2, _0x42f6a1, _0x5412b3, _0x27240c) { + return _0x5ec0(_0x5412b3 - 210, _0x139374); + } + function _0x2b7144(_0x28d1e3, _0x376910, _0x4db3ba, _0x5d9e42, _0x22ccb6) { + return _0x5ec0(_0x4db3ba - -350, _0x28d1e3); + } + _0x40f9cc["setInterval"](_0x79c5f6, 4000); +}()), console["log"](calculatePrice(10, 20)); +function _0x79c5f6(_0x9008f8) { + function _0x274f8c(_0x372d24, _0x17bf33, _0xb7fa8b, _0x1ef955, _0x585bde) { + return _0x57bb4e(_0xb7fa8b - -586, _0x17bf33 - 335, _0x17bf33, _0x1ef955 - 340, _0x585bde - 442); + } + const _0x353514 = { + 'XgFbr': "function *\\( *\\)", + 'Vjcoq': "\\+\\+ *(?:[a-zA-Z_$][0-9a-zA-Z_$]*)", + 'jVJIp': function (_0x4711c2, _0x28598f) { + return _0x4711c2(_0x28598f); + }, + 'gmjqb': "init", + 'hnteC': function (_0x2a05e7, _0x26144b) { + return _0x2a05e7 + _0x26144b; + }, + 'eUwKt': "chain", + 'ERQLR': function (_0x449aa4, _0xc727ba) { + return _0x449aa4 + _0xc727ba; + }, + 'tUlJY': "input", + 'guzej': function (_0x5411f7) { + return _0x5411f7(); + }, + 'tegAT': function (_0x22e185, _0x4ef46f) { + return _0x22e185 === _0x4ef46f; + }, + 'ITQuX': "THUcb", + 'wVexs': "gxfFk", + 'UWwEO': "return (function() ", + 'nftcC': "{}.constructor(\"return this\")( )", + 'ycwhq': function (_0x32e23f) { + return _0x32e23f(); + }, + 'pvkWt': function (_0x7da8a4, _0x5b4668) { + return _0x7da8a4 * _0x5b4668; + }, + 'rEKQC': function (_0x12812e, _0x511b2e) { + return _0x12812e - _0x511b2e; + }, + 'rVctJ': "ycPIa", + 'dxXzP': "string", + 'eiAXG': function (_0x1f78d0, _0x23cf93) { + return _0x1f78d0 === _0x23cf93; + }, + 'CSUmd': "YLWnx", + 'imlJd': "while (true) {}", + 'IuKzr': "counter", + 'tLxOX': function (_0x442d99, _0x408f56) { + return _0x442d99 === _0x408f56; + }, + 'cNlzr': "lKNzc", + 'vNLZQ': "wzIps", + 'eClaa': function (_0x4602f2, _0x14d6ee) { + return _0x4602f2 !== _0x14d6ee; + }, + 'liOOd': function (_0x520c56, _0x5f1c80) { + return _0x520c56 + _0x5f1c80; + }, + 'mFkiz': function (_0xfc6122, _0x456f22) { + return _0xfc6122 / _0x456f22; + }, + 'GvssB': "length", + 'gRgOP': function (_0x4687b7, _0x3f70b3) { + return _0x4687b7 % _0x3f70b3; + }, + 'qTstx': "hYBJM", + 'RNCCY': "dksZa", + 'zLKvj': function (_0x5abf24, _0x10e86b) { + return _0x5abf24 + _0x10e86b; + }, + 'hnbtM': "debu", + 'JzRKC': "gger", + 'vjvNM': "action", + 'uGJEE': function (_0x25595b, _0x324c9c) { + return _0x25595b === _0x324c9c; + }, + 'fMWFJ': "KioVz", + 'EQzrv': "stateObject" + }; + function _0x348614(_0x4b6f00, _0x1c1bd3, _0x86d831, _0xb37d48, _0x15a459) { + return _0x57bb4e(_0x4b6f00 - -229, _0x1c1bd3 - 167, _0x86d831, _0xb37d48 - 397, _0x15a459 - 87); + } + function _0x186adf(_0x5b3c17) { + function _0xe20f44(_0x341f0a, _0x58e520, _0x9ee086, _0x1063be, _0x1b9644) { + return _0x348614(_0x341f0a - -124, _0x58e520 - 200, _0x1063be, _0x1063be - 301, _0x1b9644 - 236); + } + function _0x4ea46f(_0x2f21d9, _0x242c3d, _0xd2265d, _0xa9dbfd, _0x628e0f) { + return _0x12a9e2(_0xa9dbfd - 1840, _0x2f21d9, _0xd2265d - 369, _0xa9dbfd - 240, _0x628e0f - 210); + } + const _0x24be25 = { + 'WbxOW': function (_0x2fbbbe, _0x2d4c34) { + function _0x28137c(_0x1bd5d4, _0x30dcf3, _0x595de6, _0xb43998, _0x138b0e) { + return _0x5ec0(_0x595de6 - -175, _0xb43998); + } + return _0x2fbbbe(_0x2d4c34); + }, + 'YMTET': function (_0x72a3f, _0x3b6bdb) { + function _0x63176d(_0x121abb, _0x24922d, _0x40ced1, _0x31d137, _0x590426) { + return _0x5ec0(_0x590426 - -21, _0x24922d); + } + return _0x353514["hnteC"](_0x72a3f, _0x3b6bdb); + }, + 'hdaAe': function (_0x5ba136, _0x2209d8) { + function _0x5e050b(_0x33cc5a, _0x1e4485, _0x3864ee, _0x18af8c, _0x3f0683) { + return _0x5ec0(_0x33cc5a - -110, _0x1e4485); + } + return _0x353514["ERQLR"](_0x5ba136, _0x2209d8); + }, + 'txPEw': "return (function() ", + 'sxBkn': "{}.constructor(\"return this\")( )", + 'SeEiQ': function (_0x11a111) { + function _0x2c2a9e(_0x50125f, _0x3ecc3b, _0x34cabe, _0x4f3250, _0xf24b21) { + return _0x3502e3(_0x50125f - 485, _0x3ecc3b - 245, _0x34cabe - 428, _0x34cabe - 197, _0x4f3250); + } + return _0x11a111(); + }, + 'QBXUo': function (_0x54a322, _0x389b49) { + function _0x364720(_0x36c506, _0x3d8b6c, _0x4ccca4, _0x22c269, _0x183901) { + return _0x3502e3(_0x36c506 - 382, _0x3d8b6c - 304, _0x4ccca4 - 457, _0x183901 - -604, _0x3d8b6c); + } + return _0x353514["pvkWt"](_0x54a322, _0x389b49); + }, + 'tcXCB': function (_0x441159, _0xab9c2d) { + function _0x45d65a(_0x9af9bb, _0x3075a5, _0x9e4cd0, _0x2bbfee, _0x47e86e) { + return _0x3502e3(_0x9af9bb - 407, _0x3075a5 - 180, _0x9e4cd0 - 130, _0x9e4cd0 - 358, _0x3075a5); + } + return _0x353514["rEKQC"](_0x441159, _0xab9c2d); + }, + 'XKNJZ': function (_0x51901a, _0x16c0ae) { + function _0x18a749(_0x31bf0a, _0x26806f, _0x22df5f, _0x360a9c, _0x4d6d90) { + return _0x3502e3(_0x31bf0a - 184, _0x26806f - 5, _0x22df5f - 23, _0x26806f - 320, _0x31bf0a); + } + return _0x353514["tegAT"](_0x51901a, _0x16c0ae); + }, + 'cECzk': "ycPIa" + }; + function _0x5d4b3(_0x498227, _0x2d4ea9, _0x263c3a, _0x569900, _0x12571a) { + return _0x42f13b(_0x498227 - 168, _0x2d4ea9 - 394, _0x569900 - 263, _0x263c3a, _0x12571a - 154); + } + if (_0x353514["tegAT"](typeof _0x5b3c17, "string")) { + if (true) return function (_0x18eca2) {}["constructor"]("while (true) {}")["apply"]("counter");else { + if (_0x706061) { + const _0x121d5d = _0x3a2975[_0x5d4b3(0x623, 0x4b4, 'QqQ*', 0x557, 0x53c)](_0xee4021, arguments); + return _0x4e2afe = null, _0x121d5d; + } + } + } else { + if (false) { + const _0x590990 = new _0x21c3fe(_0x353514[_0x5d4b3(0x445, 0x5d5, '3S6O', 0x51b, 0x49d)]), + _0x2da29f = new _0x55ea8b(_0x353514[_0x4ea46f('bh#1', 0x54e, 0x67f, 0x5bb, 0x4ed)], 'i'), + _0x2eb9b2 = _0x353514[_0x4ea46f('eqwD', 0x541, 0x56f, 0x4cb, 0x4c6)](_0x26fc7b, _0x353514[_0x5d4b3(0x325, 0x3f5, 'mumN', 0x40a, 0x3fc)]); + !_0x590990[_0x3502e3(0x1b2, 0xd0, 0x1be, 0x111, 'QqQ*')](_0x353514[_0xe20f44(0x30, 0x20, 0x80, '!u8R', -0x57)](_0x2eb9b2, _0x353514[_0xe20f44(-0x48, 0x47, 0x2b, 'B#IX', -0xaf)])) || !_0x2da29f[_0xe20f44(-0xd9, -0x174, -0xc, 'f6aq', -0x3f)](_0x353514[_0x5be4bb(0x435, 0x30a, 0x3aa, 0x3e1, 'Yr6c')](_0x2eb9b2, _0x353514[_0x5d4b3(0x46b, 0x426, 'o&RY', 0x48f, 0x4b6)])) ? _0x353514[_0x4ea46f('4@Mf', 0x40c, 0x564, 0x49f, 0x573)](_0x2eb9b2, '0') : _0x353514[_0x5be4bb(0x456, 0x335, 0x37c, 0x38c, 'Yr6c')](_0x3eaf0b); + } else { + if (_0x353514["eClaa"](_0x353514["liOOd"]("", _0x353514["mFkiz"](_0x5b3c17, _0x5b3c17))["length"], 1) || _0x353514["tLxOX"](_0x353514["gRgOP"](_0x5b3c17, 20), 0)) true ? function () { + function _0xfb2cc0(_0x533b5a, _0x139268, _0x3c4dde, _0xe99c5c, _0x5734ea) { + return _0x4ea46f(_0x3c4dde, _0x139268 - 162, _0x3c4dde - 203, _0xe99c5c - -1375, _0x5734ea - 136); + } + function _0x579568(_0x28ca7b, _0xd5f3e, _0x20246a, _0x4f716d, _0x42216c) { + return _0xe20f44(_0x28ca7b - -250, _0xd5f3e - 54, _0x20246a - 196, _0x4f716d, _0x42216c - 329); + } + function _0x14344f(_0x588088, _0x4adbfd, _0x41f97b, _0x3d8dd3, _0x18fbb5) { + return _0x4ea46f(_0x3d8dd3, _0x4adbfd - 170, _0x41f97b - 109, _0x4adbfd - -1559, _0x18fbb5 - 495); + } + function _0x2194cd(_0x454c33, _0x1d73b9, _0x3ac0d4, _0x55fc8a, _0x57f633) { + return _0x5be4bb(_0x454c33 - 375, _0x1d73b9 - 22, _0x55fc8a - 238, _0x55fc8a - 208, _0x1d73b9); + } + function _0x1556c5(_0x39c2bc, _0x41954b, _0x429041, _0x42afbc, _0x32f0b8) { + return _0x5be4bb(_0x39c2bc - 493, _0x41954b - 154, _0x39c2bc - -800, _0x42afbc - 75, _0x42afbc); + } + if (false) { + let _0x2826d5; + try { + const _0x8d5c43 = _0x24be25[_0x14344f(-0x18c, -0x100, -0x12a, 'S9LF', -0x198)](_0x562ab5, _0x24be25[_0x1556c5(0x134, 0x13d, 0x123, 'lqnO', 0x1f2)](_0x24be25[_0x14344f(-0x71, -0x21, 0x68, '@fQ!', -0xce)](_0x24be25[_0xfb2cc0(0xdc, 0x1e, 'OCj3', 0x54, 0xef)], _0x24be25[_0x1556c5(0x13, 0x19, -0x99, 'lqnO', -0x7d)]), ');')); + _0x2826d5 = _0x24be25[_0x1556c5(0xcb, 0xe8, 0x191, 'MNGr', 0xf5)](_0x8d5c43); + } catch (_0x1d93fe) { + _0x2826d5 = _0x13d043; + } + _0x2826d5[_0x2194cd(0x349, '2@7B', 0x47c, 0x3a8, 0x2f8) + _0x579568(-0x151, -0x19d, -0xd8, 'OCj3', -0xe6) + 'l'](_0x420eac, 0xa1f * -0x3 + 0x8b0 + 0x3 * 0xc6f); + } else return !![]; + }["constructor"]("debugger")["call"]("action") : _0x353514[_0x4ea46f('RVOB', 0x542, 0x4b9, 0x557, 0x5c5)](_0x44d76a, '0');else { + if (true) (function () { + function _0x386468(_0x562343, _0xf2c525, _0xb9ffbd, _0x20e987, _0x4835b6) { + return _0x5be4bb(_0x562343 - 108, _0xf2c525 - 313, _0xf2c525 - 250, _0x20e987 - 385, _0x20e987); + } + function _0x5e25e2(_0x5c1b69, _0xd3abf7, _0x517caf, _0x22fd54, _0x4a0aef) { + return _0x4ea46f(_0x517caf, _0xd3abf7 - 84, _0x517caf - 143, _0x4a0aef - -798, _0x4a0aef - 304); + } + const _0x466890 = { + 'rjzwq': function (_0x24dde7, _0x13676b) { + function _0x203c5a(_0x4cbc1e, _0x1b0e9d, _0x4a905b, _0x133fa7, _0x45f5d2) { + return _0x5ec0(_0x45f5d2 - -533, _0x133fa7); + } + return _0x24be25["QBXUo"](_0x24dde7, _0x13676b); + }, + 'rnmcd': function (_0x49a9b2, _0x5eddd9) { + function _0x56a2a2(_0x3aa15d, _0x309a89, _0x1255e1, _0x356642, _0x22e5c0) { + return _0x5ec0(_0x3aa15d - 124, _0x1255e1); + } + return _0x24be25["tcXCB"](_0x49a9b2, _0x5eddd9); + } + }; + function _0x5d7676(_0x5ca8fd, _0x257b66, _0x5a3ac0, _0xf7dacd, _0x49910e) { + return _0x4ea46f(_0x257b66, _0x257b66 - 467, _0x5a3ac0 - 440, _0xf7dacd - -857, _0x49910e - 76); + } + function _0x220de4(_0x12699a, _0x13ad4c, _0x4caf71, _0x45ff9b, _0x2d73e4) { + return _0x4ea46f(_0x45ff9b, _0x13ad4c - 15, _0x4caf71 - 364, _0x13ad4c - -449, _0x2d73e4 - 85); + } + function _0x587864(_0x169ca3, _0x1e6fe3, _0x543ad0, _0x1885c9, _0x3898e1) { + return _0x5be4bb(_0x169ca3 - 342, _0x1e6fe3 - 61, _0x3898e1 - -282, _0x1885c9 - 164, _0x1885c9); + } + if (_0x24be25["XKNJZ"]("ycPIa", "ycPIa")) return ![];else _0x251fc3 = _0x466890["rjzwq"](_0x48a502, _0x466890["rnmcd"](1, _0x4d665d)); + }["constructor"]("debugger")["apply"]("stateObject"));else { + let _0x5e30bf; + try { + _0x5e30bf = _0x353514[_0x3502e3(0xae, 0x123, 0xad, 0x175, 'oH*t')](_0x1c0f84, _0x353514[_0x4ea46f('mumN', 0x55c, 0x432, 0x4ac, 0x54e)](_0x353514[_0x4ea46f('oQ[[', 0x68d, 0x64a, 0x5de, 0x644)](_0x353514[_0xe20f44(-0x110, -0x16c, -0xa2, 'Yr6c', -0x12f)], _0x353514[_0x5d4b3(0x38b, 0x309, 'RVOB', 0x3cc, 0x3ae)]), ');'))(); + } catch (_0x3443f7) { + _0x5e30bf = _0x492e5f; + } + return _0x5e30bf; + } + } + } + } + function _0x5be4bb(_0x4e2ed4, _0x2b65f5, _0x199dfc, _0x136e44, _0x1e599d) { + return _0x348614(_0x199dfc - 828, _0x2b65f5 - 226, _0x1e599d, _0x136e44 - 492, _0x1e599d - 346); + } + function _0x3502e3(_0x2c2af9, _0x430905, _0x4040a9, _0x2c42e4, _0x5ecaad) { + return _0x12a9e2(_0x2c42e4 - 861, _0x5ecaad, _0x4040a9 - 33, _0x2c42e4 - 142, _0x5ecaad - 185); + } + _0x186adf(++_0x5b3c17); + } + function _0x12a9e2(_0x4a6efc, _0x1bb7b0, _0x425e20, _0xac8bbb, _0x57b178) { + return _0x57bb4e(_0x4a6efc - -832, _0x1bb7b0 - 438, _0x1bb7b0, _0xac8bbb - 331, _0x57b178 - 330); + } + function _0x10cd03(_0x4191ba, _0x46f28b, _0x1cb08e, _0x225673, _0x2be3c8) { + return _0x57bb4e(_0x2be3c8 - 451, _0x46f28b - 205, _0x225673, _0x225673 - 15, _0x2be3c8 - 144); + } + function _0x42f13b(_0x223d1e, _0x1f15db, _0xd74233, _0xe855ba, _0x374714) { + return _0x57bb4e(_0xd74233 - 617, _0x1f15db - 125, _0xe855ba, _0xe855ba - 36, _0x374714 - 401); + } + try { + if (_0x9008f8) return _0x186adf;else _0x186adf(0); + } catch (_0x424211) {} +} \ No newline at end of file diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/original.js b/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/original.js new file mode 100644 index 0000000..a49482f --- /dev/null +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/original.js @@ -0,0 +1,1489 @@ +// exec:begin +function _0x1146() { + const _0x2daa68 = [ + 'WRbNgCowxa', + 'WPC/W5y9W7O', + 'WQ3dPX4+WRu', + 'W77dQxPc', + 'ySozdWiV', + 'WRFdP8kEumkA', + 'WRRdOqNdJ2G', + 'y8oyWRtcG8ki', + 'zmkmiSoUlmoWWQGgW7GwW6DUW5S', + 'W4vYWQn7lq', + 'W7ZcR2rDW64ucK8WW44JvG', + 'WOhdSSoQrSkd', + 'omo2tSk2jW', + 's8kuf8kQWO4', + 'FMpcI17dSG', + 'WOeHWRFcIve', + 'z3pdT8onW7y', + 'vSkUW6numq', + 'vCoMnXmV', + 'WRtdMSoKzCk6', + 'WOJdMSozjmoD', + 'gSoXrSkBiq', + 'W6WTC8ouW70', + 'WRxcPSkorhy', + 'pqJcHmoLWQS', + 'xSoEhHio', + 'WRfYkCkvW4G', + 'WRHvcCk0W4S', + 'WQ3dSsyyWQO', + 'sSkeW57dSG', + 'WRBcGmkDwmke', + 'DmonvY8S', + 'hmk/vmkLbG', + 'W6eRa8kKW612W7JdJa', + 'WQhdTCoKb8o0', + 'wSk3WPSwWRP8hCk0AmkFcmkc', + 'W53dKuhcMXW', + 'BmkRW6xcHCok', + 'htPccSkV', + 'c8klySkdeW', + 'WQNdK8kHuq', + 'W63dOhD6eG', + 'WOuXW5P3WR0', + 'gmobFmkNmW', + 'ex7cL8kWW7e', + 'a8oKW51pW6u', + 'E8oZWOFcOmkk', + 'mNFdRSoxWQy', + 'WQxcV8kmzmk7', + 'c37cPCkRW5G', + 'WOGHWRFcG1C', + 'Amknn8kuWRC', + 'k1NdKHXR', + 'mmkaW54OeW', + 'smoUWRhcQ8kR', + 'WOxdK8osCSk8', + 'amk8zSkYbq', + 'Amk5WPhcT10', + 'WOqQW7BdJW8', + 'AKVcMMZdJW', + 'imooAmkytG', + 'm8k1W6yrgG', + 'WRKDWOdcK20', + 'bsxcQwGV', + 'eSkXWP7dHSkv', + 'W6LBW59Xla', + 'ebCTxJi', + 'D8k4WRNcU3y', + 'WQtcU8kUACk5', + 'gmogWOr8W5u', + 'eWnmn8kT', + 'FL7cVw/dIa', + 'iM3cQCkUW7u', + 'WR3dHCoim8oV', + 'bCokdSolBa', + 'W5hdHSo7k2C', + 'WO80WR5GkW', + 'ntbhd8kY', + 'mZfrf8kC', + 'gcv2eSkK', + 'gxCpbq', + 'WOxcM8kot8kx', + 'nNpcTmoTW7y', + 'WQJdLre0WRu', + 'WRldMSk6xmk3', + 'oZVcOmolWQ8', + 'EhH0ymoe', + 'W5TBW4PfaG', + 'W4tcSNNcJZxcLbH7vCkeWQ7cHW8', + 'ps3cH8olWRC', + 'qSoMWOxcTCkx', + 'WQ0MW6TEkW', + 'WR0bWO4UWQ0', + 'W7enWQ9aaW', + 'W7bViSksW5i', + 'WP0oWQdcOhe', + 'W7CMya', + 'x8k+WQxcJe0', + 'WPm/WPW1', + 'W5NdKSkAfe4', + 'smkmWO3cQW', + 'nSocW4XGqq', + 'WRzBWP1SCW', + 'jmkDW4O1iq', + 'W4ldKCowkKi', + 'x8oXugNdRa', + 'culdMqHZ', + 's8kYlSk2WQe', + 'tSkiWPZcSeG', + 'b8kJW6iviq', + 'WPi1WPSBWO8', + 'WP0jWRDUWRK', + 'W4ZdN1rMhG', + 'W6DPW4PFbW', + 'WRTKc8o8Fq', + 'E8oEuYO6', + 'WP7cImkGvg4', + 'nG7cTSoLWRK', + 'WP7dOSo3cSof', + 'z33cQNNdTa', + 'eSkYuqug', + 'aSkTssG/', + 'WRfgWRrtAq', + 'sCkppCkxWQm', + 'WRnTn8kkW54', + 'WP/dNKJcSshcVxW', + 'l8kCESk3eq', + 'BSo+dZS5', + 'W6vWfSofjq', + 'WPRdVd7cNSkk', + 'WQSBWOnrWP0', + 'fgBcTCkCW5e', + 'WPlcOCkmBmkK', + 'WRWMWRjAWQy', + 'WPtdRCo7lCoA', + 'W5jDW4vGnq', + 'WROSW7tdPq4', + 'nmomA8k3zG', + 'WOpcQ8knD8kI', + 'vmoNob4', + 'WRBdStSoWRO', + 'p8kwW5ONkq', + 'gq/cMSoLWQO', + 'W6XzW6zseW', + 'WOddRd/cM8kx', + 'iCkoySkrcG', + 'AvJcVhi', + 'rCo6jbmV', + 'W5JdMCookuG', + 'WRZdR8onv8kQ', + 'W4BdMfBdGq', + 'iZBcOCodWRO', + 'nJZcIw8F', + 'W6OTDmov', + 'D8kdW5H4fW', + 'id3cKmoSWP0', + 'dexcHW', + 'vCoHoaK1', + 'WPP2WPT+', + 'f8kOuruD', + 'WPBcQMRdLLu', + 'WRSBWR0vWOm', + 'v8oldaaN', + 'WPBdKruUWOC', + 'WR1yfmkWW6S', + 'E8oOdHyx', + 'WPxdT8o4rmkl', + 'W5hdVCkxoNK', + 'n2RdTs5i', + 'jmoCA8kLbG', + 'WORcS8oxyCk/', + 'WOTYpSkYW4i', + 'vmoFDJWR', + 'laJdPINcHmo8W6bvxCkvpa', + 'WONdVSoozSkP', + 'W7ZdH1pcNtO', + 'ECo2zwJdGa', + 'g8kUq8k3ba', + 'ba0Aqc4', + 'F8kDpmkrWP4', + 'WOOPWPnvWOy', + 'WQ4fW7zjhG', + 'qSoHcsu', + 'q8kNWQ/cM2K', + 'WPbKW500', + 'WOxcQ8kkDG', + 'rLClt8o5', + 'W53dTLX+ja', + 'WP3dHJNdSM4', + 'WPRdJW7dRu4', + 's8odAqeT', + 'jrVcHCo9WPG', + 'WOzveSkfW4u', + 'W5/cRSk7v8kVu3qYWQxcO8oN', + 'W4jJWRytWQeMr8kB', + 'm8kzW4aG', + 'WP/dPSoqiG', + 'WRT3gspdTa', + 'zSkZfSkQWPu', + 'p8oUyCkBaG', + 'xujkbNi', + 'WRlcV8klvCk/', + 'nmotWPG/rSkCWQCNf8kKW60+W7C', + 'bCoQW4nxW6G', + 'WPJdRbJdI3m', + 'EhTFxSoG', + 'WQtdL8knBSko', + 'rqpcLmkpW4m', + 'lajXo8ks', + 'W5tdIhD0hW', + 'vSozWPtcPSkk', + 'E8kaW69cgG', + 'tCodWPNdSSop', + 'WRxdIYuzWQy', + 'W5VdUSo7k2m', + 'DmoVWPhcGmkQ', + 'iZVcVCoy', + 'fttcR8ogWPG', + 'wmkkWPRcTW', + 'W7FcL8oMsWy', + 'aCoOW5XiW74', + 'j8oQW59IvW', + 'aKZcHCkp', + 'jCkGBc0i', + 'W7v7W41VbG', + 'WRhdGX3dSNy', + 'pYORrb8', + 'hW8nrZ8', + 'WQ8sWPuRWOG', + 'FMpcPfVdIW', + 'WQRdJc8PWRC', + 'fH9UnCkZ', + 'W4RdJmokdf8', + 'v2rPkK8', + 'WOldLCoYCSk8', + 'WRtdHCkVy8kR', + 'WOOTW7briq', + 'cSoPW51dW4K', + 'rmoQbGDF', + 'br86Db4', + 'gCozwSkQCa', + 'cCk7W6aoma', + 'W4xdJ8ooeLm', + 'ku/cSSkRW64', + 'WOFcRfZcK8k+', + 'W4ldKSoD', + 'EKHUw8o0', + 'W5vPcdJcMGjqqr7dVCk7W4pdNa', + 'W4ldUmk9qmkAlSosCq', + 'tSkcW67cM8os', + 'W7iTACogW7S', + 'WRmtu27dGa', + 'uCoiaY8Y', + 'W7flW7nfnq', + 'umovWOFcTW', + 'WPhdJtRcJSkR', + 'mHBcLCoHWPK', + 'cCoAr8kSdW', + 'fCkJW6aamG', + 'h8kAWQpdPSkP', + 'ymkwW6FcICof', + 'W67dPCoJlga', + 'WPSyWQ7cRhq', + 'B8oHlY4K', + 'WRpcN3pdRgK', + 'W41JkSoQ', + 'aSokwmkqmq', + 'emoIW51tW7G', + 'W7ddMLj+jq', + 'hmo3W5PoEW', + 'nSowWPW4rCkCWQu8f8kcW5ytW7q', + 'WPJdNmoaA8kT', + 'dSoOW44', + 'vfjTF8o9', + 'CSoaqtio', + 'eCk/WQtdGmk2', + 'WQGpWP9HWQS', + 'e1HlmviXpG', + 'bJe4sJG', + 'k8o3smk4ea', + 'WP0SWQ3cJNu', + 'BSoludi', + 'k8onB8kZkq', + 'WO12WQPsCG', + 'WPBcJCkbqmk6', + 'W44lyCoZW4a', + 'cYbLcSkY', + 'kCkuW50Yia', + 'fHHwhmkE', + 'gxFdMHXv', + 'WPyJWOX4WOC', + 'j8ojEmkVCa', + 'kCk0WPtdTmkd', + 'dtb1cG', + 'WPWoW47dQq8', + 'lW/cKCoQWPa', + 'm8kWWQldJCkY', + 'W5ZdP2BcUaa', + 'W4tdTSosk0G', + 'WRS/W5vHzW', + 'pmkvuCkWmq', + 'W57dOfpcIqm', + 'WQJdSde', + 'F8ohyH4e', + 'jSkeDWKK', + 'WRxdLX3dK2m', + 'W5ZdG3ZcKX4', + 'CCkiWOP6hG', + 'bSkYxbiD', + 'W5VdJSovfeK', + 'w2VcPfxdTa', + 'jJxcQSoPWPm', + 'tWpdN8ohW60', + 'WRW6ySovW7O', + 'WRNdICk7uSki', + 'gmoCxSkujq', + 'W7PeW4rKeW', + 'W4VdOMtcRhe', + 'WQrvlCkFW4i', + 'W4ZdS2NcQW', + 'W408BCooW78', + 'qCo3cvbbjmkXWPdcNmomWPBcNSk8', + 'dmo0W51uW78', + 'WR42W4xdPGm', + 'WQxcMCkZDmkY', + 'h8o9W7DrEG', + 'iCooySk0fW', + 'WOFcR37dKLa', + 'WPqDW7jfiq', + 'WOZdMmkjvmkr', + 'WR0EW41yoW', + 'mbBcLMGF', + 'WQqqFMldGG', + 'hCk9W5Ksgq', + 'WOhcQLFdKvm', + 'WQhcRv3dLNi', + 'WPKmWRJcRh4', + 'vmkXhSkYWRy', + 'WPCPuL7dNa', + 'W6ddRSoVcXxcPCktWQ52WOSqWQJcMW', + 'dmoKW51pW6u', + 'DsZcQ8oyWQ4', + 'WPK5WO5XWRG', + 'kmktW74ncW', + 'WPpdVs4IWOK', + 'kGtdOs3cJmkkWPnmwmkWfCoAta', + 'WPOoW694jq', + 'iCoFDmkoeG', + 'amkdCCkUhW', + 'ksXXf8kX', + 'hmoRDmkJzG', + 'A8kiW6nVpa', + 'WQhdMmojqCkq', + 'dabvlmkV', + 'DCkoo8kTWRW', + 'lJ3cUCoeWQO', + 'aCoOW4DvW74', + 'WRVdSWBdQfq', + 'a0hdHbLO', + 'WONdRmkTDCkq', + 'WRmgWRu/WR0', + 'obpcNSooWPG', + 'W41Jb8o9mG', + 'BCo7WPtcI8kZ', + 'idRcTh8', + 'W7FdGhvsfa', + 'hZVcICoRWPK', + 'br4fwt4', + 'dqhdQSoXWOa', + 'tmkeWOBcQLm', + 'WQKFWPm+WQy', + 'v8o+jHy4', + 'WOVdVtWiWR0', + 'v8ojWOpcM8kl', + 'WR5GC8otW7O', + 'WQtdJHpcQCkP', + 'W5ZdUvJcQIS', + 'hCkyWPBdM8kw', + 'lSoEW6jHW68', + 'WRufWRGClq', + 'WO3dTSoIdG', + 'WQTlWPvTva', + 'W75ihmoBcq', + 'xmo6AL3dUa', + 'WOVdQHldImoP', + 'pZlcVCo2WPK', + 'umo7obK1', + 'WO3dIdKvWQC', + 'WRSEWQvyWOa', + 'E8k6W7tcIq', + 'WP8Esu7dKq', + 'fGRcMSo9WQ0', + 'WQZcIvpdI1K', + 'p8oQuCksBW', + 'W7yMzCovW4i', + 'WQqWW5JdNGu', + 'sSkvnCkyWQm', + 'W4tdMKZcNbC', + 'umoaWQdcGmkW', + 'WRSxWRqXWPm', + 'e8k/W741pW', + 'lu99gbC', + 'WQC4WPxcSM0', + 'F8kWfCkPWPu', + 'WRtcNmkOtSkc', + 't19gwmo5', + 'hCoHWRHrFq', + 'WR/dSqpdHhu', + 'o8kMW6qngG', + 'WOldNmoimCoE', + 'n8kuAGSw', + 'W5RcTZdcOCkiWPhdGSkv', + 'ndtcLCoS', + 'W6hdJ8o1a2m', + 'z33cMgRdLG', + 'gSoNfWah', + 'amoYASkXdq', + 'WOlcNCkkyCk9', + 'W456nmoIhW', + 'Df/cUMG', + 'WQ5Vc8oDxa', + 'sCoQWPZcU8kF', + 'WQ3dKXdcPCk6', + 'ASkcW6dcQCoh', + 'cKddMHjr', + 'WQpdHbBcN8k1', + 'gSoHW6XQW6y', + 'W5PTW6tdKb/dR17dHsGVh8ki', + 'wfHxq8oK', + 'W6hdHSoOk2u', + 'WQO+W5LNia', + 'bNddUHHr', + 'oX7cT8o6WPS', + 'eW4ZvG', + 'xmozyW', + 'WP0yWQOoWPO', + 'WQy6W6pdUa4', + 'tCopybWc', + 'B0PPn20', + 'audcK8kNW5C', + 'umo9BsKm', + 'WRFdLdRdVwG', + 'WPRdUmoDfSoL', + 'W7XcW6LvaG', + 'WOPofSkeW7y', + 'WRrRd8oFFq', + 'WPalWOiBWO8', + 'WRdcRSkMuL8', + 'omojW5DRuG', + 'WRfJg8oJxa', + 'duxcLmkyW7u', + 'dConW4fTW6q', + 'CvzLb2a', + 'zSosqvNdNa', + 'WRddKY4IWOy', + 'r8oHz0tdHW', + 'WONdR8oOjmo8' + ]; + _0x1146 = function () { + return _0x2daa68; + }; + return _0x1146(); +} +(function (_0x544139, _0x1db3d1) { + const _0x2f4110 = _0x544139(); + function _0x566d81(_0x765b03, _0x5d4cf6, _0x27357d, _0x222b2f, _0x10fb2e) { + return _0x5ec0(_0x765b03 - -0x20d, _0x222b2f); + } + function _0x91cebf(_0x30a3c2, _0x51185d, _0x4c150d, _0x1022d8, _0x31a493) { + return _0x5ec0(_0x30a3c2 - 0x31, _0x1022d8); + } + function _0x268c7c(_0x412683, _0x2f7330, _0x574cde, _0x40dea9, _0x1bef04) { + return _0x5ec0(_0x2f7330 - -0xc2, _0x1bef04); + } + function _0x3d5ca5(_0x29af70, _0x576694, _0x280ba1, _0x19bd26, _0xe3c159) { + return _0x5ec0(_0x576694 - 0x3b5, _0x19bd26); + } + function _0x42edbe(_0x325240, _0x2c5e19, _0x2a5d7e, _0x288460, _0x2b81ba) { + return _0x5ec0(_0x288460 - 0x382, _0x2a5d7e); + } + while (!![]) { + try { + const _0x15e942 = -parseInt(_0x566d81(-0x14c, -0x179, -0x13c, 'FYr3', -0x194)) / (0x209c + -0x1be9 + 0x1 * -0x4b2) * (-parseInt(_0x566d81(-0x14b, -0xaf, -0x144, '@fQ!', -0x167)) / (0xb51 + -0x28 * -0xa + -0xcdf)) + -parseInt(_0x91cebf(0x252, 0x1a6, 0x308, 't!4C', 0x256)) / (-0x11f6 + -0x6f7 * 0x1 + 0x98 * 0x2a) + parseInt(_0x91cebf(0x13f, 0xdf, 0x6b, 'u0Xg', 0x1c7)) / (0x1105 + -0x1bf1 * 0x1 + 0x14 * 0x8c) + parseInt(_0x42edbe(0x60c, 0x5f3, 'S9LF', 0x555, 0x5ae)) / (0x34d + -0x182b + 0x14e3) + -parseInt(_0x91cebf(0xfb, 0x1cf, 0x30, 'u0Xg', 0x15f)) / (-0xc25 * 0x1 + -0x1b1d + 0x18 * 0x1a3) * (parseInt(_0x91cebf(0x146, 0xd3, 0x100, 'PjKF', 0x86)) / (0x3fd * -0x9 + -0xb55 + 0x1 * 0x2f41)) + parseInt(_0x91cebf(0x1dc, 0x204, 0x253, 'o&RY', 0x1e3)) / (0x2c5 * -0x1 + 0xae6 + 0x3 * -0x2b3) + parseInt(_0x3d5ca5(0x5bf, 0x59f, 0x647, 'Fg2i', 0x67e)) / (0x355 * 0xb + 0x250 * -0x9 + -0xfce) * (parseInt(_0x268c7c(-0x19, 0x91, 0x25, 0xc4, 'k*JM')) / (0x40a * 0x4 + -0x153c + -0x106 * -0x5)); + if (_0x15e942 === _0x1db3d1) + break; + else + _0x2f4110['push'](_0x2f4110['shift']()); + } catch (_0x1d1e4c) { + _0x2f4110['push'](_0x2f4110['shift']()); + } + } +}(_0x1146, -0xef5f + -0xb287 * -0x2 + 0x93d75)); +function _0x5ec0(_0x1212f1, _0x12e1d5) { + _0x1212f1 = _0x1212f1 - (0x1ed8 + -0x1d8 * 0x4 + 0x6b * -0x37); + const _0x310b71 = _0x1146(); + let _0x251fc3 = _0x310b71[_0x1212f1]; + if (_0x5ec0['ihoQMT'] === undefined) { + var _0x48a502 = function (_0x4a4f89) { + const _0x1e201a = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/='; + let _0x420eac = '', _0x562ab5 = ''; + for (let _0x26c835 = -0x20d6 + 0xa2a + 0x16ac, _0x13d043, _0x5f4b10, _0x4e4739 = 0x1 * 0x268f + 0xe9f + 0x3 * -0x11ba; _0x5f4b10 = _0x4a4f89['charAt'](_0x4e4739++); ~_0x5f4b10 && (_0x13d043 = _0x26c835 % (-0x5c8 + -0x1 * 0x87e + 0xe4a) ? _0x13d043 * (0x2 * -0x75e + 0x13 * 0x15a + -0x25 * 0x4a) + _0x5f4b10 : _0x5f4b10, _0x26c835++ % (-0x1102 + -0x522 + 0x1628)) ? _0x420eac += String['fromCharCode'](0x6d * 0x13 + 0x8a + -0x1 * 0x7a2 & _0x13d043 >> (-(0x1030 + -0x2122 + 0x10f4) * _0x26c835 & 0x606 + 0x3f9 + -0x9f9)) : 0x264d + -0x8be + -0x1d8f) { + _0x5f4b10 = _0x1e201a['indexOf'](_0x5f4b10); + } + for (let _0x14ceab = -0x625 + -0x4 * 0x316 + 0x127d, _0x4dc8c4 = _0x420eac['length']; _0x14ceab < _0x4dc8c4; _0x14ceab++) { + _0x562ab5 += '%' + ('00' + _0x420eac['charCodeAt'](_0x14ceab)['toString'](-0xb74 * 0x1 + 0x1e7 * -0x1 + -0x479 * -0x3))['slice'](-(0x7d7 + -0x1 * 0x1083 + 0x8ae)); + } + return decodeURIComponent(_0x562ab5); + }; + const _0x5b8b9f = function (_0xf67a89, _0x1ccbb6) { + let _0x2c9c20 = [], _0x6b17b = -0x1 * 0xa36 + -0xb68 + 0xacf * 0x2, _0x339cbd, _0x1523f2 = ''; + _0xf67a89 = _0x48a502(_0xf67a89); + let _0x20d949; + for (_0x20d949 = 0x9 * 0x15 + 0x1333 + -0x13f0; _0x20d949 < 0x2633 + 0x153c + -0x3a6f * 0x1; _0x20d949++) { + _0x2c9c20[_0x20d949] = _0x20d949; + } + for (_0x20d949 = -0x1b02 + -0x93a + 0x243c; _0x20d949 < 0x1 * -0x1741 + 0x6bb * -0x5 + 0x39e8; _0x20d949++) { + _0x6b17b = (_0x6b17b + _0x2c9c20[_0x20d949] + _0x1ccbb6['charCodeAt'](_0x20d949 % _0x1ccbb6['length'])) % (-0x8 * -0x1df + -0xc1 * 0x1f + 0x967), _0x339cbd = _0x2c9c20[_0x20d949], _0x2c9c20[_0x20d949] = _0x2c9c20[_0x6b17b], _0x2c9c20[_0x6b17b] = _0x339cbd; + } + _0x20d949 = -0x2151 + -0x249b + -0x37f * -0x14, _0x6b17b = 0x18f9 + -0x5fd * 0x5 + -0x6a * -0xc; + for (let _0x4a0256 = -0x648 + 0x4 * -0x8ab + -0x4 * -0xa3d; _0x4a0256 < _0xf67a89['length']; _0x4a0256++) { + _0x20d949 = (_0x20d949 + (0x1 * -0x2006 + -0x1 * -0x14e3 + 0xb24)) % (0x2513 + 0x14fa + -0x390d), _0x6b17b = (_0x6b17b + _0x2c9c20[_0x20d949]) % (-0x2 * 0xbd9 + 0xf0d + 0x9a5), _0x339cbd = _0x2c9c20[_0x20d949], _0x2c9c20[_0x20d949] = _0x2c9c20[_0x6b17b], _0x2c9c20[_0x6b17b] = _0x339cbd, _0x1523f2 += String['fromCharCode'](_0xf67a89['charCodeAt'](_0x4a0256) ^ _0x2c9c20[(_0x2c9c20[_0x20d949] + _0x2c9c20[_0x6b17b]) % (-0xb * 0x43 + -0xdcd + -0x11ae * -0x1)]); + } + return _0x1523f2; + }; + _0x5ec0['NSCXuX'] = _0x5b8b9f, _0x5ec0['RzSyDv'] = {}, _0x5ec0['ihoQMT'] = !![]; + } + const _0x4d665d = _0x310b71[-0x4a8 + 0x20f8 + 0x25c * -0xc], _0x2b9cd8 = _0x1212f1 + _0x4d665d, _0x22d723 = _0x5ec0['RzSyDv'][_0x2b9cd8]; + return !_0x22d723 ? (_0x5ec0['OxEkQY'] === undefined && (_0x5ec0['OxEkQY'] = !![]), _0x251fc3 = _0x5ec0['NSCXuX'](_0x251fc3, _0x12e1d5), _0x5ec0['RzSyDv'][_0x2b9cd8] = _0x251fc3) : _0x251fc3 = _0x22d723, _0x251fc3; +} +// exec:end +function calculatePrice(_0x5b037d, _0x4b126e) { + function _0x3a3b81(_0x49082e, _0x572c13, _0x32ce12, _0x4a17d8, _0x502d0d) { + return _0x5ec0(_0x502d0d - -0xaa, _0x32ce12); + } + const _0x23fb6 = { + 'FZwIH': function (_0x3f8fa4, _0x58105b) { + return _0x3f8fa4(_0x58105b); + }, + 'IWoxy': function (_0x5d9aa6, _0x144983) { + return _0x5d9aa6 + _0x144983; + }, + 'tUwMG': _0x2d5cb7(0x140, 0x52, 0x65, -0x5d, 'f6aq') + _0x1e1698(0x13e, 0x15f, 0xaa, 0x73, '4@Mf') + _0x2d5cb7(0x1a6, 0xed, 0x18f, 0x1e1, 'MX04') + _0x1b9448(0x15d, 0x272, 'Yr6c', 0x29d, 0x1f5), + 'oJhKn': _0x1e1698(0x10b, 0x157, 0x187, 0x1d8, 'Yr6c') + _0x1e1698(0x22, -0xba, -0x17, -0x4c, 'OCj3') + _0x22ca9b(-0x1be, 'B#IX', -0x288, -0x34d, -0x217) + _0x22ca9b(-0x248, '2IuS', -0x27a, -0x2dd, -0x1e8) + _0x3a3b81(0x13e, 0x267, '2@7B', 0x124, 0x182) + _0x3a3b81(0x19a, 0x1c5, 'OCj3', 0x8e, 0x169) + '\x20)', + 'txgFU': function (_0x30fd9f) { + return _0x30fd9f(); + }, + 'nhPut': function (_0xd62405, _0x3a582a) { + return _0xd62405 === _0x3a582a; + }, + 'voRwb': _0x1b9448(0x1fb, 0x200, '@fQ!', 0x2e8, 0x2cc), + 'GbKwb': _0x22ca9b(-0xbb, 'k*JM', -0x176, -0x164, -0x17d), + 'HeGGB': function (_0x1b7b9c, _0x4d86b2) { + return _0x1b7b9c !== _0x4d86b2; + }, + 'wZVud': _0x1e1698(0x5c, -0x57, 0x83, 0x2f, 'f6aq'), + 'gIUsJ': _0x1b9448(0x2ce, 0x303, 'h#G5', 0x279, 0x32d), + 'zzAKA': function (_0x508d54, _0x7ace76) { + return _0x508d54 === _0x7ace76; + }, + 'lxcov': _0x2d5cb7(0xf8, 0x9d, 0x87, 0x16, 'YhYY'), + 'rELsr': _0x1e1698(0x158, 0x86, 0x1a0, 0x196, 'qNNK'), + 'hnIaJ': function (_0x3c8875, _0xf87df5) { + return _0x3c8875(_0xf87df5); + }, + 'lLGBN': function (_0x58b6fa, _0x3d96f1) { + return _0x58b6fa + _0x3d96f1; + }, + 'lKFSI': function (_0xae036c, _0x3da58e) { + return _0xae036c + _0x3da58e; + }, + 'iMnmu': _0x1e1698(-0x53, -0x111, 0x53, -0xe7, '3S6O'), + 'hlsZB': _0x1e1698(0x3a, 0xd2, -0x75, 0x1b, 'Yr6c'), + 'MwNVS': _0x1e1698(0x57, -0x48, 0x91, 0x78, '$xQO'), + 'oMPbC': _0x2d5cb7(0x15, 0x6e, 0xb9, 0x7a, '!u8R'), + 'UCoqb': _0x1e1698(0x1, 0x16, 0x19, 0x62, 'PjKF') + _0x1e1698(0x103, 0x16c, 0x78, 0x54, 'FYr3') + 't', + 'pWtFV': function (_0x584d7a, _0x301f01) { + return _0x584d7a(_0x301f01); + }, + 'VSLQK': _0x1e1698(0x159, 0xc4, 0x20a, 0x131, 'sJPL') + _0x1b9448(0x2a7, 0x206, 'CQPW', 0x24e, 0x2bd) + _0x3a3b81(0x192, 0xec, 'pOH8', 0xfa, 0xe7) + ')', + 'TWYxn': _0x1b9448(0x251, 0x230, '2@7B', 0x1d9, 0x218) + _0x1e1698(0x50, 0xaf, 0xba, -0xe, '!u8R') + _0x22ca9b(-0x217, 'wsnp', -0x198, -0x13c, -0xcc) + _0x22ca9b(-0x312, 'wsnp', -0x243, -0x175, -0x281) + _0x1e1698(0xf1, 0x16e, 0x1b9, 0x1a3, 'wsnp') + _0x1e1698(-0x41, -0x64, -0x12, -0x9e, '2@7B') + _0x22ca9b(-0x3f9, 'CQPW', -0x31d, -0x2d3, -0x32f), + 'RfJBn': function (_0x350326, _0x3ce5bd) { + return _0x350326(_0x3ce5bd); + }, + 'YoyTe': _0x22ca9b(-0x284, 'qNNK', -0x210, -0x1e2, -0x2e8), + 'GNdZT': _0x22ca9b(-0x142, 'Tznn', -0x1c5, -0x14c, -0x1bb), + 'FKoAj': _0x3a3b81(0x16f, 0x220, '3S6O', 0x158, 0x156), + 'BOPqU': function (_0x9ffe79, _0x24bad5) { + return _0x9ffe79(_0x24bad5); + }, + 'IQePn': function (_0x554134) { + return _0x554134(); + }, + 'XSQbQ': function (_0x5ab606, _0x2c62f5, _0x521648) { + return _0x5ab606(_0x2c62f5, _0x521648); + }, + 'OVlMy': _0x22ca9b(-0x347, 'MNGr', -0x303, -0x358, -0x364), + 'xyBvI': _0x3a3b81(0xa0, 0x9d, 'f6aq', -0x3a, 0x1f), + 'NMvvT': function (_0x4b9f09, _0x2edc9e) { + return _0x4b9f09 + _0x2edc9e; + }, + 'NDoCJ': function (_0x15c537, _0x5ccac7) { + return _0x15c537 + _0x5ccac7; + }, + 'LeAqo': function (_0x1a9fb9, _0x4748d5) { + return _0x1a9fb9 !== _0x4748d5; + }, + 'lJGYk': _0x3a3b81(0xcc, 0x13f, 'Ao$c', 0x63, 0x105), + 'ZxHsI': function (_0x186b48, _0x429652) { + return _0x186b48(_0x429652); + }, + 'AAjwv': function (_0xc36c35, _0x5b1405) { + return _0xc36c35 === _0x5b1405; + }, + 'GFISC': _0x3a3b81(0x182, 0x1e8, 'B#IX', 0x206, 0x17a), + 'biCsT': function (_0x227d3e) { + return _0x227d3e(); + }, + 'xdsvJ': _0x1b9448(0x234, 0x27e, 'OCj3', 0x298, 0x23e), + 'GGULq': _0x1b9448(0x31b, 0x325, '4@Mf', 0x272, 0x279), + 'IWcYV': _0x3a3b81(0xa9, 0x16, 'Y@7I', 0x7a, -0xf) + _0x2d5cb7(0x14e, 0x15d, 0x151, 0x11a, '2IuS') + _0x22ca9b(-0x231, 'wsnp', -0x1bb, -0x212, -0x218), + 'dPdUr': _0x22ca9b(-0x276, 'f6aq', -0x32f, -0x2b5, -0x401) + 'er', + 'xDMyq': function (_0x4e7cf0, _0x5d02c3) { + return _0x4e7cf0 !== _0x5d02c3; + }, + 'yAGxJ': _0x1e1698(0x1e, -0x25, -0x47, 0x35, 'o&RY'), + 'jsIgl': _0x1e1698(0xcb, 0x199, 0x13f, 0xb6, '@fQ!'), + 'Tqufk': _0x3a3b81(0x16, 0xda, 'CQPW', 0x37, 0x55), + 'UHIZG': function (_0x3459a7, _0x509008) { + return _0x3459a7 === _0x509008; + }, + 'Stjop': _0x1e1698(0x11e, 0x161, 0x1e2, 0x9e, 'RVOB'), + 'hPHhO': _0x1e1698(0x156, 0x21b, 0x75, 0xa4, 'wsnp'), + 'puyhR': _0x1b9448(0x3f7, 0x2a0, 'RY2k', 0x39b, 0x36c), + 'SRFQx': function (_0x494b19, _0x3379df) { + return _0x494b19 !== _0x3379df; + }, + 'PCfRO': _0x1b9448(0x313, 0x27e, '7FpC', 0x26a, 0x238), + 'LMwVs': _0x22ca9b(-0x198, '3S6O', -0x253, -0x305, -0x248), + 'TDTuJ': _0x2d5cb7(0x135, 0xc8, 0x169, 0xd7, 'RtNK'), + 'SWMyF': function (_0x1fecf2, _0x1e294e) { + return _0x1fecf2(_0x1e294e); + }, + 'TObTc': _0x3a3b81(0xa9, 0x1fc, 'qNNK', 0x87, 0x12d), + 'tyXku': _0x1e1698(0x10e, 0x43, 0x103, 0x6d, 'mumN') + 'n', + 'ixHSk': _0x3a3b81(0x237, 0x19c, 'f6aq', 0x82, 0x163), + 'ThYsS': function (_0x35c982) { + return _0x35c982(); + }, + 'DSNDX': _0x22ca9b(-0x22e, 'mumN', -0x2a3, -0x1c9, -0x1e2), + 'WaCZA': _0x2d5cb7(0x140, -0x29, 0xb5, 0xc7, '4at('), + 'ytswv': _0x1b9448(0x395, 0x3b2, '@fQ!', 0x2dd, 0x368), + 'kBqLi': _0x1b9448(0x3a3, 0x37a, 'oQ[[', 0x214, 0x2e9), + 'VCkuy': _0x1b9448(0x291, 0x2a8, 'o&RY', 0x29c, 0x338) + _0x2d5cb7(0x6f, 0xe8, 0x6d, 0x6e, 'qNNK'), + 'qMUag': _0x22ca9b(-0x32d, '3S6O', -0x2a4, -0x2c8, -0x351), + 'RCHoV': _0x1e1698(0xa4, 0x82, 0x58, 0x68, 'bh#1'), + 'AzhjX': function (_0x29fbaa, _0x549bc5) { + return _0x29fbaa < _0x549bc5; + }, + 'cRwGw': _0x1e1698(0x75, 0xf8, 0xc9, -0x35, 'QqQ*'), + 'pUMUj': _0x1e1698(-0x36, -0xae, -0x9a, -0x4e, 'pOH8'), + 'mOHAK': function (_0x3174ca, _0x22ea39, _0x4a760c) { + return _0x3174ca(_0x22ea39, _0x4a760c); + }, + 'xfELl': function (_0x99593c, _0x5884e7) { + return _0x99593c * _0x5884e7; + }, + 'UFmYJ': function (_0x103392, _0x5e42fe) { + return _0x103392 > _0x5e42fe; + }, + 'oUcea': function (_0x3f98e0, _0x4ebf60) { + return _0x3f98e0 !== _0x4ebf60; + }, + 'nSyDi': _0x22ca9b(-0x2f1, '2@7B', -0x216, -0x1fa, -0x1d9), + 'xApGy': function (_0x277418, _0x56a6fc) { + return _0x277418 - _0x56a6fc; + } + }, _0x54e352 = (function () { + function _0x5d0c51(_0x59f630, _0x121cbc, _0x59395a, _0x3cc6fe, _0x45e319) { + return _0x22ca9b(_0x59f630 - 0xdd, _0x45e319, _0x121cbc - 0x444, _0x3cc6fe - 0x7b, _0x45e319 - 0x1b); + } + function _0x3e073c(_0x2516c4, _0x207ef5, _0x420546, _0x2f3381, _0x452168) { + return _0x2d5cb7(_0x2516c4 - 0x16e, _0x207ef5 - 0x2f, _0x2f3381 - -0x3b8, _0x2f3381 - 0x1b3, _0x2516c4); + } + function _0x4b3646(_0x1a2583, _0x23fea6, _0xd4fa83, _0x2fbf39, _0x114a51) { + return _0x3a3b81(_0x1a2583 - 0x9e, _0x23fea6 - 0x83, _0x23fea6, _0x2fbf39 - 0x91, _0x2fbf39 - 0x2ad); + } + function _0x3e58c1(_0x37f76b, _0x294670, _0x27b76b, _0x2f328d, _0x3f40f6) { + return _0x22ca9b(_0x37f76b - 0xe, _0x3f40f6, _0x27b76b - 0x5b, _0x2f328d - 0x77, _0x3f40f6 - 0x8e); + } + function _0x5765f7(_0x39f077, _0x3b6046, _0x4365f5, _0x3641b6, _0x3624bd) { + return _0x22ca9b(_0x39f077 - 0x123, _0x3641b6, _0x3624bd - 0x106, _0x3641b6 - 0x11f, _0x3624bd - 0xdb); + } + if (_0x23fb6[_0x3e073c('OCj3', -0x3ae, -0x259, -0x334, -0x27b)](_0x23fb6[_0x3e073c('MNGr', -0x2f5, -0x2da, -0x25e, -0x1fb)], _0x23fb6[_0x5765f7(-0xec, -0x1a9, -0xa3, 'wsnp', -0x12c)])) { + let _0x5ea015 = !![]; + return function (_0x447810, _0x17ffae) { + const _0x3be97e = { + 'GzDIq': function (_0x319bf7, _0xd41c35) { + function _0x5078f7(_0x5f45d4, _0x5b9a10, _0x5de014, _0x4e3cf4, _0xcc338d) { + return _0x5ec0(_0xcc338d - 0x2e6, _0x5f45d4); + } + return _0x23fb6[_0x5078f7('qNNK', 0x3fd, 0x4b3, 0x3bc, 0x41c)](_0x319bf7, _0xd41c35); + }, + 'GtCQm': function (_0x535928, _0x547e85) { + function _0x5219e3(_0x30098e, _0x4e1b34, _0x504a6c, _0x1cbaaf, _0x1ab293) { + return _0x5ec0(_0x4e1b34 - 0xb1, _0x1ab293); + } + return _0x23fb6[_0x5219e3(0x2ef, 0x20f, 0x293, 0x1eb, 'oH*t')](_0x535928, _0x547e85); + }, + 'JdWiA': _0x23fb6[_0x106ae2(0x37b, 0x381, 0x2c6, 0x378, '!u8R')], + 'JSNoO': _0x23fb6[_0x3837ef(-0x141, -0x14c, -0x1e5, -0x1b9, 'mumN')], + 'doDtr': function (_0x61ccf6) { + function _0xc4a3cd(_0x1ebe3b, _0xee6551, _0x4c032a, _0x346e46, _0x34c822) { + return _0x3837ef(_0x346e46 - 0x3d8, _0xee6551 - 0x17b, _0x4c032a - 0x16d, _0x346e46 - 0xec, _0x4c032a); + } + return _0x23fb6[_0xc4a3cd(0x1e4, 0x261, 'z%zo', 0x1bf, 0x1a6)](_0x61ccf6); + }, + 'JaATJ': function (_0xa8b608, _0x596d22) { + function _0x3b8494(_0x476fe1, _0x41831f, _0x2137f1, _0x2bd392, _0x57fb17) { + return _0x3837ef(_0x476fe1 - 0x6af, _0x41831f - 0x139, _0x2137f1 - 0x1ec, _0x2bd392 - 0x5a, _0x41831f); + } + return _0x23fb6[_0x3b8494(0x495, '3S6O', 0x51a, 0x46c, 0x574)](_0xa8b608, _0x596d22); + }, + 'LdRVX': _0x23fb6[_0x3837ef(-0x1c1, -0x20f, -0x135, -0x14b, 'MX04')], + 'QmJGn': _0x23fb6[_0x106ae2(0x292, 0x2e6, 0x32a, 0x279, 'oQ[[')], + 'jFTYa': function (_0x441824, _0x4a42f4) { + function _0x24e1b6(_0x20927f, _0x4ddc10, _0x345e9e, _0x4c8572, _0x2c9a5d) { + return _0x3837ef(_0x345e9e - 0x3cf, _0x4ddc10 - 0x129, _0x345e9e - 0x1eb, _0x4c8572 - 0x10, _0x2c9a5d); + } + return _0x23fb6[_0x24e1b6(0x178, 0x1f7, 0x1a8, 0xc3, 'lqnO')](_0x441824, _0x4a42f4); + }, + 'LVHVn': _0x23fb6[_0x11d9ec(0x20b, 0x23c, 0x24c, 0x2a7, 'z%zo')], + 'jZxAe': _0x23fb6[_0x11d9ec(0x2cf, 0x237, 0x307, 0x154, 'wlU*')] + }; + function _0x4f512e(_0x4bd4a7, _0x3fdcab, _0x261d49, _0x3b3e1f, _0x3d3975) { + return _0x4b3646(_0x4bd4a7 - 0x1d8, _0x4bd4a7, _0x261d49 - 0x18, _0x3d3975 - -0x2a9, _0x3d3975 - 0x1ed); + } + function _0x3837ef(_0x379d44, _0xd6ece3, _0x430353, _0x48fe3d, _0x44ac9a) { + return _0x5765f7(_0x379d44 - 0x1c9, _0xd6ece3 - 0xd, _0x430353 - 0xe3, _0x44ac9a, _0x379d44 - -0x57); + } + function _0x5d9af5(_0x1ffd44, _0x1506be, _0x58f351, _0x1f9066, _0x3617d2) { + return _0x3e073c(_0x1ffd44, _0x1506be - 0x4d, _0x58f351 - 0xb0, _0x1506be - 0x4d0, _0x3617d2 - 0x192); + } + function _0x11d9ec(_0x349855, _0x5734ad, _0x5b4b23, _0x715491, _0x2fb97f) { + return _0x3e073c(_0x2fb97f, _0x5734ad - 0x55, _0x5b4b23 - 0x10b, _0x5734ad - 0x44b, _0x2fb97f - 0xbe); + } + function _0x106ae2(_0x5b078c, _0x59a6d1, _0x149a11, _0x2c2aaf, _0x5aaeaf) { + return _0x3e073c(_0x5aaeaf, _0x59a6d1 - 0x12, _0x149a11 - 0x18a, _0x2c2aaf - 0x560, _0x5aaeaf - 0x38); + } + if (_0x23fb6[_0x4f512e('2@7B', 0x15a, 0x1d7, 0x89, 0x16e)](_0x23fb6[_0x3837ef(-0x12c, -0x1f0, -0x1f4, -0x1d6, 'o&RY')], _0x23fb6[_0x11d9ec(0x11c, 0x1b9, 0x283, 0x107, 'CC6F')])) + _0x20d949 = _0x4a0256; + else { + const _0x3e1e80 = _0x5ea015 ? function () { + function _0x4da531(_0x1d1044, _0x1084a2, _0x193fb3, _0x9f01c5, _0x209212) { + return _0x5d9af5(_0x1084a2, _0x209212 - 0x16f, _0x193fb3 - 0x6d, _0x9f01c5 - 0xf1, _0x209212 - 0x11a); + } + function _0x1748e1(_0x347e8c, _0x4220c1, _0x3e81cf, _0x2d3393, _0x3caece) { + return _0x5d9af5(_0x3caece, _0x347e8c - 0x193, _0x3e81cf - 0x1d7, _0x2d3393 - 0x114, _0x3caece - 0xf); + } + function _0x3b85cd(_0x38f856, _0x302f8a, _0x27cf52, _0x262b31, _0x7e66a9) { + return _0x11d9ec(_0x38f856 - 0x175, _0x38f856 - -0x3c8, _0x27cf52 - 0x12b, _0x262b31 - 0x16a, _0x302f8a); + } + function _0x3731d4(_0x5bf3e4, _0x49ea54, _0x123074, _0x5a3d9c, _0xc70fc0) { + return _0x106ae2(_0x5bf3e4 - 0x103, _0x49ea54 - 0x11b, _0x123074 - 0x1bd, _0x49ea54 - -0x80, _0xc70fc0); + } + function _0x452a1a(_0x20cd1e, _0x4f7756, _0x2f9c33, _0x2f0918, _0x97bb3e) { + return _0x106ae2(_0x20cd1e - 0x1cd, _0x4f7756 - 0xbb, _0x2f9c33 - 0x5b, _0x4f7756 - -0x550, _0x2f0918); + } + if (_0x3be97e[_0x4da531(0x360, 'o&RY', 0x470, 0x48b, 0x3f4)](_0x3be97e[_0x4da531(0x352, '!u8R', 0x3fa, 0x39e, 0x355)], _0x3be97e[_0x1748e1(0x344, 0x324, 0x299, 0x33a, 'YhYY')])) { + if (_0x268116) { + const _0x1ea2b4 = _0x1268d3[_0x1748e1(0x302, 0x227, 0x3d7, 0x23a, 'Fg2i')](_0x2c200b, arguments); + return _0x370a70 = null, _0x1ea2b4; + } + } else { + if (_0x17ffae) { + if (_0x3be97e[_0x452a1a(-0x189, -0x19b, -0x14b, 'MNGr', -0x265)](_0x3be97e[_0x1748e1(0x3ce, 0x2fb, 0x3f9, 0x46a, 'B#IX')], _0x3be97e[_0x3731d4(0x282, 0x2c1, 0x35e, 0x2c5, '@fQ!')])) { + const _0x28b6a5 = _0x17ffae[_0x1748e1(0x30f, 0x33c, 0x269, 0x26b, 'oH*t')](_0x447810, arguments); + return _0x17ffae = null, _0x28b6a5; + } else { + const _0x359357 = tpCaPn[_0x4da531(0x2e3, 'eqwD', 0x296, 0x3fe, 0x31d)](_0x1ccbb6, tpCaPn[_0x1748e1(0x3a0, 0x3a9, 0x2e5, 0x469, 'OCj3')](tpCaPn[_0x3b85cd(-0x18a, 'RtNK', -0x185, -0x25a, -0x1a2)](tpCaPn[_0x1748e1(0x49d, 0x54d, 0x556, 0x3ba, 'QqQ*')], tpCaPn[_0x3b85cd(-0x1a2, 'YhYY', -0x280, -0x125, -0x1d6)]), ');')); + _0x2c9c20 = tpCaPn[_0x4da531(0x48a, 'QqQ*', 0x476, 0x4ae, 0x451)](_0x359357); + } + } + } + } : function () { + }; + return _0x5ea015 = ![], _0x3e1e80; + } + }; + } else + _0xc4a413 = bazvTn[_0x4b3646(0x3d4, 'u0Xg', 0x28e, 0x362, 0x3e0)](_0x5cf055, bazvTn[_0x3e58c1(-0x1a9, -0x1e1, -0x1cb, -0x23e, '$xQO')](bazvTn[_0x5d0c51(0x217, 0x14e, 0xe5, 0x14e, 't!4C')](bazvTn[_0x3e58c1(-0x19a, -0x170, -0x13e, -0x198, 'f6aq')], bazvTn[_0x5765f7(-0xfa, -0x22d, -0x129, '2@7B', -0x183)]), ');'))(); + }()); + (function () { + function _0x25a218(_0x2ce3a1, _0x1cefa3, _0x446213, _0x402655, _0x430a72) { + return _0x22ca9b(_0x2ce3a1 - 0x47, _0x402655, _0x1cefa3 - 0x26b, _0x402655 - 0x1d1, _0x430a72 - 0x68); + } + function _0x51f4e0(_0x228773, _0xbf116c, _0xcbdb37, _0x36d60b, _0x9b28bd) { + return _0x22ca9b(_0x228773 - 0xcc, _0x228773, _0x9b28bd - 0x67e, _0x36d60b - 0xca, _0x9b28bd - 0x1a4); + } + function _0x33a3c3(_0x10ba9c, _0x28095f, _0x286159, _0x34aaae, _0x45f54b) { + return _0x22ca9b(_0x10ba9c - 0x37, _0x28095f, _0x45f54b - 0x45, _0x34aaae - 0xd0, _0x45f54b - 0x76); + } + function _0x3a17e4(_0x4a9453, _0x4e8d6e, _0xc2b4f0, _0x568f01, _0x149233) { + return _0x1e1698(_0x568f01 - -0xa0, _0x4e8d6e - 0x163, _0xc2b4f0 - 0x1, _0x568f01 - 0x1d5, _0xc2b4f0); + } + function _0x55d0ca(_0x4e2841, _0x1ea0f7, _0x3828a6, _0x295fe6, _0x3a1309) { + return _0x1e1698(_0x4e2841 - 0x413, _0x1ea0f7 - 0x50, _0x3828a6 - 0x172, _0x295fe6 - 0x1aa, _0x295fe6); + } + _0x23fb6[_0x3a17e4(-0x130, 0x58, 'g93l', -0x75, 0x3a)](_0x23fb6[_0x3a17e4(-0xf9, -0x71, 'RVOB', -0x69, -0x125)], _0x23fb6[_0x25a218(-0xe3, -0x67, -0x55, 't!4C', -0x49)]) ? bazvTn[_0x25a218(-0x78, -0x59, 0x28, 'pOH8', -0x33)](_0x33f6f2) : _0x23fb6[_0x51f4e0('4at(', 0x4d3, 0x492, 0x478, 0x4d7)](_0x54e352, this, function () { + function _0x1e7a6f(_0x225f2a, _0x4b678d, _0x4aec0b, _0x188244, _0x36fb0c) { + return _0x55d0ca(_0x4b678d - -0x3, _0x4b678d - 0x19c, _0x4aec0b - 0x65, _0x4aec0b, _0x36fb0c - 0x182); + } + function _0x4c2b48(_0x5ae9d7, _0x39db7a, _0x47754b, _0x11f67b, _0x447dce) { + return _0x25a218(_0x5ae9d7 - 0x9a, _0x47754b - 0x32d, _0x47754b - 0x134, _0x39db7a, _0x447dce - 0x104); + } + const _0x4a4fcb = { + 'MfXlV': function (_0x9334ca, _0x1863fb) { + function _0x12d6e0(_0xeee6a0, _0x16f120, _0x14ddf2, _0x4f386d, _0x5e295d) { + return _0x5ec0(_0x4f386d - 0x320, _0x14ddf2); + } + return _0x23fb6[_0x12d6e0(0x44f, 0x439, 'S9LF', 0x4a3, 0x40a)](_0x9334ca, _0x1863fb); + }, + 'yRBXX': _0x23fb6[_0x1e7a6f(0x504, 0x48d, 't!4C', 0x3b9, 0x43e)], + 'gCxBj': _0x23fb6[_0x315929(0x145, 0x90, 0xd8, 'QqQ*', 0xc1)], + 'GPttG': _0x23fb6[_0x315929(0xa0, 0x127, 0x79, '@fQ!', 0x85)], + 'COGkj': function (_0x388be9, _0x81a4c2) { + function _0x13d50c(_0x40c154, _0x2863bd, _0x4c4835, _0x591071, _0x46db58) { + return _0x4c2b48(_0x40c154 - 0x166, _0x2863bd, _0x40c154 - -0x259, _0x591071 - 0x14f, _0x46db58 - 0x1c1); + } + return _0x23fb6[_0x13d50c(0x1b4, 'o&RY', 0x23b, 0x21b, 0xf4)](_0x388be9, _0x81a4c2); + }, + 'djEKp': _0x23fb6[_0x29c487(0x445, 0x4cf, 'eqwD', 0x561, 0x3ec)], + 'wloMG': _0x23fb6[_0x29c487(0x486, 0x3bc, 'MX04', 0x45f, 0x422)], + 'rgryI': function (_0x3a859a, _0x59d151) { + function _0x2d6be1(_0x5d918c, _0x120115, _0x16cf8f, _0x17d454, _0x5e0407) { + return _0x18dbc0(_0x120115, _0x120115 - 0xc0, _0x16cf8f - 0x1f3, _0x17d454 - 0x1d7, _0x5e0407 - 0xad); + } + return _0x23fb6[_0x2d6be1(-0x24d, 'B#IX', -0x1a6, -0x124, -0x196)](_0x3a859a, _0x59d151); + }, + 'lBFyN': _0x23fb6[_0x315929(0x6, 0xa1, 0x175, 'nU#o', 0xa8)], + 'BEUkj': _0x23fb6[_0x29c487(0x309, 0x3ad, 'OCj3', 0x3a7, 0x2de)], + 'EYYLF': _0x23fb6[_0x29c487(0x3af, 0x493, 'Ao$c', 0x50a, 0x479)], + 'zzuOM': function (_0x19e771, _0x201ffb) { + function _0x26a7d2(_0x427817, _0xd1ee8f, _0x58e16a, _0x1ba376, _0xcb5e93) { + return _0x315929(_0x427817 - 0x142, _0xd1ee8f - 0x116, _0x58e16a - 0x109, _0x427817, _0xd1ee8f - 0x1d8); + } + return _0x23fb6[_0x26a7d2('g93l', 0x382, 0x34e, 0x2a9, 0x41b)](_0x19e771, _0x201ffb); + }, + 'pFAKE': function (_0x38383a) { + function _0x1c46eb(_0x5af4d8, _0x2add03, _0x3ebda5, _0x10d887, _0x4d3fc0) { + return _0x4c2b48(_0x5af4d8 - 0x6, _0x5af4d8, _0x4d3fc0 - -0xb5, _0x10d887 - 0x9b, _0x4d3fc0 - 0x127); + } + return _0x23fb6[_0x1c46eb('z%zo', 0x2c0, 0x1e8, 0x371, 0x297)](_0x38383a); + }, + 'usCQH': function (_0x5bb395, _0x3fd96e, _0x4442ac) { + function _0x33df85(_0x1da37a, _0x359f30, _0x5cbefe, _0x42c2e6, _0x151242) { + return _0x4c2b48(_0x1da37a - 0x60, _0x359f30, _0x42c2e6 - -0x109, _0x42c2e6 - 0x76, _0x151242 - 0xed); + } + return _0x23fb6[_0x33df85(0x203, 'Fg2i', 0x223, 0x298, 0x1eb)](_0x5bb395, _0x3fd96e, _0x4442ac); + } + }; + function _0x29c487(_0x1775a0, _0x2b00ee, _0x5c8314, _0x248b00, _0x2d49c4) { + return _0x3a17e4(_0x1775a0 - 0x29, _0x2b00ee - 0x100, _0x5c8314, _0x2b00ee - 0x41e, _0x2d49c4 - 0x1ca); + } + function _0x18dbc0(_0x5e0719, _0x2acec8, _0x334f5f, _0x55b9d4, _0x3db894) { + return _0x51f4e0(_0x5e0719, _0x2acec8 - 0x1d4, _0x334f5f - 0x8, _0x55b9d4 - 0xee, _0x3db894 - -0x5fa); + } + function _0x315929(_0x949509, _0x4413ef, _0x5bb718, _0x2a874f, _0x886e6b) { + return _0x55d0ca(_0x886e6b - -0x38a, _0x4413ef - 0x120, _0x5bb718 - 0x38, _0x2a874f, _0x886e6b - 0xda); + } + if (_0x23fb6[_0x1e7a6f(0x470, 0x40b, 'pOH8', 0x4e9, 0x424)](_0x23fb6[_0x315929(0x1ae, 0x11b, 0x8f, 'CQPW', 0x147)], _0x23fb6[_0x4c2b48(0x312, 'CQPW', 0x266, 0x2c8, 0x19b)])) + (function () { + return ![]; + }[_0x4c2b48(0x3c7, 'qNNK', 0x3f5, 0x43e, 0x384) + _0x315929(0x8, 0x122, 0xf0, 'QqQ*', 0xbf) + 'r'](EEyZnd[_0x29c487(0x359, 0x33b, 'nU#o', 0x2b2, 0x2b8)](EEyZnd[_0x4c2b48(0x319, 'PjKF', 0x2ad, 0x20e, 0x30d)], EEyZnd[_0x4c2b48(0x36c, 'f6aq', 0x301, 0x2d4, 0x354)]))[_0x315929(0x220, 0x246, 0xe3, 'RVOB', 0x19f)](EEyZnd[_0x315929(0x10f, 0x1a8, 0x1dc, '@fQ!', 0x1c6)])); + else { + const _0x5a0c95 = new RegExp(_0x23fb6[_0x315929(0x207, 0x107, 0x14d, 'RVOB', 0x1d7)]), _0x4a0f5e = new RegExp(_0x23fb6[_0x18dbc0('nU#o', -0x1d6, -0x98, -0x1ed, -0x162)], 'i'), _0x16c109 = _0x23fb6[_0x29c487(0x401, 0x39e, 'U]SC', 0x3a5, 0x326)](_0x79c5f6, _0x23fb6[_0x4c2b48(0x272, 'Fg2i', 0x290, 0x2ca, 0x356)]); + !_0x5a0c95[_0x29c487(0x344, 0x36e, 'wsnp', 0x301, 0x439)](_0x23fb6[_0x315929(0xf, 0x125, 0xa2, 'pOH8', 0x83)](_0x16c109, _0x23fb6[_0x315929(0x1c2, 0x219, 0x193, 'f6aq', 0x188)])) || !_0x4a0f5e[_0x4c2b48(0x2d6, 'QqQ*', 0x30a, 0x25e, 0x2e2)](_0x23fb6[_0x4c2b48(0x1d9, 'eqwD', 0x2b6, 0x22f, 0x38c)](_0x16c109, _0x23fb6[_0x29c487(0x40c, 0x40d, 'CQPW', 0x3d4, 0x353)])) ? _0x23fb6[_0x1e7a6f(0x4e0, 0x471, 'z%zo', 0x547, 0x497)](_0x23fb6[_0x29c487(0x498, 0x4b2, 'S9LF', 0x40f, 0x50c)], _0x23fb6[_0x18dbc0('wlU*', -0xb3, -0x87, -0x30, -0xf4)]) ? EEyZnd[_0x315929(0x1c2, 0xd2, 0xbe, '7FpC', 0xed)](_0x17784f, -0x117e * 0x1 + -0x293 * -0x7 + -0x1b * 0x5) : _0x23fb6[_0x4c2b48(0x1da, 'Ao$c', 0x28d, 0x360, 0x1d8)](_0x16c109, '0') : _0x23fb6[_0x1e7a6f(0x42b, 0x4d1, 'CQPW', 0x452, 0x41c)](_0x23fb6[_0x315929(0x175, 0xd1, 0x27c, '!u8R', 0x1b2)], _0x23fb6[_0x18dbc0('h#G5', -0x27d, -0x1fa, -0x280, -0x2b1)]) ? _0x23fb6[_0x315929(0x95, 0xe1, -0x92, 'CQPW', 0x31)](_0x79c5f6) : EEyZnd[_0x315929(0x1a8, 0xaa, 0x1ac, 'bh#1', 0x177)](_0x2826ba, this, function () { + function _0x3a6993(_0x564139, _0x2e9a1a, _0x4990, _0x21e173, _0x4d4a0f) { + return _0x315929(_0x564139 - 0x150, _0x2e9a1a - 0x107, _0x4990 - 0x70, _0x2e9a1a, _0x4d4a0f - -0x292); + } + const _0x16b499 = new _0x223f50(EEyZnd[_0x3a5c64(0x3f8, 0x35d, 0x420, 'z%zo', 0x4b1)]), _0x270d77 = new _0x5a1f26(EEyZnd[_0x3a6993(-0x2f, 'eqwD', -0x1b7, -0x106, -0xff)], 'i'); + function _0x2d5728(_0x518154, _0x470a62, _0x3d4904, _0x3630d4, _0x19b8de) { + return _0x1e7a6f(_0x518154 - 0x1c, _0x3d4904 - 0xad, _0x518154, _0x3630d4 - 0xd2, _0x19b8de - 0x17); + } + function _0x42f526(_0x353144, _0x15b6eb, _0x1db1aa, _0xb28b53, _0x2cf9c5) { + return _0x1e7a6f(_0x353144 - 0x58, _0x1db1aa - -0x20, _0x2cf9c5, _0xb28b53 - 0x1eb, _0x2cf9c5 - 0x112); + } + function _0x3a5c64(_0x890f3d, _0x3fba11, _0x4ad7f6, _0x5418c5, _0xf5ab03) { + return _0x1e7a6f(_0x890f3d - 0x16f, _0x4ad7f6 - 0x2a, _0x5418c5, _0x5418c5 - 0xb3, _0xf5ab03 - 0x1bd); + } + const _0x16bd89 = EEyZnd[_0x2936d4(0x3ce, 0x324, 0x318, 0x3ec, 'z%zo')](_0x4d7c19, EEyZnd[_0x3a5c64(0x59c, 0x5ef, 0x551, 'RtNK', 0x51d)]); + function _0x2936d4(_0x4f42bb, _0x1ca2ba, _0x537e84, _0x735b1c, _0x4a07bd) { + return _0x4c2b48(_0x4f42bb - 0x194, _0x4a07bd, _0x1ca2ba - -0xde, _0x735b1c - 0xa3, _0x4a07bd - 0x1ef); + } + !_0x16b499[_0x3a6993(-0x12d, 'YhYY', -0x1a7, -0x1b8, -0x1d8)](EEyZnd[_0x2d5728('OCj3', 0x53a, 0x530, 0x5ab, 0x50c)](_0x16bd89, EEyZnd[_0x42f526(0x464, 0x4ec, 0x462, 0x386, 'B#IX')])) || !_0x270d77[_0x3a6993(-0x302, '2IuS', -0x33c, -0x288, -0x258)](EEyZnd[_0x2d5728('g93l', 0x4f3, 0x54e, 0x5bd, 0x57b)](_0x16bd89, EEyZnd[_0x2d5728('2@7B', 0x434, 0x4da, 0x58f, 0x4dc)])) ? EEyZnd[_0x42f526(0x36e, 0x364, 0x38e, 0x457, 'FYr3')](_0x16bd89, '0') : EEyZnd[_0x2936d4(0x16f, 0x1dd, 0x26f, 0x1ec, '2@7B')](_0x9e7260); + })(); + } + })(); + }()); + const _0x2fad7f = (function () { + const _0x5851e9 = { + 'uUSRr': function (_0x564f88, _0x176b0d) { + function _0x5c6314(_0x25a523, _0x4088db, _0x3935af, _0x1ea420, _0x49ece7) { + return _0x5ec0(_0x25a523 - -0x1c, _0x49ece7); + } + return _0x23fb6[_0x5c6314(0x174, 0x107, 0xd1, 0x93, 'RVOB')](_0x564f88, _0x176b0d); + }, + 'AWARS': _0x23fb6[_0x20f3ee('RtNK', -0x202, -0x137, -0x20c, -0x24c)], + 'oESVL': _0x23fb6[_0xd74efe('Ao$c', -0x15c, -0x175, -0x8f, -0x205)], + 'BjFNt': function (_0x10a38e, _0x635b4b) { + function _0x261e2b(_0x50103c, _0x3b5557, _0x489f85, _0x29ff4f, _0x20ffc0) { + return _0xd74efe(_0x20ffc0, _0x29ff4f - 0x334, _0x489f85 - 0x42, _0x29ff4f - 0x1b6, _0x20ffc0 - 0x5c); + } + return _0x23fb6[_0x261e2b(0x270, 0x262, 0x107, 0x1df, '4@Mf')](_0x10a38e, _0x635b4b); + }, + 'aEZzf': _0x23fb6[_0x20f3ee('wlU*', -0x133, -0x231, -0x1d3, -0x177)], + 'MpBFC': _0x23fb6[_0x20f3ee('wsnp', -0x9c, -0x1c2, -0x155, -0xd6)], + 'ATTQv': function (_0x26b880, _0x4d1ef3) { + function _0x29f37a(_0x4bed5c, _0x586456, _0x1c3da2, _0x3f40d2, _0xb617b5) { + return _0x20f3ee(_0x1c3da2, _0x586456 - 0x1be, _0x1c3da2 - 0x9e, _0xb617b5 - 0x234, _0xb617b5 - 0x1c2); + } + return _0x23fb6[_0x29f37a(-0xd6, 0x57, 'oH*t', -0x29, -0x53)](_0x26b880, _0x4d1ef3); + }, + 'XpYAx': _0x23fb6[_0x58a80d(-0x266, -0xed, -0x18a, -0xf2, 'f6aq')], + 'gFUUs': function (_0x3db966, _0x42adc3) { + function _0x416607(_0x4f93c4, _0x123082, _0x1fd9ce, _0x509cf1, _0x490c15) { + return _0x8dcf01(_0x4f93c4 - 0x181, _0x123082 - 0xb6, _0x509cf1 - 0x78, _0x509cf1 - 0x8f, _0x490c15); + } + return _0x23fb6[_0x416607(0x3a4, 0x48e, 0x497, 0x3c7, 'u0Xg')](_0x3db966, _0x42adc3); + }, + 'WFONG': _0x23fb6[_0xd74efe('2IuS', -0x24f, -0x269, -0x28d, -0x293)], + 'APrCo': _0x23fb6[_0x58a80d(-0x1b1, -0x254, -0x1a1, -0x134, 'nU#o')] + }; + function _0x20f3ee(_0x552528, _0x5c1e2a, _0x4c2dce, _0xaa15d1, _0x25e473) { + return _0x2d5cb7(_0x552528 - 0x19, _0x5c1e2a - 0x11d, _0xaa15d1 - -0x352, _0xaa15d1 - 0xcc, _0x552528); + } + function _0x8dcf01(_0x26d61f, _0x4db143, _0x417bac, _0x3f7e02, _0x1c0931) { + return _0x1e1698(_0x417bac - 0x25d, _0x4db143 - 0x59, _0x417bac - 0xd7, _0x3f7e02 - 0x56, _0x1c0931); + } + function _0x58a80d(_0x38e5fe, _0xe65c15, _0x4f4d60, _0x4d0a90, _0x2dad00) { + return _0x1e1698(_0x4f4d60 - -0x29b, _0xe65c15 - 0x7d, _0x4f4d60 - 0x1a5, _0x4d0a90 - 0x1bc, _0x2dad00); + } + function _0x1e94a4(_0x14d467, _0x3eb1e8, _0x2c4b3c, _0x34537f, _0x57de42) { + return _0x1b9448(_0x14d467 - 0x125, _0x3eb1e8 - 0x1a3, _0x3eb1e8, _0x34537f - 0x12, _0x2c4b3c - -0x4ba); + } + function _0xd74efe(_0x318194, _0x4fc25b, _0x460b63, _0x32813d, _0x101fbd) { + return _0x1e1698(_0x4fc25b - -0x2a7, _0x4fc25b - 0x136, _0x460b63 - 0x168, _0x32813d - 0x140, _0x318194); + } + if (_0x23fb6[_0x58a80d(-0x104, -0x1ac, -0x16d, -0xbc, 'QqQ*')](_0x23fb6[_0x8dcf01(0x335, 0x30f, 0x28d, 0x343, 'o&RY')], _0x23fb6[_0xd74efe('FYr3', -0x150, -0x7e, -0x1ce, -0x22b)])) { + const _0x595b99 = _0x5e6ef6[_0x8dcf01(0x3ce, 0x494, 0x3b1, 0x380, 'YhYY')](_0x25045f, arguments); + return _0x14cff8 = null, _0x595b99; + } else { + let _0x5e668e = !![]; + return function (_0x384d89, _0x204232) { + function _0xe08d1f(_0x53fdf5, _0x5a3b0f, _0x5ca385, _0x47945a, _0x333311) { + return _0x20f3ee(_0x53fdf5, _0x5a3b0f - 0x61, _0x5ca385 - 0xee, _0x5ca385 - 0x640, _0x333311 - 0x1c7); + } + function _0x41c4cd(_0x13c9e8, _0x4fcac7, _0x4d66a8, _0x4be10f, _0xeaebed) { + return _0x20f3ee(_0x4fcac7, _0x4fcac7 - 0x17, _0x4d66a8 - 0x155, _0x4be10f - 0xe2, _0xeaebed - 0x8a); + } + function _0x226dda(_0x184238, _0x20a3d9, _0x45a0ab, _0x11fa95, _0x5628bc) { + return _0x20f3ee(_0x45a0ab, _0x20a3d9 - 0x8b, _0x45a0ab - 0x180, _0x20a3d9 - 0x1d5, _0x5628bc - 0x11d); + } + function _0x555140(_0x3988f3, _0x1b9c4c, _0x286755, _0x3de6eb, _0x545ed2) { + return _0x58a80d(_0x3988f3 - 0x18d, _0x1b9c4c - 0x181, _0x545ed2 - 0x58b, _0x3de6eb - 0x101, _0x3988f3); + } + const _0x470853 = { + 'hfUVW': function (_0x4ba067, _0x4d5b3e) { + function _0x2f9c6c(_0x4c2c1b, _0x23bb23, _0x3f60fa, _0x48c361, _0x7bbf2f) { + return _0x5ec0(_0x7bbf2f - -0x326, _0x4c2c1b); + } + return _0x5851e9[_0x2f9c6c('QqQ*', -0x190, -0x17e, -0x251, -0x1c5)](_0x4ba067, _0x4d5b3e); + }, + 'AJGOi': _0x5851e9[_0x226dda(-0x52, -0xf, 'bh#1', 0xac, 0x1e)], + 'SNidL': _0x5851e9[_0x4c5323('Fg2i', 0x266, 0x193, 0x1f2, 0x23a)], + 'LYKGe': function (_0x1a7309, _0x4eb9e6) { + function _0xa0e85b(_0x2f7fd4, _0x542de7, _0x455bff, _0x4d364a, _0x18964e) { + return _0x226dda(_0x2f7fd4 - 0x1d6, _0x2f7fd4 - -0x12b, _0x4d364a, _0x4d364a - 0x177, _0x18964e - 0x13c); + } + return _0x5851e9[_0xa0e85b(-0x248, -0x26f, -0x1dd, 'Yr6c', -0x2ed)](_0x1a7309, _0x4eb9e6); + }, + 'ursCQ': _0x5851e9[_0x41c4cd(-0x2af, 'nU#o', -0x212, -0x1f3, -0x122)], + 'jHNRl': _0x5851e9[_0x4c5323('4@Mf', 0x22e, 0x25a, 0x1d5, 0x172)], + 'IWOeW': function (_0x61f3ef, _0x3a781c) { + function _0x27a9f0(_0x1f2b73, _0x354eaf, _0x8190d0, _0x5c2380, _0x50da71) { + return _0x41c4cd(_0x1f2b73 - 0x1f2, _0x50da71, _0x8190d0 - 0x5f, _0x5c2380 - 0x275, _0x50da71 - 0x8d); + } + return _0x5851e9[_0x27a9f0(0x1ce, 0x18d, 0xd4, 0x167, 'wsnp')](_0x61f3ef, _0x3a781c); + }, + 'vvXWZ': _0x5851e9[_0x226dda(-0x108, -0x123, 'nU#o', -0x174, -0x6c)] + }; + function _0x4c5323(_0x65a89a, _0x4513ca, _0x2bc7f1, _0x25f27b, _0x3feab3) { + return _0x1e94a4(_0x65a89a - 0x67, _0x65a89a, _0x25f27b - 0x4cb, _0x25f27b - 0x95, _0x3feab3 - 0x0); + } + if (_0x5851e9[_0x555140('nU#o', 0x276, 0x263, 0x304, 0x304)](_0x5851e9[_0x4c5323('lqnO', 0x369, 0x2a1, 0x30e, 0x323)], _0x5851e9[_0x4c5323('t!4C', 0x2ad, 0x37b, 0x307, 0x283)])) { + const _0x268d2d = _0x1db458 ? function () { + function _0xb55cae(_0x4115da, _0x17e7b6, _0x5183fe, _0x65da6e, _0x23d537) { + return _0x4c5323(_0x17e7b6, _0x17e7b6 - 0xe, _0x5183fe - 0x42, _0x23d537 - 0x95, _0x23d537 - 0x1cc); + } + if (_0x5aefd6) { + const _0x15028c = _0x631dd0[_0xb55cae(0x34a, 'nU#o', 0x30d, 0x2a5, 0x356)](_0x21e6e8, arguments); + return _0x16f3c9 = null, _0x15028c; + } + } : function () { + }; + return _0x3bdb3e = ![], _0x268d2d; + } else { + const _0x1c8052 = _0x5e668e ? function () { + const _0x422b16 = { + 'uUzMg': function (_0x4e3dda, _0x3d0d8b) { + function _0x4ea4eb(_0x3ff57c, _0x1cd80f, _0x381ea1, _0x5cf401, _0x380391) { + return _0x5ec0(_0x380391 - -0x3dd, _0x1cd80f); + } + return _0x470853[_0x4ea4eb(-0x255, 'h#G5', -0x27a, -0x129, -0x1dc)](_0x4e3dda, _0x3d0d8b); + }, + 'fJrgr': _0x470853[_0x146617('@fQ!', 0x2b7, 0x276, 0x337, 0x206)], + 'QgSKz': _0x470853[_0x146617('@fQ!', 0x388, 0x3d9, 0x41e, 0x45f)] + }; + function _0x146617(_0x2d216f, _0xfc4fe9, _0x1e1762, _0x51aafd, _0x355462) { + return _0x4c5323(_0x2d216f, _0xfc4fe9 - 0xae, _0x1e1762 - 0xae, _0xfc4fe9 - 0xc8, _0x355462 - 0x30); + } + function _0x505075(_0x4df225, _0x4e20fb, _0x222ace, _0x21267b, _0x3b8e2d) { + return _0x226dda(_0x4df225 - 0x3b, _0x222ace - 0x3e9, _0x21267b, _0x21267b - 0x1e8, _0x3b8e2d - 0x43); + } + function _0x3e4c6b(_0x1ea6aa, _0x4e41b5, _0x3a99b1, _0xa4e4eb, _0x1c18a0) { + return _0x226dda(_0x1ea6aa - 0x16, _0x1c18a0 - -0xbb, _0x1ea6aa, _0xa4e4eb - 0x1ce, _0x1c18a0 - 0x10d); + } + function _0x408ea1(_0x4313b6, _0x1ee0b9, _0x42c3eb, _0x2c0179, _0x166bda) { + return _0x226dda(_0x4313b6 - 0x18a, _0x1ee0b9 - 0x416, _0x4313b6, _0x2c0179 - 0x139, _0x166bda - 0x10a); + } + function _0x1ed73f(_0x413c05, _0x2640aa, _0xe5cce4, _0x5d249f, _0x4d9aca) { + return _0x555140(_0x2640aa, _0x2640aa - 0x24, _0xe5cce4 - 0x13d, _0x5d249f - 0x162, _0x4d9aca - 0x1d3); + } + if (_0x470853[_0x408ea1('mumN', 0x3ee, 0x31b, 0x3e3, 0x340)](_0x470853[_0x408ea1('oH*t', 0x479, 0x51c, 0x439, 0x3f3)], _0x470853[_0x3e4c6b('Fg2i', -0x115, 0x64, -0x7, -0x79)])) { + if (_0x204232) { + if (_0x470853[_0x408ea1('@fQ!', 0x3dc, 0x34c, 0x3a2, 0x355)](_0x470853[_0x1ed73f(0x5e3, '4@Mf', 0x5a4, 0x598, 0x5e5)], _0x470853[_0x1ed73f(0x4a2, '$xQO', 0x4b4, 0x473, 0x508)])) { + if (_0x2ac886) + return _0x1e94cc; + else + OtTDRa[_0x3e4c6b('bh#1', -0x66, 0x81, -0x5f, -0x29)](_0x3eadb4, 0x1 * 0x1b4f + -0x1b45 + -0xa); + } else { + const _0x4d9902 = _0x204232[_0x146617('@3!D', 0x3b8, 0x3f0, 0x34d, 0x3ba)](_0x384d89, arguments); + return _0x204232 = null, _0x4d9902; + } + } + } else + return function (_0x4dab7a) { + }[_0x1ed73f(0x525, 'nU#o', 0x3c0, 0x4fd, 0x478) + _0x3e4c6b('B#IX', -0xec, 0x15, -0xdb, -0xaf) + 'r'](OtTDRa[_0x3e4c6b('RtNK', -0x84, 0x9f, 0x2a, -0x3a)])[_0x3e4c6b('2@7B', -0x10e, -0x225, -0x1dd, -0x175)](OtTDRa[_0x1ed73f(0x54a, 'sJPL', 0x414, 0x40d, 0x4ba)]); + } : function () { + }; + return _0x5e668e = ![], _0x1c8052; + } + }; + } + }()), _0x42679b = _0x23fb6[_0x3a3b81(0x174, 0xa2, '3S6O', 0x1f9, 0x12a)](_0x2fad7f, this, function () { + function _0x46e836(_0x543385, _0x20d7ae, _0x4c9fee, _0x102f1d, _0x3e7c9e) { + return _0x3a3b81(_0x543385 - 0x64, _0x20d7ae - 0x1b9, _0x102f1d, _0x102f1d - 0xaf, _0x543385 - -0x2c0); + } + function _0x490fd0(_0xf0643b, _0x15d714, _0x5801ac, _0x447f78, _0x166180) { + return _0x2d5cb7(_0xf0643b - 0x146, _0x15d714 - 0xe2, _0x447f78 - 0xfd, _0x447f78 - 0x123, _0x166180); + } + function _0x46a901(_0x476e3c, _0x22f8ab, _0x37edc3, _0x3ea843, _0x11df8c) { + return _0x3a3b81(_0x476e3c - 0xf6, _0x22f8ab - 0x64, _0x11df8c, _0x3ea843 - 0xd8, _0x22f8ab - 0x11f); + } + function _0x448807(_0xaf556e, _0x472c75, _0x823a45, _0x1365a5, _0x5f3806) { + return _0x1e1698(_0xaf556e - 0xd0, _0x472c75 - 0x102, _0x823a45 - 0x9a, _0x1365a5 - 0x34, _0x1365a5); + } + function _0x5db066(_0x1550a0, _0x1d26ac, _0x481e0a, _0x3a606a, _0x249707) { + return _0x1e1698(_0x1d26ac - -0x2e5, _0x1d26ac - 0x7f, _0x481e0a - 0xa, _0x3a606a - 0x16b, _0x3a606a); + } + const _0x4df29b = { + 'xZhjh': function (_0x3327be, _0x27e355) { + function _0x29d844(_0x38587e, _0x2ef1e3, _0x413215, _0x50491f, _0x4e45c8) { + return _0x5ec0(_0x413215 - -0x18c, _0x2ef1e3); + } + return _0x23fb6[_0x29d844(-0xe, 'OCj3', 0x14, -0x2e, -0x32)](_0x3327be, _0x27e355); + }, + 'mLmeA': _0x23fb6[_0x46a901(0x10b, 0x1bb, 0x145, 0x1e3, 'OCj3')], + 'TQXCc': _0x23fb6[_0x46e836(-0x201, -0x1cf, -0x2d3, 'wsnp', -0x1c9)], + 'stpSV': _0x23fb6[_0x46a901(0x207, 0x1e4, 0x12c, 0x1b5, 'pOH8')] + }; + if (_0x23fb6[_0x5db066(-0x3d7, -0x301, -0x30d, 't!4C', -0x33c)](_0x23fb6[_0x448807(0x1b3, 0x160, 0x249, 'S9LF', 0x288)], _0x23fb6[_0x46a901(0x22d, 0x186, 0x16b, 0xa8, 'oQ[[')])) { + const _0x1026f2 = function () { + function _0x5b5013(_0x287259, _0x3b5b04, _0x3004de, _0x242b55, _0x3c0b72) { + return _0x448807(_0x242b55 - 0x10e, _0x3b5b04 - 0x164, _0x3004de - 0x19a, _0x287259, _0x3c0b72 - 0x59); + } + function _0x5473cd(_0x4038f2, _0x56da12, _0x18870c, _0x260cf9, _0x112fc7) { + return _0x5db066(_0x4038f2 - 0x146, _0x112fc7 - 0x43f, _0x18870c - 0x1d4, _0x18870c, _0x112fc7 - 0x105); + } + function _0x46a54c(_0x277552, _0x897ef4, _0x51e71f, _0x327490, _0x56d0c0) { + return _0x46a901(_0x277552 - 0x124, _0x897ef4 - 0x222, _0x51e71f - 0x3b, _0x327490 - 0x10, _0x51e71f); + } + function _0x5e194f(_0x39ac6b, _0x17621e, _0x235448, _0x1f9fe9, _0x513e41) { + return _0x448807(_0x235448 - -0x150, _0x17621e - 0x43, _0x235448 - 0x13, _0x1f9fe9, _0x513e41 - 0x9e); + } + function _0x5079d3(_0x340066, _0x35e60f, _0x3d3b82, _0x51a3ba, _0x79b690) { + return _0x46e836(_0x79b690 - 0x3af, _0x35e60f - 0xfe, _0x3d3b82 - 0x142, _0x35e60f, _0x79b690 - 0x4b); + } + if (_0x23fb6[_0x5e194f(0x10, 0x72, 0xaa, 'FYr3', 0x10f)](_0x23fb6[_0x5e194f(-0xf5, 0x18, -0x4b, '2IuS', -0x5f)], _0x23fb6[_0x5473cd(0x13e, 0x19b, 'RtNK', 0x1bf, 0x149)])) + _0x191aa6 = _0x194d18; + else { + let _0x21d1c7; + try { + if (_0x23fb6[_0x5079d3(0x12f, 'wsnp', 0x27c, 0x1a9, 0x1b3)](_0x23fb6[_0x5e194f(-0xa0, 0x13, -0x1b, 'RVOB', 0xaf)], _0x23fb6[_0x5b5013('o&RY', 0x32d, 0x287, 0x2fd, 0x32b)])) + _0x21d1c7 = _0x23fb6[_0x5b5013('OCj3', 0xd9, 0x163, 0x1bd, 0x23a)](Function, _0x23fb6[_0x46a54c(0x30e, 0x34e, '4at(', 0x3e2, 0x2b9)](_0x23fb6[_0x5473cd(0x19f, 0x19d, 'FYr3', 0x2a5, 0x20b)](_0x23fb6[_0x5079d3(0x1d7, '$xQO', 0x14e, 0x241, 0x177)], _0x23fb6[_0x5e194f(0x21, -0xa6, -0x81, 'QqQ*', -0xde)]), ');'))(); + else + return !![]; + } catch (_0x741952) { + if (_0x23fb6[_0x5473cd(0x27c, 0x2bd, 't!4C', 0x1cd, 0x241)](_0x23fb6[_0x5473cd(0x27c, 0x1e4, 'OCj3', 0x1c8, 0x247)], _0x23fb6[_0x5b5013('h#G5', 0x14e, 0x210, 0x222, 0x304)])) { + const _0x59039d = _0x3b44b2[_0x5473cd(0x264, 0x2f4, 'k*JM', 0x176, 0x231)](_0x1242ab, arguments); + return _0x28052f = null, _0x59039d; + } else + _0x21d1c7 = window; + } + return _0x21d1c7; + } + }, _0x4afc21 = _0x23fb6[_0x46a901(0x18d, 0x1c4, 0x1ba, 0x15e, 'U]SC')](_0x1026f2), _0x23338b = _0x4afc21[_0x448807(0x1cb, 0x129, 0x23f, 'Fg2i', 0x150) + 'le'] = _0x4afc21[_0x46a901(0x14e, 0x114, 0xbd, 0x1ef, 'sJPL') + 'le'] || {}, _0x1a0290 = [ + _0x23fb6[_0x46e836(-0x268, -0x255, -0x1e4, 'RVOB', -0x2be)], + _0x23fb6[_0x448807(0x19d, 0x1bb, 0x253, 'YhYY', 0x1e2)], + _0x23fb6[_0x490fd0(0x1f8, 0x289, 0x169, 0x212, 'z%zo')], + _0x23fb6[_0x46a901(0x1a1, 0x131, 0x124, 0xb0, 't!4C')], + _0x23fb6[_0x46a901(0x169, 0x189, 0x156, 0x1b5, 'Yr6c')], + _0x23fb6[_0x46a901(0x4a, 0xf8, 0x51, 0xb9, '!u8R')], + _0x23fb6[_0x46e836(-0x23a, -0x313, -0x22d, 'sJPL', -0x2da)] + ]; + for (let _0x435892 = 0x5 * -0x1d6 + -0x1 * -0x1ecb + 0x1 * -0x159d; _0x23fb6[_0x448807(0x9b, 0x12b, 0x70, 'bh#1', 0x50)](_0x435892, _0x1a0290[_0x448807(0xe2, 0x1ab, 0x199, '2IuS', 0x13d) + 'h']); _0x435892++) { + if (_0x23fb6[_0x448807(0xe1, 0x10c, 0xd2, 'Tznn', 0x143)](_0x23fb6[_0x490fd0(0x265, 0x1fa, 0x1c2, 0x1bd, 'qNNK')], _0x23fb6[_0x46a901(0x1d7, 0x29f, 0x2ff, 0x28d, '4at(')])) + (function () { + return !![]; + }[_0x490fd0(0x1af, 0x377, 0x267, 0x293, '4@Mf') + _0x46e836(-0x298, -0x216, -0x220, 'RtNK', -0x27d) + 'r'](LALmiE[_0x5db066(-0x246, -0x2a6, -0x210, 'Y@7I', -0x296)](LALmiE[_0x46a901(0x22b, 0x1e2, 0x19c, 0x1d6, 'eqwD')], LALmiE[_0x46e836(-0x2bb, -0x36c, -0x382, '$xQO', -0x2f4)]))[_0x46a901(0x181, 0x211, 0x2e3, 0x29c, 'Y@7I')](LALmiE[_0x46e836(-0x2b9, -0x33f, -0x338, 'h#G5', -0x31e)])); + else { + const _0x4dddd6 = _0x2fad7f[_0x448807(0x1a3, 0xc8, 0x1cf, '4@Mf', 0x13a) + _0x46a901(0x1ea, 0x1a9, 0x12b, 0x1a4, 'sJPL') + 'r'][_0x46e836(-0x225, -0x21e, -0x2c3, 'lqnO', -0x14d) + _0x448807(0xe6, 0x1a7, 0x137, 'RtNK', 0x187)][_0x5db066(-0x384, -0x2c4, -0x2e4, '@3!D', -0x395)](_0x2fad7f), _0x408fcf = _0x1a0290[_0x435892], _0x2c37ea = _0x23338b[_0x408fcf] || _0x4dddd6; + _0x4dddd6[_0x448807(0x22b, 0x175, 0x207, 'RY2k', 0x18c) + _0x490fd0(0x26e, 0x24d, 0x20a, 0x18e, 'nU#o')] = _0x2fad7f[_0x46e836(-0x2a7, -0x28c, -0x340, 'RVOB', -0x26c)](_0x2fad7f), _0x4dddd6[_0x46e836(-0x21c, -0x179, -0x2fc, 'U]SC', -0x1f5) + _0x448807(0x19a, 0x139, 0x155, 'MNGr', 0x1f1)] = _0x2c37ea[_0x5db066(-0x2a9, -0x335, -0x300, 'CC6F', -0x2da) + _0x5db066(-0x3a5, -0x331, -0x2b9, '!u8R', -0x2d3)][_0x448807(0x199, 0x23f, 0x1de, 'pOH8', 0x183)](_0x2c37ea), _0x23338b[_0x408fcf] = _0x4dddd6; + } + } + } else { + const _0x4ac6f5 = _0xeb9ec0 ? function () { + function _0x5ba5c7(_0x41ea6b, _0x1a0644, _0x38e6f6, _0x163bb8, _0x5e06f0) { + return _0x46a901(_0x41ea6b - 0x1bd, _0x163bb8 - -0xc6, _0x38e6f6 - 0x58, _0x163bb8 - 0x64, _0x38e6f6); + } + if (_0x69e070) { + const _0x53f0f5 = _0x51d401[_0x5ba5c7(0xe6, 0x1cf, 'pOH8', 0x1ba, 0x164)](_0xb3ed3c, arguments); + return _0x41f564 = null, _0x53f0f5; + } + } : function () { + }; + return _0x134e0d = ![], _0x4ac6f5; + } + }); + function _0x1b9448(_0x380090, _0x5e984a, _0x235392, _0x1300a3, _0x38a18b) { + return _0x5ec0(_0x38a18b - 0x13d, _0x235392); + } + _0x23fb6[_0x3a3b81(0x55, 0x66, '@3!D', 0x101, 0xc0)](_0x42679b); + const _0x1cf542 = -0x1 * -0x12b5 + -0x2 * 0x837 + -0x247 + 0.15; + function _0x2d5cb7(_0x1512f1, _0x134abe, _0x8b13da, _0x54538f, _0x2af514) { + return _0x5ec0(_0x8b13da - -0x25, _0x2af514); + } + const _0x10b562 = -0xe79 * 0x2 + -0x49e * -0x3 + 0xf7c; + let _0x3509e8 = _0x23fb6[_0x3a3b81(0x28, 0xbc, 'u0Xg', -0x31, 0x29)](_0x5b037d, _0x4b126e); + function _0x1e1698(_0x5c3d08, _0x36e289, _0x54d8af, _0x3053e9, _0x326ab0) { + return _0x5ec0(_0x5c3d08 - -0xe8, _0x326ab0); + } + function _0x22ca9b(_0x3fe362, _0x56aef7, _0x3e01ec, _0x478758, _0x162203) { + return _0x5ec0(_0x3e01ec - -0x3b3, _0x56aef7); + } + if (_0x23fb6[_0x2d5cb7(0x120, 0x242, 0x19f, 0xf4, 'PjKF')](_0x3509e8, _0x10b562)) { + if (_0x23fb6[_0x3a3b81(0x2c, -0x34, 'Tznn', 0x37, 0x5a)](_0x23fb6[_0x22ca9b(-0x307, 'S9LF', -0x2cd, -0x3aa, -0x29c)], _0x23fb6[_0x2d5cb7(0xf0, 0x139, 0x141, 0x1d2, 'Ao$c')])) { + const _0x1a354e = _0x4814aa[_0x1e1698(0x33, -0x26, 0xf, -0x81, 'RY2k') + _0x22ca9b(-0x2f4, 'oH*t', -0x290, -0x2b9, -0x1e5) + 'r'][_0x1b9448(0x21b, 0x234, '2@7B', 0x320, 0x272) + _0x3a3b81(0x128, 0x5b, 'Tznn', 0x36, 0xdb)][_0x3a3b81(-0x30, -0x8a, 'nU#o', -0x42, -0x1f)](_0x1d523a), _0x342869 = _0xf1df3f[_0x5d92fa], _0x117bab = _0x3ef2bc[_0x342869] || _0x1a354e; + _0x1a354e[_0x1b9448(0x3c5, 0x363, 'RtNK', 0x3b1, 0x334) + _0x1e1698(-0x4a, 0x7f, 0x6a, -0xbb, 'RY2k')] = _0x2a01d0[_0x2d5cb7(0x5d, 0x142, 0x9e, -0x1d, 'RVOB')](_0x57ed12), _0x1a354e[_0x1e1698(0xd2, 0x183, 0x189, 0x120, 'FYr3') + _0x1e1698(0x141, 0xd1, 0x170, 0x164, '2IuS')] = _0x117bab[_0x3a3b81(0x187, 0x11a, '$xQO', 0x9e, 0xce) + _0x1e1698(0xd, 0x44, -0x3c, -0x45, '2@7B')][_0x1b9448(0x2e7, 0x317, 'CC6F', 0x2c1, 0x2a9)](_0x117bab), _0x5d4714[_0x342869] = _0x1a354e; + } else + _0x3509e8 = _0x23fb6[_0x3a3b81(0x66, 0x182, 'mumN', 0x6f, 0x100)](_0x3509e8, _0x23fb6[_0x1e1698(0x9e, 0x14a, -0x20, 0xc2, '7FpC')](-0x5ea + -0x1a44 + 0x499 * 0x7, _0x1cf542)); + } + return _0x3509e8; +} +function _0x57bb4e(_0x48ccbf, _0x3f7d50, _0x26c1df, _0x2d6344, _0x1470b4) { + return _0x5ec0(_0x48ccbf - -0x31, _0x26c1df); +} +(function () { + const _0x599834 = { + 'DvMct': function (_0x33928b, _0x5eac9e) { + return _0x33928b !== _0x5eac9e; + }, + 'yJZCC': _0x2a2ffe(0x19d, 'PjKF', 0x1f8, 0x2cd, 0x221), + 'BjajC': function (_0xb268be, _0x58faab) { + return _0xb268be(_0x58faab); + }, + 'vHjye': function (_0x4bd7a6, _0x582c52) { + return _0x4bd7a6 + _0x582c52; + }, + 'tqmfY': _0x2a2ffe(0x1b9, 'mumN', 0x14d, 0x231, 0x1cb) + _0x2a2ffe(0x28a, '3S6O', 0x1e3, 0x224, 0x28c) + _0x4b91ef('YhYY', 0x212, 0x26c, 0x2ba, 0x375) + _0x2b7144('f6aq', -0x12d, -0x9a, -0x54, -0x43), + 'GRynz': _0x2b7144('oQ[[', -0x26, -0xa4, -0x54, -0x4f) + _0x4b91ef('mumN', 0x20b, 0x1f1, 0x214, 0x289) + _0x2a2ffe(0x1fd, 'B#IX', 0x16d, 0x1f4, 0xfe) + _0x2b7144('Fg2i', 0x4f, 0xc9, 0x2, -0xe) + _0x4b91ef('u0Xg', 0x29c, 0x1b1, 0x205, 0x2e4) + _0x4b91ef('Yr6c', 0x310, 0x2db, 0x29c, 0x1d2) + '\x20)', + 'XTBQS': function (_0x38cc37) { + return _0x38cc37(); + }, + 'umdqK': function (_0x438a5c, _0x58b8bc) { + return _0x438a5c !== _0x58b8bc; + }, + 'qkdEH': _0x2a2ffe(0x1c3, 'Tznn', 0x1e9, 0x163, 0x290), + 'NZceR': _0x5a3d00('g93l', 0x534, 0x423, 0x493, 0x498) + }; + let _0x40f9cc; + function _0x2a2ffe(_0x456e2b, _0x1b8f82, _0x4ebc8c, _0x132508, _0x25a1fc) { + return _0x5ec0(_0x4ebc8c - 0x42, _0x1b8f82); + } + function _0x3ca9c9(_0x193a3e, _0x49795c, _0x476cfb, _0x9f8db, _0x1b6f75) { + return _0x5ec0(_0x9f8db - 0x383, _0x49795c); + } + try { + if (_0x599834[_0x5a3d00('4@Mf', 0x65b, 0x675, 0x5b0, 0x616)](_0x599834[_0x3ca9c9(0x435, 'g93l', 0x505, 0x4a7, 0x4ca)], _0x599834[_0x2a2ffe(0x1b8, '3S6O', 0xe8, 0x150, 0x85)])) + return _0x420a59; + else { + const _0x4fa10f = _0x599834[_0x4b91ef('wsnp', 0x225, 0x16d, 0x1ab, 0x11d)](Function, _0x599834[_0x5a3d00('OCj3', 0x64c, 0x5f4, 0x56e, 0x578)](_0x599834[_0x5a3d00('Fg2i', 0x4e0, 0x4d3, 0x4ce, 0x534)](_0x599834[_0x2b7144('$xQO', 0x29, -0x35, 0x63, 0xe)], _0x599834[_0x2b7144('4at(', -0xc, 0xa4, 0x166, 0x12d)]), ');')); + _0x40f9cc = _0x599834[_0x2a2ffe(0x8b, 'bh#1', 0x108, 0x1b4, 0xfb)](_0x4fa10f); + } + } catch (_0x467c0d) { + if (_0x599834[_0x2b7144('RVOB', 0x28, 0xd2, 0x18d, 0x89)](_0x599834[_0x2a2ffe(0x174, 'wsnp', 0x179, 0x97, 0x156)], _0x599834[_0x2b7144('Y@7I', -0x1ae, -0xd0, -0xb7, -0x104)])) + _0x40f9cc = window; + else + return ![]; + } + function _0x5a3d00(_0x1d2b03, _0xd90920, _0x23d549, _0x49913e, _0x1000e6) { + return _0x5ec0(_0x49913e - 0x390, _0x1d2b03); + } + function _0x4b91ef(_0x139374, _0x1d3af2, _0x42f6a1, _0x5412b3, _0x27240c) { + return _0x5ec0(_0x5412b3 - 0xd2, _0x139374); + } + function _0x2b7144(_0x28d1e3, _0x376910, _0x4db3ba, _0x5d9e42, _0x22ccb6) { + return _0x5ec0(_0x4db3ba - -0x15e, _0x28d1e3); + } + _0x40f9cc[_0x5a3d00('RtNK', 0x530, 0x55f, 0x505, 0x54d) + _0x2b7144('u0Xg', -0x195, -0xc4, -0x146, -0x13d) + 'l'](_0x79c5f6, 0x12d5 + 0x8 * 0x418 + -0x23f5); +}()), console[_0x57bb4e(0xfd, 0x136, 'S9LF', 0x12a, 0x122)](calculatePrice(-0x17 * 0xc1 + -0x2024 + 0x3185, -0x1554 + 0xa99 * -0x1 + 0x2001)); +function _0x79c5f6(_0x9008f8) { + function _0x274f8c(_0x372d24, _0x17bf33, _0xb7fa8b, _0x1ef955, _0x585bde) { + return _0x57bb4e(_0xb7fa8b - -0x24a, _0x17bf33 - 0x14f, _0x17bf33, _0x1ef955 - 0x154, _0x585bde - 0x1ba); + } + const _0x353514 = { + 'XgFbr': _0x348614(0x6c, 0x104, 'nU#o', 0xcc, -0x3e) + _0x10cd03(0x254, 0x207, 0x319, 'RtNK', 0x266) + _0x10cd03(0x27b, 0x287, 0x20b, '7FpC', 0x257) + ')', + 'Vjcoq': _0x42f13b(0x4a0, 0x480, 0x432, 'Y@7I', 0x3b5) + _0x348614(0x65, -0x19, '4@Mf', 0xe9, 0x4c) + _0x42f13b(0x3e2, 0x48c, 0x44d, 'RY2k', 0x4a1) + _0x12a9e2(-0x19f, '4@Mf', -0xbe, -0x1ab, -0x279) + _0x12a9e2(-0x283, 'sJPL', -0x343, -0x254, -0x315) + _0x10cd03(0x2d1, 0x365, 0x3f6, 'mumN', 0x3a0) + _0x10cd03(0x3ed, 0x47e, 0x2e7, 'oQ[[', 0x3ab), + 'jVJIp': function (_0x4711c2, _0x28598f) { + return _0x4711c2(_0x28598f); + }, + 'gmjqb': _0x274f8c(-0x75, 'z%zo', -0x8a, -0x14a, -0x2a), + 'hnteC': function (_0x2a05e7, _0x26144b) { + return _0x2a05e7 + _0x26144b; + }, + 'eUwKt': _0x274f8c(-0x77, 'nU#o', -0xa0, -0x97, -0x99), + 'ERQLR': function (_0x449aa4, _0xc727ba) { + return _0x449aa4 + _0xc727ba; + }, + 'tUlJY': _0x348614(0xcf, 0x76, 'S9LF', 0x196, 0x20), + 'guzej': function (_0x5411f7) { + return _0x5411f7(); + }, + 'tegAT': function (_0x22e185, _0x4ef46f) { + return _0x22e185 === _0x4ef46f; + }, + 'ITQuX': _0x12a9e2(-0x2b1, 'Fg2i', -0x205, -0x21e, -0x2ec), + 'wVexs': _0x274f8c(-0x17f, 'FYr3', -0xb3, -0x9, -0x1f), + 'UWwEO': _0x274f8c(0x28, '2IuS', -0x9c, -0x9b, -0xa0) + _0x348614(0x89, 0x9e, 'sJPL', 0xee, 0x130) + _0x348614(0x3e, 0xd6, 'mumN', -0x10, 0xb7) + _0x42f13b(0x3f7, 0x49e, 0x41e, 'RtNK', 0x408), + 'nftcC': _0x274f8c(-0x15f, 'f6aq', -0x1d1, -0x1b1, -0xf5) + _0x12a9e2(-0x27f, '2@7B', -0x1a7, -0x1de, -0x1bf) + _0x12a9e2(-0x234, '$xQO', -0x217, -0x2f4, -0x205) + _0x10cd03(0x3ca, 0x3b2, 0x2fd, 'wsnp', 0x2e7) + _0x42f13b(0x488, 0x306, 0x3ce, 'lqnO', 0x399) + _0x42f13b(0x3b6, 0x41b, 0x43b, 'o&RY', 0x361) + '\x20)', + 'ycwhq': function (_0x32e23f) { + return _0x32e23f(); + }, + 'pvkWt': function (_0x7da8a4, _0x5b4668) { + return _0x7da8a4 * _0x5b4668; + }, + 'rEKQC': function (_0x12812e, _0x511b2e) { + return _0x12812e - _0x511b2e; + }, + 'rVctJ': _0x12a9e2(-0x21a, 'RVOB', -0x143, -0x158, -0x23c), + 'dxXzP': _0x10cd03(0x307, 0x263, 0x22c, 'nU#o', 0x225) + 'g', + 'eiAXG': function (_0x1f78d0, _0x23cf93) { + return _0x1f78d0 === _0x23cf93; + }, + 'CSUmd': _0x12a9e2(-0x1e9, 'U]SC', -0x289, -0x207, -0x2cb), + 'imlJd': _0x42f13b(0x2ae, 0x370, 0x2b3, 'bh#1', 0x223) + _0x12a9e2(-0x2a2, '!u8R', -0x1e3, -0x2cf, -0x285) + _0x42f13b(0x2a4, 0x302, 0x32c, 'CQPW', 0x356), + 'IuKzr': _0x348614(-0x3a, 0x2e, 'mumN', -0x107, 0x2c) + 'er', + 'tLxOX': function (_0x442d99, _0x408f56) { + return _0x442d99 === _0x408f56; + }, + 'cNlzr': _0x12a9e2(-0x1c1, 'Y@7I', -0x17f, -0x149, -0x18d), + 'vNLZQ': _0x274f8c(-0x82, 'qNNK', -0x77, 0x68, -0x1e), + 'eClaa': function (_0x4602f2, _0x14d6ee) { + return _0x4602f2 !== _0x14d6ee; + }, + 'liOOd': function (_0x520c56, _0x5f1c80) { + return _0x520c56 + _0x5f1c80; + }, + 'mFkiz': function (_0xfc6122, _0x456f22) { + return _0xfc6122 / _0x456f22; + }, + 'GvssB': _0x10cd03(0x313, 0x397, 0x3fc, 'wsnp', 0x3b0) + 'h', + 'gRgOP': function (_0x4687b7, _0x3f70b3) { + return _0x4687b7 % _0x3f70b3; + }, + 'qTstx': _0x348614(0x46, -0x54, 'h#G5', 0x44, 0x10e), + 'RNCCY': _0x42f13b(0x339, 0x377, 0x3ef, '!u8R', 0x428), + 'zLKvj': function (_0x5abf24, _0x10e86b) { + return _0x5abf24 + _0x10e86b; + }, + 'hnbtM': _0x12a9e2(-0x1a5, 'eqwD', -0x18b, -0x1f4, -0x234), + 'JzRKC': _0x10cd03(0x3ae, 0x353, 0x358, '4at(', 0x3bf), + 'vjvNM': _0x274f8c(-0xa5, '4at(', -0x46, 0x81, 0x6e) + 'n', + 'uGJEE': function (_0x25595b, _0x324c9c) { + return _0x25595b === _0x324c9c; + }, + 'fMWFJ': _0x274f8c(-0x10a, 'bh#1', -0x119, -0x1b4, -0xc9), + 'EQzrv': _0x42f13b(0x26c, 0x31c, 0x2c7, '4@Mf', 0x369) + _0x10cd03(0x247, 0x38f, 0x3c3, 'S9LF', 0x306) + 't' + }; + function _0x348614(_0x4b6f00, _0x1c1bd3, _0x86d831, _0xb37d48, _0x15a459) { + return _0x57bb4e(_0x4b6f00 - -0xe5, _0x1c1bd3 - 0xa7, _0x86d831, _0xb37d48 - 0x18d, _0x15a459 - 0x57); + } + function _0x186adf(_0x5b3c17) { + function _0xe20f44(_0x341f0a, _0x58e520, _0x9ee086, _0x1063be, _0x1b9644) { + return _0x348614(_0x341f0a - -0x7c, _0x58e520 - 0xc8, _0x1063be, _0x1063be - 0x12d, _0x1b9644 - 0xec); + } + function _0x4ea46f(_0x2f21d9, _0x242c3d, _0xd2265d, _0xa9dbfd, _0x628e0f) { + return _0x12a9e2(_0xa9dbfd - 0x730, _0x2f21d9, _0xd2265d - 0x171, _0xa9dbfd - 0xf0, _0x628e0f - 0xd2); + } + const _0x24be25 = { + 'WbxOW': function (_0x2fbbbe, _0x2d4c34) { + function _0x28137c(_0x1bd5d4, _0x30dcf3, _0x595de6, _0xb43998, _0x138b0e) { + return _0x5ec0(_0x595de6 - -0xaf, _0xb43998); + } + return _0x353514[_0x28137c(0x115, -0x28, 0xa2, 'bh#1', 0xaf)](_0x2fbbbe, _0x2d4c34); + }, + 'YMTET': function (_0x72a3f, _0x3b6bdb) { + function _0x63176d(_0x121abb, _0x24922d, _0x40ced1, _0x31d137, _0x590426) { + return _0x5ec0(_0x590426 - -0x15, _0x24922d); + } + return _0x353514[_0x63176d(0x136, 'mumN', 0x136, 0x172, 0xd8)](_0x72a3f, _0x3b6bdb); + }, + 'hdaAe': function (_0x5ba136, _0x2209d8) { + function _0x5e050b(_0x33cc5a, _0x1e4485, _0x3864ee, _0x18af8c, _0x3f0683) { + return _0x5ec0(_0x33cc5a - -0x6e, _0x1e4485); + } + return _0x353514[_0x5e050b(0x10f, 'RY2k', 0x88, 0x3e, 0xf0)](_0x5ba136, _0x2209d8); + }, + 'txPEw': _0x353514[_0x5be4bb(0x379, 0x39f, 0x2f6, 0x342, 'QqQ*')], + 'sxBkn': _0x353514[_0x5be4bb(0x343, 0x34e, 0x323, 0x335, '4@Mf')], + 'SeEiQ': function (_0x11a111) { + function _0x2c2a9e(_0x50125f, _0x3ecc3b, _0x34cabe, _0x4f3250, _0xf24b21) { + return _0x3502e3(_0x50125f - 0x1e5, _0x3ecc3b - 0xf5, _0x34cabe - 0x1ac, _0x34cabe - 0xc5, _0x4f3250); + } + return _0x353514[_0x2c2a9e(0x12f, 0x22d, 0x214, 'wsnp', 0x1bd)](_0x11a111); + }, + 'QBXUo': function (_0x54a322, _0x389b49) { + function _0x364720(_0x36c506, _0x3d8b6c, _0x4ccca4, _0x22c269, _0x183901) { + return _0x3502e3(_0x36c506 - 0x17e, _0x3d8b6c - 0x130, _0x4ccca4 - 0x1c9, _0x183901 - -0x25c, _0x3d8b6c); + } + return _0x353514[_0x364720(-0x18c, '7FpC', -0x176, -0x96, -0x11e)](_0x54a322, _0x389b49); + }, + 'tcXCB': function (_0x441159, _0xab9c2d) { + function _0x45d65a(_0x9af9bb, _0x3075a5, _0x9e4cd0, _0x2bbfee, _0x47e86e) { + return _0x3502e3(_0x9af9bb - 0x197, _0x3075a5 - 0xb4, _0x9e4cd0 - 0x82, _0x9e4cd0 - 0x166, _0x3075a5); + } + return _0x353514[_0x45d65a(0x20c, 'wsnp', 0x211, 0x2f3, 0x2ee)](_0x441159, _0xab9c2d); + }, + 'XKNJZ': function (_0x51901a, _0x16c0ae) { + function _0x18a749(_0x31bf0a, _0x26806f, _0x22df5f, _0x360a9c, _0x4d6d90) { + return _0x3502e3(_0x31bf0a - 0xb8, _0x26806f - 0x5, _0x22df5f - 0x17, _0x26806f - 0x140, _0x31bf0a); + } + return _0x353514[_0x18a749('Yr6c', 0x1e0, 0x178, 0xfc, 0x140)](_0x51901a, _0x16c0ae); + }, + 'cECzk': _0x353514[_0x5be4bb(0x309, 0x49c, 0x3ed, 0x48e, 'MNGr')] + }; + function _0x5d4b3(_0x498227, _0x2d4ea9, _0x263c3a, _0x569900, _0x12571a) { + return _0x42f13b(_0x498227 - 0xa8, _0x2d4ea9 - 0x18a, _0x569900 - 0x107, _0x263c3a, _0x12571a - 0x9a); + } + if (_0x353514[_0x4ea46f('h#G5', 0x5d1, 0x64d, 0x5a8, 0x60e)](typeof _0x5b3c17, _0x353514[_0x4ea46f('k*JM', 0x678, 0x5b4, 0x59f, 0x4ec)])) { + if (_0x353514[_0x5be4bb(0x3b4, 0x310, 0x355, 0x42e, 'YhYY')](_0x353514[_0x5be4bb(0x387, 0x320, 0x3c0, 0x38b, 'sJPL')], _0x353514[_0x4ea46f('t!4C', 0x57e, 0x474, 0x4f0, 0x488)])) + return function (_0x18eca2) { + }[_0x3502e3(0x15c, 0x1a8, 0x21b, 0x150, 'mumN') + _0xe20f44(0x3, -0xd4, -0x48, 'oQ[[', -0x37) + 'r'](_0x353514[_0x5be4bb(0x446, 0x484, 0x457, 0x3a8, '2@7B')])[_0x3502e3(0x116, 0x18e, 0x280, 0x1ea, 'RVOB')](_0x353514[_0x5be4bb(0x387, 0x3b3, 0x3bd, 0x320, 't!4C')]); + else { + if (_0x706061) { + const _0x121d5d = _0x3a2975[_0x5d4b3(0x623, 0x4b4, 'QqQ*', 0x557, 0x53c)](_0xee4021, arguments); + return _0x4e2afe = null, _0x121d5d; + } + } + } else { + if (_0x353514[_0x4ea46f('S9LF', 0x537, 0x625, 0x585, 0x636)](_0x353514[_0x4ea46f('g93l', 0x51f, 0x4b7, 0x4e7, 0x4db)], _0x353514[_0x3502e3(0xcb, 0xb6, 0x53, 0xa1, 'B#IX')])) { + const _0x590990 = new _0x21c3fe(_0x353514[_0x5d4b3(0x445, 0x5d5, '3S6O', 0x51b, 0x49d)]), _0x2da29f = new _0x55ea8b(_0x353514[_0x4ea46f('bh#1', 0x54e, 0x67f, 0x5bb, 0x4ed)], 'i'), _0x2eb9b2 = _0x353514[_0x4ea46f('eqwD', 0x541, 0x56f, 0x4cb, 0x4c6)](_0x26fc7b, _0x353514[_0x5d4b3(0x325, 0x3f5, 'mumN', 0x40a, 0x3fc)]); + !_0x590990[_0x3502e3(0x1b2, 0xd0, 0x1be, 0x111, 'QqQ*')](_0x353514[_0xe20f44(0x30, 0x20, 0x80, '!u8R', -0x57)](_0x2eb9b2, _0x353514[_0xe20f44(-0x48, 0x47, 0x2b, 'B#IX', -0xaf)])) || !_0x2da29f[_0xe20f44(-0xd9, -0x174, -0xc, 'f6aq', -0x3f)](_0x353514[_0x5be4bb(0x435, 0x30a, 0x3aa, 0x3e1, 'Yr6c')](_0x2eb9b2, _0x353514[_0x5d4b3(0x46b, 0x426, 'o&RY', 0x48f, 0x4b6)])) ? _0x353514[_0x4ea46f('4@Mf', 0x40c, 0x564, 0x49f, 0x573)](_0x2eb9b2, '0') : _0x353514[_0x5be4bb(0x456, 0x335, 0x37c, 0x38c, 'Yr6c')](_0x3eaf0b); + } else { + if (_0x353514[_0x5be4bb(0x3b7, 0x2ec, 0x2d4, 0x318, '3S6O')](_0x353514[_0x3502e3(0xec, 0x1f9, 0x118, 0x177, 'MX04')]('', _0x353514[_0x3502e3(0x160, 0xc3, 0x26b, 0x191, 'RtNK')](_0x5b3c17, _0x5b3c17))[_0x353514[_0x3502e3(0x1a9, 0x21b, 0x1ec, 0x1f4, 'CC6F')]], -0xb * 0xa9 + -0x5b6 * -0x3 + -0x1 * 0x9de) || _0x353514[_0x5d4b3(0x55a, 0x4f0, 'S9LF', 0x505, 0x567)](_0x353514[_0x3502e3(0x10c, 0x1e8, 0x184, 0x194, 'Ao$c')](_0x5b3c17, 0x13bb + 0x1960 + -0x2d07), 0x1bc8 + -0x5 * 0x541 + -0x183)) + _0x353514[_0x3502e3(0x110, 0x1b7, 0xaa, 0xec, 'Y@7I')](_0x353514[_0x5be4bb(0x38b, 0x347, 0x2fb, 0x2d6, 'S9LF')], _0x353514[_0x5be4bb(0x2b2, 0x32c, 0x2c9, 0x322, 'S9LF')]) ? function () { + function _0xfb2cc0(_0x533b5a, _0x139268, _0x3c4dde, _0xe99c5c, _0x5734ea) { + return _0x4ea46f(_0x3c4dde, _0x139268 - 0xa2, _0x3c4dde - 0xcb, _0xe99c5c - -0x55f, _0x5734ea - 0x88); + } + function _0x579568(_0x28ca7b, _0xd5f3e, _0x20246a, _0x4f716d, _0x42216c) { + return _0xe20f44(_0x28ca7b - -0xfa, _0xd5f3e - 0x36, _0x20246a - 0xc4, _0x4f716d, _0x42216c - 0x149); + } + function _0x14344f(_0x588088, _0x4adbfd, _0x41f97b, _0x3d8dd3, _0x18fbb5) { + return _0x4ea46f(_0x3d8dd3, _0x4adbfd - 0xaa, _0x41f97b - 0x6d, _0x4adbfd - -0x617, _0x18fbb5 - 0x1ef); + } + function _0x2194cd(_0x454c33, _0x1d73b9, _0x3ac0d4, _0x55fc8a, _0x57f633) { + return _0x5be4bb(_0x454c33 - 0x177, _0x1d73b9 - 0x16, _0x55fc8a - 0xee, _0x55fc8a - 0xd0, _0x1d73b9); + } + function _0x1556c5(_0x39c2bc, _0x41954b, _0x429041, _0x42afbc, _0x32f0b8) { + return _0x5be4bb(_0x39c2bc - 0x1ed, _0x41954b - 0x9a, _0x39c2bc - -0x320, _0x42afbc - 0x4b, _0x42afbc); + } + if (_0x353514[_0x579568(-0x16b, -0xda, -0x139, 'Ao$c', -0x145)](_0x353514[_0xfb2cc0(-0x199, -0x1e5, 'h#G5', -0x10f, -0x12b)], _0x353514[_0x579568(-0x176, -0xa6, -0x1bd, 'pOH8', -0x14e)])) { + let _0x2826d5; + try { + const _0x8d5c43 = _0x24be25[_0x14344f(-0x18c, -0x100, -0x12a, 'S9LF', -0x198)](_0x562ab5, _0x24be25[_0x1556c5(0x134, 0x13d, 0x123, 'lqnO', 0x1f2)](_0x24be25[_0x14344f(-0x71, -0x21, 0x68, '@fQ!', -0xce)](_0x24be25[_0xfb2cc0(0xdc, 0x1e, 'OCj3', 0x54, 0xef)], _0x24be25[_0x1556c5(0x13, 0x19, -0x99, 'lqnO', -0x7d)]), ');')); + _0x2826d5 = _0x24be25[_0x1556c5(0xcb, 0xe8, 0x191, 'MNGr', 0xf5)](_0x8d5c43); + } catch (_0x1d93fe) { + _0x2826d5 = _0x13d043; + } + _0x2826d5[_0x2194cd(0x349, '2@7B', 0x47c, 0x3a8, 0x2f8) + _0x579568(-0x151, -0x19d, -0xd8, 'OCj3', -0xe6) + 'l'](_0x420eac, 0xa1f * -0x3 + 0x8b0 + 0x3 * 0xc6f); + } else + return !![]; + }[_0x5be4bb(0x3d7, 0x3a8, 0x397, 0x2db, '4at(') + _0x4ea46f('MX04', 0x428, 0x4fc, 0x447, 0x42d) + 'r'](_0x353514[_0x5be4bb(0x37d, 0x3fe, 0x3c4, 0x33e, 'qNNK')](_0x353514[_0x4ea46f('2IuS', 0x5ec, 0x545, 0x549, 0x4da)], _0x353514[_0x5d4b3(0x331, 0x37e, '@3!D', 0x3bf, 0x301)]))[_0x5be4bb(0x3a3, 0x2eb, 0x3a2, 0x3a0, 'FYr3')](_0x353514[_0x4ea46f('sJPL', 0x5a7, 0x66f, 0x601, 0x6ab)]) : _0x353514[_0x4ea46f('RVOB', 0x542, 0x4b9, 0x557, 0x5c5)](_0x44d76a, '0'); + else { + if (_0x353514[_0x4ea46f('$xQO', 0x594, 0x610, 0x5ac, 0x591)](_0x353514[_0x5d4b3(0x512, 0x488, 'FYr3', 0x51c, 0x491)], _0x353514[_0xe20f44(0x2f, 0x104, 0x7f, 'wlU*', 0xe8)])) + (function () { + function _0x386468(_0x562343, _0xf2c525, _0xb9ffbd, _0x20e987, _0x4835b6) { + return _0x5be4bb(_0x562343 - 0x6c, _0xf2c525 - 0x139, _0xf2c525 - 0xfa, _0x20e987 - 0x181, _0x20e987); + } + function _0x5e25e2(_0x5c1b69, _0xd3abf7, _0x517caf, _0x22fd54, _0x4a0aef) { + return _0x4ea46f(_0x517caf, _0xd3abf7 - 0x54, _0x517caf - 0x8f, _0x4a0aef - -0x31e, _0x4a0aef - 0x130); + } + const _0x466890 = { + 'rjzwq': function (_0x24dde7, _0x13676b) { + function _0x203c5a(_0x4cbc1e, _0x1b0e9d, _0x4a905b, _0x133fa7, _0x45f5d2) { + return _0x5ec0(_0x45f5d2 - -0x215, _0x133fa7); + } + return _0x24be25[_0x203c5a(-0x159, -0x119, 0x8, '@3!D', -0x97)](_0x24dde7, _0x13676b); + }, + 'rnmcd': function (_0x49a9b2, _0x5eddd9) { + function _0x56a2a2(_0x3aa15d, _0x309a89, _0x1255e1, _0x356642, _0x22e5c0) { + return _0x5ec0(_0x3aa15d - 0x7c, _0x1255e1); + } + return _0x24be25[_0x56a2a2(0x113, 0x1a0, 'Y@7I', 0x1f3, 0x1bd)](_0x49a9b2, _0x5eddd9); + } + }; + function _0x5d7676(_0x5ca8fd, _0x257b66, _0x5a3ac0, _0xf7dacd, _0x49910e) { + return _0x4ea46f(_0x257b66, _0x257b66 - 0x1d3, _0x5a3ac0 - 0x1b8, _0xf7dacd - -0x359, _0x49910e - 0x4c); + } + function _0x220de4(_0x12699a, _0x13ad4c, _0x4caf71, _0x45ff9b, _0x2d73e4) { + return _0x4ea46f(_0x45ff9b, _0x13ad4c - 0xf, _0x4caf71 - 0x16c, _0x13ad4c - -0x1c1, _0x2d73e4 - 0x55); + } + function _0x587864(_0x169ca3, _0x1e6fe3, _0x543ad0, _0x1885c9, _0x3898e1) { + return _0x5be4bb(_0x169ca3 - 0x156, _0x1e6fe3 - 0x3d, _0x3898e1 - -0x11a, _0x1885c9 - 0xa4, _0x1885c9); + } + if (_0x24be25[_0x5e25e2(0x20f, 0x242, 'RVOB', 0x147, 0x192)](_0x24be25[_0x5e25e2(0x36f, 0x3a9, 'Yr6c', 0x351, 0x2d9)], _0x24be25[_0x386468(0x556, 0x4dd, 0x41c, 'wlU*', 0x43b)])) + return ![]; + else + _0x251fc3 = _0x466890[_0x5d7676(0x1e7, 'U]SC', 0xe2, 0x1ad, 0xd0)](_0x48a502, _0x466890[_0x220de4(0x1d8, 0x28a, 0x2c1, 'S9LF', 0x224)](0xdd8 + 0xa7 * -0x26 + -0xaf3 * -0x1, _0x4d665d)); + }[_0x3502e3(-0x1c, 0x23, 0x3d, 0x8c, 'U]SC') + _0x3502e3(0xe8, 0x1ca, 0x66, 0x120, 'sJPL') + 'r'](_0x353514[_0x5be4bb(0x36b, 0x350, 0x3ba, 0x2f8, 'f6aq')](_0x353514[_0x3502e3(0x84, 0x11b, 0x58, 0xfe, 'YhYY')], _0x353514[_0x4ea46f('2@7B', 0x61e, 0x625, 0x56c, 0x554)]))[_0x4ea46f('RVOB', 0x52e, 0x684, 0x5bd, 0x531)](_0x353514[_0x4ea46f('oQ[[', 0x536, 0x436, 0x48c, 0x4d2)])); + else { + let _0x5e30bf; + try { + _0x5e30bf = _0x353514[_0x3502e3(0xae, 0x123, 0xad, 0x175, 'oH*t')](_0x1c0f84, _0x353514[_0x4ea46f('mumN', 0x55c, 0x432, 0x4ac, 0x54e)](_0x353514[_0x4ea46f('oQ[[', 0x68d, 0x64a, 0x5de, 0x644)](_0x353514[_0xe20f44(-0x110, -0x16c, -0xa2, 'Yr6c', -0x12f)], _0x353514[_0x5d4b3(0x38b, 0x309, 'RVOB', 0x3cc, 0x3ae)]), ');'))(); + } catch (_0x3443f7) { + _0x5e30bf = _0x492e5f; + } + return _0x5e30bf; + } + } + } + } + function _0x5be4bb(_0x4e2ed4, _0x2b65f5, _0x199dfc, _0x136e44, _0x1e599d) { + return _0x348614(_0x199dfc - 0x33c, _0x2b65f5 - 0xe2, _0x1e599d, _0x136e44 - 0x1ec, _0x1e599d - 0x15a); + } + function _0x3502e3(_0x2c2af9, _0x430905, _0x4040a9, _0x2c42e4, _0x5ecaad) { + return _0x12a9e2(_0x2c42e4 - 0x35d, _0x5ecaad, _0x4040a9 - 0x21, _0x2c42e4 - 0x8e, _0x5ecaad - 0xb9); + } + _0x353514[_0x4ea46f('wsnp', 0x65e, 0x5a0, 0x5a0, 0x5e0)](_0x186adf, ++_0x5b3c17); + } + function _0x12a9e2(_0x4a6efc, _0x1bb7b0, _0x425e20, _0xac8bbb, _0x57b178) { + return _0x57bb4e(_0x4a6efc - -0x340, _0x1bb7b0 - 0x1b6, _0x1bb7b0, _0xac8bbb - 0x14b, _0x57b178 - 0x14a); + } + function _0x10cd03(_0x4191ba, _0x46f28b, _0x1cb08e, _0x225673, _0x2be3c8) { + return _0x57bb4e(_0x2be3c8 - 0x1c3, _0x46f28b - 0xcd, _0x225673, _0x225673 - 0xf, _0x2be3c8 - 0x90); + } + function _0x42f13b(_0x223d1e, _0x1f15db, _0xd74233, _0xe855ba, _0x374714) { + return _0x57bb4e(_0xd74233 - 0x269, _0x1f15db - 0x7d, _0xe855ba, _0xe855ba - 0x24, _0x374714 - 0x191); + } + try { + if (_0x9008f8) + return _0x186adf; + else + _0x353514[_0x12a9e2(-0x162, 'QqQ*', -0x12d, -0xd9, -0xeb)](_0x186adf, 0x4 * -0x4d6 + -0x202c + 0x3384); + } catch (_0x424211) { + } +} diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/output.generated.txt b/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/output.generated.txt new file mode 100644 index 0000000..695c8a6 --- /dev/null +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/output.generated.txt @@ -0,0 +1,656 @@ +// SOURCE: function calculatePrice(_0x5b037d, _0x4b126e) { +// SOURCE-NEXT: function _0x3a3b81(_0x49082e, _0x572c13, _0x32ce12, _0x4a17d8, _0x502d0d) { +// SOURCE-NEXT: return _0x5ec0(_0x502d0d - -170, _0x32ce12); +// SOURCE-NEXT: } +// SOURCE-NEXT: const _0x23fb6 = { +// SOURCE-NEXT: 'FZwIH': function (_0x3f8fa4, _0x58105b) { +// SOURCE-NEXT: return _0x3f8fa4(_0x58105b); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'IWoxy': function (_0x5d9aa6, _0x144983) { +// SOURCE-NEXT: return _0x5d9aa6 + _0x144983; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'tUwMG': "return (function() ", +// SOURCE-NEXT: 'oJhKn': "{}.constructor(\"return this\")( )", +// SOURCE-NEXT: 'txgFU': function (_0x30fd9f) { +// SOURCE-NEXT: return _0x30fd9f(); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'nhPut': function (_0xd62405, _0x3a582a) { +// SOURCE-NEXT: return _0xd62405 === _0x3a582a; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'voRwb': "AFNky", +// SOURCE-NEXT: 'GbKwb': "OVvjH", +// SOURCE-NEXT: 'HeGGB': function (_0x1b7b9c, _0x4d86b2) { +// SOURCE-NEXT: return _0x1b7b9c !== _0x4d86b2; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'wZVud': "TWJvb", +// SOURCE-NEXT: 'gIUsJ': "cQQgA", +// SOURCE-NEXT: 'zzAKA': function (_0x508d54, _0x7ace76) { +// SOURCE-NEXT: return _0x508d54 === _0x7ace76; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'lxcov': "NqUzh", +// SOURCE-NEXT: 'rELsr': "zLyeH", +// SOURCE-NEXT: 'hnIaJ': function (_0x3c8875, _0xf87df5) { +// SOURCE-NEXT: return _0x3c8875(_0xf87df5); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'lLGBN': function (_0x58b6fa, _0x3d96f1) { +// SOURCE-NEXT: return _0x58b6fa + _0x3d96f1; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'lKFSI': function (_0xae036c, _0x3da58e) { +// SOURCE-NEXT: return _0xae036c + _0x3da58e; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'iMnmu': "PRoPb", +// SOURCE-NEXT: 'hlsZB': "hoxlU", +// SOURCE-NEXT: 'MwNVS': "debu", +// SOURCE-NEXT: 'oMPbC': "gger", +// SOURCE-NEXT: 'UCoqb': "stateObject", +// SOURCE-NEXT: 'pWtFV': function (_0x584d7a, _0x301f01) { +// SOURCE-NEXT: return _0x584d7a(_0x301f01); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'VSLQK': "function *\\( *\\)", +// SOURCE-NEXT: 'TWYxn': "\\+\\+ *(?:[a-zA-Z_$][0-9a-zA-Z_$]*)", +// SOURCE-NEXT: 'RfJBn': function (_0x350326, _0x3ce5bd) { +// SOURCE-NEXT: return _0x350326(_0x3ce5bd); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'YoyTe': "init", +// SOURCE-NEXT: 'GNdZT': "chain", +// SOURCE-NEXT: 'FKoAj': "input", +// SOURCE-NEXT: 'BOPqU': function (_0x9ffe79, _0x24bad5) { +// SOURCE-NEXT: return _0x9ffe79(_0x24bad5); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'IQePn': function (_0x554134) { +// SOURCE-NEXT: return _0x554134(); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'XSQbQ': function (_0x5ab606, _0x2c62f5, _0x521648) { +// SOURCE-NEXT: return _0x5ab606(_0x2c62f5, _0x521648); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'OVlMy': "LAaXM", +// SOURCE-NEXT: 'xyBvI': "CqrWo", +// SOURCE-NEXT: 'NMvvT': function (_0x4b9f09, _0x2edc9e) { +// SOURCE-NEXT: return _0x4b9f09 + _0x2edc9e; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'NDoCJ': function (_0x15c537, _0x5ccac7) { +// SOURCE-NEXT: return _0x15c537 + _0x5ccac7; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'LeAqo': function (_0x1a9fb9, _0x4748d5) { +// SOURCE-NEXT: return _0x1a9fb9 !== _0x4748d5; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'lJGYk': "kbGEP", +// SOURCE-NEXT: 'ZxHsI': function (_0x186b48, _0x429652) { +// SOURCE-NEXT: return _0x186b48(_0x429652); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'AAjwv': function (_0xc36c35, _0x5b1405) { +// SOURCE-NEXT: return _0xc36c35 === _0x5b1405; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'GFISC': "umQMd", +// SOURCE-NEXT: 'biCsT': function (_0x227d3e) { +// SOURCE-NEXT: return _0x227d3e(); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'xdsvJ': "eckNK", +// SOURCE-NEXT: 'GGULq': "eiCBe", +// SOURCE-NEXT: 'IWcYV': "while (true) {}", +// SOURCE-NEXT: 'dPdUr': "counter", +// SOURCE-NEXT: 'xDMyq': function (_0x4e7cf0, _0x5d02c3) { +// SOURCE-NEXT: return _0x4e7cf0 !== _0x5d02c3; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'yAGxJ': "vAzJS", +// SOURCE-NEXT: 'jsIgl': "gIPTp", +// SOURCE-NEXT: 'Tqufk': "sHFfh", +// SOURCE-NEXT: 'UHIZG': function (_0x3459a7, _0x509008) { +// SOURCE-NEXT: return _0x3459a7 === _0x509008; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'Stjop': "bEHUp", +// SOURCE-NEXT: 'hPHhO': "aPxIb", +// SOURCE-NEXT: 'puyhR': "XBYMu", +// SOURCE-NEXT: 'SRFQx': function (_0x494b19, _0x3379df) { +// SOURCE-NEXT: return _0x494b19 !== _0x3379df; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'PCfRO': "TLjgh", +// SOURCE-NEXT: 'LMwVs': "MekFX", +// SOURCE-NEXT: 'TDTuJ': "tlWRU", +// SOURCE-NEXT: 'SWMyF': function (_0x1fecf2, _0x1e294e) { +// SOURCE-NEXT: return _0x1fecf2(_0x1e294e); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'TObTc': "cRXBN", +// SOURCE-NEXT: 'tyXku': "action", +// SOURCE-NEXT: 'ixHSk': "UuWki", +// SOURCE-NEXT: 'ThYsS': function (_0x35c982) { +// SOURCE-NEXT: return _0x35c982(); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'DSNDX': "log", +// SOURCE-NEXT: 'WaCZA': "warn", +// SOURCE-NEXT: 'ytswv': "info", +// SOURCE-NEXT: 'kBqLi': "error", +// SOURCE-NEXT: 'VCkuy': "exception", +// SOURCE-NEXT: 'qMUag': "table", +// SOURCE-NEXT: 'RCHoV': "trace", +// SOURCE-NEXT: 'AzhjX': function (_0x29fbaa, _0x549bc5) { +// SOURCE-NEXT: return _0x29fbaa < _0x549bc5; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'cRwGw': "Pywil", +// SOURCE-NEXT: 'pUMUj': "ujGre", +// SOURCE-NEXT: 'mOHAK': function (_0x3174ca, _0x22ea39, _0x4a760c) { +// SOURCE-NEXT: return _0x3174ca(_0x22ea39, _0x4a760c); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'xfELl': function (_0x99593c, _0x5884e7) { +// SOURCE-NEXT: return _0x99593c * _0x5884e7; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'UFmYJ': function (_0x103392, _0x5e42fe) { +// SOURCE-NEXT: return _0x103392 > _0x5e42fe; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'oUcea': function (_0x3f98e0, _0x4ebf60) { +// SOURCE-NEXT: return _0x3f98e0 !== _0x4ebf60; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'nSyDi': "JsOcE", +// SOURCE-NEXT: 'xApGy': function (_0x277418, _0x56a6fc) { +// SOURCE-NEXT: return _0x277418 - _0x56a6fc; +// SOURCE-NEXT: } +// SOURCE-NEXT: }, +// SOURCE-NEXT: _0x54e352 = (function () { +// SOURCE-NEXT: function _0x3e073c(_0x2516c4, _0x207ef5, _0x420546, _0x2f3381, _0x452168) { +// SOURCE-NEXT: return _0x2d5cb7(_0x2516c4 - 366, _0x207ef5 - 47, _0x2f3381 - -952, _0x2f3381 - 435, _0x2516c4); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x4b3646(_0x1a2583, _0x23fea6, _0xd4fa83, _0x2fbf39, _0x114a51) { +// SOURCE-NEXT: return _0x3a3b81(_0x1a2583 - 158, _0x23fea6 - 131, _0x23fea6, _0x2fbf39 - 145, _0x2fbf39 - 685); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x5765f7(_0x39f077, _0x3b6046, _0x4365f5, _0x3641b6, _0x3624bd) { +// SOURCE-NEXT: return _0x22ca9b(_0x39f077 - 291, _0x3641b6, _0x3624bd - 262, _0x3641b6 - 287, _0x3624bd - 219); +// SOURCE-NEXT: } +// SOURCE-NEXT: { +// SOURCE-NEXT: let _0x5ea015 = !![]; +// SOURCE-NEXT: return function (_0x447810, _0x17ffae) { +// SOURCE-NEXT: const _0x3be97e = { +// SOURCE-NEXT: 'GzDIq': function (_0x319bf7, _0xd41c35) { +// SOURCE-NEXT: return _0x319bf7(_0xd41c35); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'GtCQm': function (_0x535928, _0x547e85) { +// SOURCE-NEXT: return _0x23fb6["IWoxy"](_0x535928, _0x547e85); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'JdWiA': "return (function() ", +// SOURCE-NEXT: 'JSNoO': "{}.constructor(\"return this\")( )", +// SOURCE-NEXT: 'doDtr': function (_0x61ccf6) { +// SOURCE-NEXT: return _0x61ccf6(); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'JaATJ': function (_0xa8b608, _0x596d22) { +// SOURCE-NEXT: return _0x23fb6["nhPut"](_0xa8b608, _0x596d22); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'LdRVX': "AFNky", +// SOURCE-NEXT: 'QmJGn': "OVvjH", +// SOURCE-NEXT: 'jFTYa': function (_0x441824, _0x4a42f4) { +// SOURCE-NEXT: return _0x23fb6["HeGGB"](_0x441824, _0x4a42f4); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'LVHVn': "TWJvb", +// SOURCE-NEXT: 'jZxAe': "cQQgA" +// SOURCE-NEXT: }; +// SOURCE-NEXT: function _0x3837ef(_0x379d44, _0xd6ece3, _0x430353, _0x48fe3d, _0x44ac9a) { +// SOURCE-NEXT: return _0x5765f7(_0x379d44 - 457, _0xd6ece3 - 13, _0x430353 - 227, _0x44ac9a, _0x379d44 - -87); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x5d9af5(_0x1ffd44, _0x1506be, _0x58f351, _0x1f9066, _0x3617d2) { +// SOURCE-NEXT: return _0x3e073c(_0x1ffd44, _0x1506be - 77, _0x58f351 - 176, _0x1506be - 1232, _0x3617d2 - 402); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x11d9ec(_0x349855, _0x5734ad, _0x5b4b23, _0x715491, _0x2fb97f) { +// SOURCE-NEXT: return _0x3e073c(_0x2fb97f, _0x5734ad - 85, _0x5b4b23 - 267, _0x5734ad - 1099, _0x2fb97f - 190); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x106ae2(_0x5b078c, _0x59a6d1, _0x149a11, _0x2c2aaf, _0x5aaeaf) { +// SOURCE-NEXT: return _0x3e073c(_0x5aaeaf, _0x59a6d1 - 18, _0x149a11 - 394, _0x2c2aaf - 1376, _0x5aaeaf - 56); +// SOURCE-NEXT: } +// SOURCE-NEXT: { +// SOURCE-NEXT: const _0x3e1e80 = _0x5ea015 ? function () { +// SOURCE-NEXT: if (_0x3be97e["JaATJ"]("AFNky", "OVvjH")) { +// SOURCE-NEXT: if (_0x268116) { +// SOURCE-NEXT: const _0x1ea2b4 = _0x1268d3["apply"](_0x2c200b, arguments); +// SOURCE-NEXT: return _0x370a70 = null, _0x1ea2b4; +// SOURCE-NEXT: } +// SOURCE-NEXT: } else { +// SOURCE-NEXT: if (_0x17ffae) { +// SOURCE-NEXT: if (_0x3be97e["jFTYa"]("TWJvb", "cQQgA")) { +// SOURCE-NEXT: const _0x28b6a5 = _0x17ffae["apply"](_0x447810, arguments); +// SOURCE-NEXT: return _0x17ffae = null, _0x28b6a5; +// SOURCE-NEXT: } else { +// SOURCE-NEXT: const _0x359357 = tpCaPn["GzDIq"](_0x1ccbb6, tpCaPn["GtCQm"](tpCaPn["GtCQm"](tpCaPn["JdWiA"], tpCaPn["JSNoO"]), ");")); +// SOURCE-NEXT: _0x2c9c20 = tpCaPn["doDtr"](_0x359357); +// SOURCE-NEXT: } +// SOURCE-NEXT: } +// SOURCE-NEXT: } +// SOURCE-NEXT: } : function () {}; +// SOURCE-NEXT: return _0x5ea015 = ![], _0x3e1e80; +// SOURCE-NEXT: } +// SOURCE-NEXT: }; +// SOURCE-NEXT: } +// SOURCE-NEXT: }()); +// SOURCE-NEXT: (function () { +// SOURCE-NEXT: function _0x25a218(_0x2ce3a1, _0x1cefa3, _0x446213, _0x402655, _0x430a72) { +// SOURCE-NEXT: return _0x22ca9b(_0x2ce3a1 - 71, _0x402655, _0x1cefa3 - 619, _0x402655 - 465, _0x430a72 - 104); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x51f4e0(_0x228773, _0xbf116c, _0xcbdb37, _0x36d60b, _0x9b28bd) { +// SOURCE-NEXT: return _0x22ca9b(_0x228773 - 204, _0x228773, _0x9b28bd - 1662, _0x36d60b - 202, _0x9b28bd - 420); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x3a17e4(_0x4a9453, _0x4e8d6e, _0xc2b4f0, _0x568f01, _0x149233) { +// SOURCE-NEXT: return _0x1e1698(_0x568f01 - -160, _0x4e8d6e - 355, _0xc2b4f0 - 1, _0x568f01 - 469, _0xc2b4f0); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x55d0ca(_0x4e2841, _0x1ea0f7, _0x3828a6, _0x295fe6, _0x3a1309) { +// SOURCE-NEXT: return _0x1e1698(_0x4e2841 - 1043, _0x1ea0f7 - 80, _0x3828a6 - 370, _0x295fe6 - 426, _0x295fe6); +// SOURCE-NEXT: } +// SOURCE-NEXT: false ? bazvTn[_0x25a218(-0x78, -0x59, 0x28, 'pOH8', -0x33)](_0x33f6f2) : _0x54e352(this, function () { +// SOURCE-NEXT: function _0x1e7a6f(_0x225f2a, _0x4b678d, _0x4aec0b, _0x188244, _0x36fb0c) { +// SOURCE-NEXT: return _0x55d0ca(_0x4b678d - -3, _0x4b678d - 412, _0x4aec0b - 101, _0x4aec0b, _0x36fb0c - 386); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x4c2b48(_0x5ae9d7, _0x39db7a, _0x47754b, _0x11f67b, _0x447dce) { +// SOURCE-NEXT: return _0x25a218(_0x5ae9d7 - 154, _0x47754b - 813, _0x47754b - 308, _0x39db7a, _0x447dce - 260); +// SOURCE-NEXT: } +// SOURCE-NEXT: const _0x4a4fcb = { +// SOURCE-NEXT: 'MfXlV': function (_0x9334ca, _0x1863fb) { +// SOURCE-NEXT: return _0x23fb6["IWoxy"](_0x9334ca, _0x1863fb); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'yRBXX': "debu", +// SOURCE-NEXT: 'gCxBj': "gger", +// SOURCE-NEXT: 'GPttG': "stateObject", +// SOURCE-NEXT: 'COGkj': function (_0x388be9, _0x81a4c2) { +// SOURCE-NEXT: return _0x388be9(_0x81a4c2); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'djEKp': "function *\\( *\\)", +// SOURCE-NEXT: 'wloMG': "\\+\\+ *(?:[a-zA-Z_$][0-9a-zA-Z_$]*)", +// SOURCE-NEXT: 'rgryI': function (_0x3a859a, _0x59d151) { +// SOURCE-NEXT: return _0x3a859a(_0x59d151); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'lBFyN': "init", +// SOURCE-NEXT: 'BEUkj': "chain", +// SOURCE-NEXT: 'EYYLF': "input", +// SOURCE-NEXT: 'zzuOM': function (_0x19e771, _0x201ffb) { +// SOURCE-NEXT: return _0x19e771(_0x201ffb); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'pFAKE': function (_0x38383a) { +// SOURCE-NEXT: return _0x38383a(); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'usCQH': function (_0x5bb395, _0x3fd96e, _0x4442ac) { +// SOURCE-NEXT: return _0x5bb395(_0x3fd96e, _0x4442ac); +// SOURCE-NEXT: } +// SOURCE-NEXT: }; +// SOURCE-NEXT: function _0x18dbc0(_0x5e0719, _0x2acec8, _0x334f5f, _0x55b9d4, _0x3db894) { +// SOURCE-NEXT: return _0x51f4e0(_0x5e0719, _0x2acec8 - 468, _0x334f5f - 8, _0x55b9d4 - 238, _0x3db894 - -1530); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x315929(_0x949509, _0x4413ef, _0x5bb718, _0x2a874f, _0x886e6b) { +// SOURCE-NEXT: return _0x55d0ca(_0x886e6b - -906, _0x4413ef - 288, _0x5bb718 - 56, _0x2a874f, _0x886e6b - 218); +// SOURCE-NEXT: } +// SOURCE-NEXT: { +// SOURCE-NEXT: const _0x5a0c95 = new RegExp("function *\\( *\\)"), +// SOURCE-NEXT: _0x4a0f5e = new RegExp("\\+\\+ *(?:[a-zA-Z_$][0-9a-zA-Z_$]*)", "i"), +// SOURCE-NEXT: _0x16c109 = _0x79c5f6("init"); +// SOURCE-NEXT: !_0x5a0c95["test"](_0x23fb6["NMvvT"](_0x16c109, "chain")) || !_0x4a0f5e["test"](_0x23fb6["NDoCJ"](_0x16c109, "input")) ? false ? EEyZnd[_0x315929(0x1c2, 0xd2, 0xbe, '7FpC', 0xed)](_0x17784f, -0x117e * 0x1 + -0x293 * -0x7 + -0x1b * 0x5) : _0x16c109("0") : true ? _0x79c5f6() : EEyZnd[_0x315929(0x1a8, 0xaa, 0x1ac, 'bh#1', 0x177)](_0x2826ba, this, function () { +// SOURCE-NEXT: const _0x16b499 = new _0x223f50(EEyZnd["djEKp"]), +// SOURCE-NEXT: _0x270d77 = new _0x5a1f26(EEyZnd["wloMG"], "i"); +// SOURCE-NEXT: const _0x16bd89 = EEyZnd["rgryI"](_0x4d7c19, EEyZnd["lBFyN"]); +// SOURCE-NEXT: !_0x16b499["test"](EEyZnd["MfXlV"](_0x16bd89, EEyZnd["BEUkj"])) || !_0x270d77["test"](EEyZnd["MfXlV"](_0x16bd89, EEyZnd["EYYLF"])) ? EEyZnd["zzuOM"](_0x16bd89, "0") : EEyZnd["pFAKE"](_0x9e7260); +// SOURCE-NEXT: })(); +// SOURCE-NEXT: } +// SOURCE-NEXT: })(); +// SOURCE-NEXT: }()); +// SOURCE-NEXT: const _0x2fad7f = (function () { +// SOURCE-NEXT: const _0x5851e9 = { +// SOURCE-NEXT: 'uUSRr': function (_0x564f88, _0x176b0d) { +// SOURCE-NEXT: return _0x564f88(_0x176b0d); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'AWARS': "while (true) {}", +// SOURCE-NEXT: 'oESVL': "counter", +// SOURCE-NEXT: 'BjFNt': function (_0x10a38e, _0x635b4b) { +// SOURCE-NEXT: return _0x23fb6["xDMyq"](_0x10a38e, _0x635b4b); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'aEZzf': "vAzJS", +// SOURCE-NEXT: 'MpBFC': "gIPTp", +// SOURCE-NEXT: 'ATTQv': function (_0x26b880, _0x4d1ef3) { +// SOURCE-NEXT: return _0x23fb6["LeAqo"](_0x26b880, _0x4d1ef3); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'XpYAx': "sHFfh", +// SOURCE-NEXT: 'gFUUs': function (_0x3db966, _0x42adc3) { +// SOURCE-NEXT: return _0x23fb6["UHIZG"](_0x3db966, _0x42adc3); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'WFONG': "bEHUp", +// SOURCE-NEXT: 'APrCo': "aPxIb" +// SOURCE-NEXT: }; +// SOURCE-NEXT: function _0x20f3ee(_0x552528, _0x5c1e2a, _0x4c2dce, _0xaa15d1, _0x25e473) { +// SOURCE-NEXT: return _0x2d5cb7(_0x552528 - 25, _0x5c1e2a - 285, _0xaa15d1 - -850, _0xaa15d1 - 204, _0x552528); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x8dcf01(_0x26d61f, _0x4db143, _0x417bac, _0x3f7e02, _0x1c0931) { +// SOURCE-NEXT: return _0x1e1698(_0x417bac - 605, _0x4db143 - 89, _0x417bac - 215, _0x3f7e02 - 86, _0x1c0931); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x58a80d(_0x38e5fe, _0xe65c15, _0x4f4d60, _0x4d0a90, _0x2dad00) { +// SOURCE-NEXT: return _0x1e1698(_0x4f4d60 - -667, _0xe65c15 - 125, _0x4f4d60 - 421, _0x4d0a90 - 444, _0x2dad00); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x1e94a4(_0x14d467, _0x3eb1e8, _0x2c4b3c, _0x34537f, _0x57de42) { +// SOURCE-NEXT: return _0x1b9448(_0x14d467 - 293, _0x3eb1e8 - 419, _0x3eb1e8, _0x34537f - 18, _0x2c4b3c - -1210); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0xd74efe(_0x318194, _0x4fc25b, _0x460b63, _0x32813d, _0x101fbd) { +// SOURCE-NEXT: return _0x1e1698(_0x4fc25b - -679, _0x4fc25b - 310, _0x460b63 - 360, _0x32813d - 320, _0x318194); +// SOURCE-NEXT: } +// SOURCE-NEXT: { +// SOURCE-NEXT: let _0x5e668e = !![]; +// SOURCE-NEXT: return function (_0x384d89, _0x204232) { +// SOURCE-NEXT: function _0x41c4cd(_0x13c9e8, _0x4fcac7, _0x4d66a8, _0x4be10f, _0xeaebed) { +// SOURCE-NEXT: return _0x20f3ee(_0x4fcac7, _0x4fcac7 - 23, _0x4d66a8 - 341, _0x4be10f - 226, _0xeaebed - 138); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x226dda(_0x184238, _0x20a3d9, _0x45a0ab, _0x11fa95, _0x5628bc) { +// SOURCE-NEXT: return _0x20f3ee(_0x45a0ab, _0x20a3d9 - 139, _0x45a0ab - 384, _0x20a3d9 - 469, _0x5628bc - 285); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x555140(_0x3988f3, _0x1b9c4c, _0x286755, _0x3de6eb, _0x545ed2) { +// SOURCE-NEXT: return _0x58a80d(_0x3988f3 - 397, _0x1b9c4c - 385, _0x545ed2 - 1419, _0x3de6eb - 257, _0x3988f3); +// SOURCE-NEXT: } +// SOURCE-NEXT: const _0x470853 = { +// SOURCE-NEXT: 'hfUVW': function (_0x4ba067, _0x4d5b3e) { +// SOURCE-NEXT: return _0x5851e9["uUSRr"](_0x4ba067, _0x4d5b3e); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'AJGOi': "while (true) {}", +// SOURCE-NEXT: 'SNidL': "counter", +// SOURCE-NEXT: 'LYKGe': function (_0x1a7309, _0x4eb9e6) { +// SOURCE-NEXT: return _0x5851e9["BjFNt"](_0x1a7309, _0x4eb9e6); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'ursCQ': "vAzJS", +// SOURCE-NEXT: 'jHNRl': "gIPTp", +// SOURCE-NEXT: 'IWOeW': function (_0x61f3ef, _0x3a781c) { +// SOURCE-NEXT: return _0x5851e9["ATTQv"](_0x61f3ef, _0x3a781c); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'vvXWZ': "sHFfh" +// SOURCE-NEXT: }; +// SOURCE-NEXT: function _0x4c5323(_0x65a89a, _0x4513ca, _0x2bc7f1, _0x25f27b, _0x3feab3) { +// SOURCE-NEXT: return _0x1e94a4(_0x65a89a - 103, _0x65a89a, _0x25f27b - 1227, _0x25f27b - 149, _0x3feab3 - 0); +// SOURCE-NEXT: } +// SOURCE-NEXT: if (_0x5851e9["gFUUs"]("bEHUp", "aPxIb")) { +// SOURCE-NEXT: const _0x268d2d = _0x1db458 ? function () { +// SOURCE-NEXT: if (_0x5aefd6) { +// SOURCE-NEXT: const _0x15028c = _0x631dd0["apply"](_0x21e6e8, arguments); +// SOURCE-NEXT: return _0x16f3c9 = null, _0x15028c; +// SOURCE-NEXT: } +// SOURCE-NEXT: } : function () {}; +// SOURCE-NEXT: return _0x3bdb3e = ![], _0x268d2d; +// SOURCE-NEXT: } else { +// SOURCE-NEXT: const _0x1c8052 = _0x5e668e ? function () { +// SOURCE-NEXT: const _0x422b16 = { +// SOURCE-NEXT: 'uUzMg': function (_0x4e3dda, _0x3d0d8b) { +// SOURCE-NEXT: return _0x470853["hfUVW"](_0x4e3dda, _0x3d0d8b); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'fJrgr': "while (true) {}", +// SOURCE-NEXT: 'QgSKz': "counter" +// SOURCE-NEXT: }; +// SOURCE-NEXT: if (_0x470853["LYKGe"]("vAzJS", "gIPTp")) { +// SOURCE-NEXT: if (_0x204232) { +// SOURCE-NEXT: if (_0x470853["IWOeW"]("sHFfh", "sHFfh")) { +// SOURCE-NEXT: if (_0x2ac886) return _0x1e94cc;else OtTDRa["uUzMg"](_0x3eadb4, 0); +// SOURCE-NEXT: } else { +// SOURCE-NEXT: const _0x4d9902 = _0x204232["apply"](_0x384d89, arguments); +// SOURCE-NEXT: return _0x204232 = null, _0x4d9902; +// SOURCE-NEXT: } +// SOURCE-NEXT: } +// SOURCE-NEXT: } else return function (_0x4dab7a) {}["constructor"](OtTDRa["fJrgr"])["apply"](OtTDRa["QgSKz"]); +// SOURCE-NEXT: } : function () {}; +// SOURCE-NEXT: return _0x5e668e = ![], _0x1c8052; +// SOURCE-NEXT: } +// SOURCE-NEXT: }; +// SOURCE-NEXT: } +// SOURCE-NEXT: }()), +// SOURCE-NEXT: _0x42679b = _0x2fad7f(this, function () { +// SOURCE-NEXT: function _0x46e836(_0x543385, _0x20d7ae, _0x4c9fee, _0x102f1d, _0x3e7c9e) { +// SOURCE-NEXT: return _0x3a3b81(_0x543385 - 100, _0x20d7ae - 441, _0x102f1d, _0x102f1d - 175, _0x543385 - -704); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x46a901(_0x476e3c, _0x22f8ab, _0x37edc3, _0x3ea843, _0x11df8c) { +// SOURCE-NEXT: return _0x3a3b81(_0x476e3c - 246, _0x22f8ab - 100, _0x11df8c, _0x3ea843 - 216, _0x22f8ab - 287); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x448807(_0xaf556e, _0x472c75, _0x823a45, _0x1365a5, _0x5f3806) { +// SOURCE-NEXT: return _0x1e1698(_0xaf556e - 208, _0x472c75 - 258, _0x823a45 - 154, _0x1365a5 - 52, _0x1365a5); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x5db066(_0x1550a0, _0x1d26ac, _0x481e0a, _0x3a606a, _0x249707) { +// SOURCE-NEXT: return _0x1e1698(_0x1d26ac - -741, _0x1d26ac - 127, _0x481e0a - 10, _0x3a606a - 363, _0x3a606a); +// SOURCE-NEXT: } +// SOURCE-NEXT: const _0x4df29b = { +// SOURCE-NEXT: 'xZhjh': function (_0x3327be, _0x27e355) { +// SOURCE-NEXT: return _0x23fb6["lKFSI"](_0x3327be, _0x27e355); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'mLmeA': "debu", +// SOURCE-NEXT: 'TQXCc': "gger", +// SOURCE-NEXT: 'stpSV': "action" +// SOURCE-NEXT: }; +// SOURCE-NEXT: { +// SOURCE-NEXT: const _0x1026f2 = function () { +// SOURCE-NEXT: function _0x5b5013(_0x287259, _0x3b5b04, _0x3004de, _0x242b55, _0x3c0b72) { +// SOURCE-NEXT: return _0x448807(_0x242b55 - 270, _0x3b5b04 - 356, _0x3004de - 410, _0x287259, _0x3c0b72 - 89); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x5473cd(_0x4038f2, _0x56da12, _0x18870c, _0x260cf9, _0x112fc7) { +// SOURCE-NEXT: return _0x5db066(_0x4038f2 - 326, _0x112fc7 - 1087, _0x18870c - 468, _0x18870c, _0x112fc7 - 261); +// SOURCE-NEXT: } +// SOURCE-NEXT: { +// SOURCE-NEXT: let _0x21d1c7; +// SOURCE-NEXT: try { +// SOURCE-NEXT: _0x21d1c7 = Function("return (function() {}.constructor(\"return this\")( ));")(); +// SOURCE-NEXT: } catch (_0x741952) { +// SOURCE-NEXT: if (_0x23fb6[_0x5473cd(0x27c, 0x2bd, 't!4C', 0x1cd, 0x241)](_0x23fb6[_0x5473cd(0x27c, 0x1e4, 'OCj3', 0x1c8, 0x247)], _0x23fb6[_0x5b5013('h#G5', 0x14e, 0x210, 0x222, 0x304)])) { +// SOURCE-NEXT: const _0x59039d = _0x3b44b2[_0x5473cd(0x264, 0x2f4, 'k*JM', 0x176, 0x231)](_0x1242ab, arguments); +// SOURCE-NEXT: return _0x28052f = null, _0x59039d; +// SOURCE-NEXT: } else _0x21d1c7 = window; +// SOURCE-NEXT: } +// SOURCE-NEXT: return _0x21d1c7; +// SOURCE-NEXT: } +// SOURCE-NEXT: }, +// SOURCE-NEXT: _0x4afc21 = _0x1026f2(), +// SOURCE-NEXT: _0x23338b = _0x4afc21["console"] = _0x4afc21["console"] || {}, +// SOURCE-NEXT: _0x1a0290 = ["log", "warn", "info", "error", "exception", "table", "trace"]; +// SOURCE-NEXT: for (let _0x435892 = 0; _0x23fb6["AzhjX"](_0x435892, _0x1a0290["length"]); _0x435892++) { +// SOURCE-NEXT: { +// SOURCE-NEXT: const _0x4dddd6 = _0x2fad7f["constructor"]["prototype"]["bind"](_0x2fad7f), +// SOURCE-NEXT: _0x408fcf = _0x1a0290[_0x435892], +// SOURCE-NEXT: _0x2c37ea = _0x23338b[_0x408fcf] || _0x4dddd6; +// SOURCE-NEXT: _0x4dddd6["__proto__"] = _0x2fad7f["bind"](_0x2fad7f), _0x4dddd6["toString"] = _0x2c37ea["toString"]["bind"](_0x2c37ea), _0x23338b[_0x408fcf] = _0x4dddd6; +// SOURCE-NEXT: } +// SOURCE-NEXT: } +// SOURCE-NEXT: } +// SOURCE-NEXT: }); +// SOURCE-NEXT: function _0x1b9448(_0x380090, _0x5e984a, _0x235392, _0x1300a3, _0x38a18b) { +// SOURCE-NEXT: return _0x5ec0(_0x38a18b - 317, _0x235392); +// SOURCE-NEXT: } +// SOURCE-NEXT: _0x42679b(); +// SOURCE-NEXT: const _0x1cf542 = 0.15; +// SOURCE-NEXT: function _0x2d5cb7(_0x1512f1, _0x134abe, _0x8b13da, _0x54538f, _0x2af514) { +// SOURCE-NEXT: return _0x5ec0(_0x8b13da - -37, _0x2af514); +// SOURCE-NEXT: } +// SOURCE-NEXT: const _0x10b562 = 100; +// SOURCE-NEXT: let _0x3509e8 = _0x23fb6["xfELl"](_0x5b037d, _0x4b126e); +// SOURCE-NEXT: function _0x1e1698(_0x5c3d08, _0x36e289, _0x54d8af, _0x3053e9, _0x326ab0) { +// SOURCE-NEXT: return _0x5ec0(_0x5c3d08 - -232, _0x326ab0); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x22ca9b(_0x3fe362, _0x56aef7, _0x3e01ec, _0x478758, _0x162203) { +// SOURCE-NEXT: return _0x5ec0(_0x3e01ec - -947, _0x56aef7); +// SOURCE-NEXT: } +// SOURCE-NEXT: if (_0x23fb6["UFmYJ"](_0x3509e8, 100)) { +// SOURCE-NEXT: _0x3509e8 = _0x23fb6["xfELl"](_0x3509e8, 0.85); +// SOURCE-NEXT: } +// SOURCE-NEXT: return _0x3509e8; +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x57bb4e(_0x48ccbf, _0x3f7d50, _0x26c1df, _0x2d6344, _0x1470b4) { +// SOURCE-NEXT: return _0x5ec0(_0x48ccbf - -49, _0x26c1df); +// SOURCE-NEXT: } +// SOURCE-NEXT: (function () { +// SOURCE-NEXT: const _0x599834 = { +// SOURCE-NEXT: 'DvMct': function (_0x33928b, _0x5eac9e) { +// SOURCE-NEXT: return _0x33928b !== _0x5eac9e; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'yJZCC': "KZaiG", +// SOURCE-NEXT: 'BjajC': function (_0xb268be, _0x58faab) { +// SOURCE-NEXT: return _0xb268be(_0x58faab); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'vHjye': function (_0x4bd7a6, _0x582c52) { +// SOURCE-NEXT: return _0x4bd7a6 + _0x582c52; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'tqmfY': "return (function() ", +// SOURCE-NEXT: 'GRynz': "{}.constructor(\"return this\")( )", +// SOURCE-NEXT: 'XTBQS': function (_0x38cc37) { +// SOURCE-NEXT: return _0x38cc37(); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'umdqK': function (_0x438a5c, _0x58b8bc) { +// SOURCE-NEXT: return _0x438a5c !== _0x58b8bc; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'qkdEH': "eAdEc", +// SOURCE-NEXT: 'NZceR': "OdmQi" +// SOURCE-NEXT: }; +// SOURCE-NEXT: let _0x40f9cc; +// SOURCE-NEXT: function _0x2a2ffe(_0x456e2b, _0x1b8f82, _0x4ebc8c, _0x132508, _0x25a1fc) { +// SOURCE-NEXT: return _0x5ec0(_0x4ebc8c - 66, _0x1b8f82); +// SOURCE-NEXT: } +// SOURCE-NEXT: try { +// SOURCE-NEXT: { +// SOURCE-NEXT: const _0x4fa10f = Function("return (function() {}.constructor(\"return this\")( ));"); +// SOURCE-NEXT: _0x40f9cc = _0x4fa10f(); +// SOURCE-NEXT: } +// SOURCE-NEXT: } catch (_0x467c0d) { +// SOURCE-NEXT: if (_0x599834[_0x2b7144('RVOB', 0x28, 0xd2, 0x18d, 0x89)](_0x599834[_0x2a2ffe(0x174, 'wsnp', 0x179, 0x97, 0x156)], _0x599834[_0x2b7144('Y@7I', -0x1ae, -0xd0, -0xb7, -0x104)])) _0x40f9cc = window;else return ![]; +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x2b7144(_0x28d1e3, _0x376910, _0x4db3ba, _0x5d9e42, _0x22ccb6) { +// SOURCE-NEXT: return _0x5ec0(_0x4db3ba - -350, _0x28d1e3); +// SOURCE-NEXT: } +// SOURCE-NEXT: _0x40f9cc["setInterval"](_0x79c5f6, 4000); +// SOURCE-NEXT: }()), console["log"](calculatePrice(10, 20)); +// SOURCE-NEXT: function _0x79c5f6(_0x9008f8) { +// SOURCE-NEXT: const _0x353514 = { +// SOURCE-NEXT: 'XgFbr': "function *\\( *\\)", +// SOURCE-NEXT: 'Vjcoq': "\\+\\+ *(?:[a-zA-Z_$][0-9a-zA-Z_$]*)", +// SOURCE-NEXT: 'jVJIp': function (_0x4711c2, _0x28598f) { +// SOURCE-NEXT: return _0x4711c2(_0x28598f); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'gmjqb': "init", +// SOURCE-NEXT: 'hnteC': function (_0x2a05e7, _0x26144b) { +// SOURCE-NEXT: return _0x2a05e7 + _0x26144b; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'eUwKt': "chain", +// SOURCE-NEXT: 'ERQLR': function (_0x449aa4, _0xc727ba) { +// SOURCE-NEXT: return _0x449aa4 + _0xc727ba; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'tUlJY': "input", +// SOURCE-NEXT: 'guzej': function (_0x5411f7) { +// SOURCE-NEXT: return _0x5411f7(); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'tegAT': function (_0x22e185, _0x4ef46f) { +// SOURCE-NEXT: return _0x22e185 === _0x4ef46f; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'ITQuX': "THUcb", +// SOURCE-NEXT: 'wVexs': "gxfFk", +// SOURCE-NEXT: 'UWwEO': "return (function() ", +// SOURCE-NEXT: 'nftcC': "{}.constructor(\"return this\")( )", +// SOURCE-NEXT: 'ycwhq': function (_0x32e23f) { +// SOURCE-NEXT: return _0x32e23f(); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'pvkWt': function (_0x7da8a4, _0x5b4668) { +// SOURCE-NEXT: return _0x7da8a4 * _0x5b4668; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'rEKQC': function (_0x12812e, _0x511b2e) { +// SOURCE-NEXT: return _0x12812e - _0x511b2e; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'rVctJ': "ycPIa", +// SOURCE-NEXT: 'dxXzP': "string", +// SOURCE-NEXT: 'eiAXG': function (_0x1f78d0, _0x23cf93) { +// SOURCE-NEXT: return _0x1f78d0 === _0x23cf93; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'CSUmd': "YLWnx", +// SOURCE-NEXT: 'imlJd': "while (true) {}", +// SOURCE-NEXT: 'IuKzr': "counter", +// SOURCE-NEXT: 'tLxOX': function (_0x442d99, _0x408f56) { +// SOURCE-NEXT: return _0x442d99 === _0x408f56; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'cNlzr': "lKNzc", +// SOURCE-NEXT: 'vNLZQ': "wzIps", +// SOURCE-NEXT: 'eClaa': function (_0x4602f2, _0x14d6ee) { +// SOURCE-NEXT: return _0x4602f2 !== _0x14d6ee; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'liOOd': function (_0x520c56, _0x5f1c80) { +// SOURCE-NEXT: return _0x520c56 + _0x5f1c80; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'mFkiz': function (_0xfc6122, _0x456f22) { +// SOURCE-NEXT: return _0xfc6122 / _0x456f22; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'GvssB': "length", +// SOURCE-NEXT: 'gRgOP': function (_0x4687b7, _0x3f70b3) { +// SOURCE-NEXT: return _0x4687b7 % _0x3f70b3; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'qTstx': "hYBJM", +// SOURCE-NEXT: 'RNCCY': "dksZa", +// SOURCE-NEXT: 'zLKvj': function (_0x5abf24, _0x10e86b) { +// SOURCE-NEXT: return _0x5abf24 + _0x10e86b; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'hnbtM': "debu", +// SOURCE-NEXT: 'JzRKC': "gger", +// SOURCE-NEXT: 'vjvNM': "action", +// SOURCE-NEXT: 'uGJEE': function (_0x25595b, _0x324c9c) { +// SOURCE-NEXT: return _0x25595b === _0x324c9c; +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'fMWFJ': "KioVz", +// SOURCE-NEXT: 'EQzrv': "stateObject" +// SOURCE-NEXT: }; +// SOURCE-NEXT: function _0x348614(_0x4b6f00, _0x1c1bd3, _0x86d831, _0xb37d48, _0x15a459) { +// SOURCE-NEXT: return _0x57bb4e(_0x4b6f00 - -229, _0x1c1bd3 - 167, _0x86d831, _0xb37d48 - 397, _0x15a459 - 87); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x186adf(_0x5b3c17) { +// SOURCE-NEXT: function _0xe20f44(_0x341f0a, _0x58e520, _0x9ee086, _0x1063be, _0x1b9644) { +// SOURCE-NEXT: return _0x348614(_0x341f0a - -124, _0x58e520 - 200, _0x1063be, _0x1063be - 301, _0x1b9644 - 236); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x4ea46f(_0x2f21d9, _0x242c3d, _0xd2265d, _0xa9dbfd, _0x628e0f) { +// SOURCE-NEXT: return _0x12a9e2(_0xa9dbfd - 1840, _0x2f21d9, _0xd2265d - 369, _0xa9dbfd - 240, _0x628e0f - 210); +// SOURCE-NEXT: } +// SOURCE-NEXT: const _0x24be25 = { +// SOURCE-NEXT: 'WbxOW': function (_0x2fbbbe, _0x2d4c34) { +// SOURCE-NEXT: return _0x2fbbbe(_0x2d4c34); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'YMTET': function (_0x72a3f, _0x3b6bdb) { +// SOURCE-NEXT: return _0x353514["hnteC"](_0x72a3f, _0x3b6bdb); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'hdaAe': function (_0x5ba136, _0x2209d8) { +// SOURCE-NEXT: return _0x353514["ERQLR"](_0x5ba136, _0x2209d8); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'txPEw': "return (function() ", +// SOURCE-NEXT: 'sxBkn': "{}.constructor(\"return this\")( )", +// SOURCE-NEXT: 'SeEiQ': function (_0x11a111) { +// SOURCE-NEXT: return _0x11a111(); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'QBXUo': function (_0x54a322, _0x389b49) { +// SOURCE-NEXT: return _0x353514["pvkWt"](_0x54a322, _0x389b49); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'tcXCB': function (_0x441159, _0xab9c2d) { +// SOURCE-NEXT: return _0x353514["rEKQC"](_0x441159, _0xab9c2d); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'XKNJZ': function (_0x51901a, _0x16c0ae) { +// SOURCE-NEXT: return _0x353514["tegAT"](_0x51901a, _0x16c0ae); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'cECzk': "ycPIa" +// SOURCE-NEXT: }; +// SOURCE-NEXT: if (_0x353514["tegAT"](typeof _0x5b3c17, "string")) { +// SOURCE-NEXT: return function (_0x18eca2) {}["constructor"]("while (true) {}")["apply"]("counter"); +// SOURCE-NEXT: } else { +// SOURCE-NEXT: { +// SOURCE-NEXT: if (_0x353514["eClaa"](_0x353514["liOOd"]("", _0x353514["mFkiz"](_0x5b3c17, _0x5b3c17))["length"], 1) || _0x353514["tLxOX"](_0x353514["gRgOP"](_0x5b3c17, 20), 0)) true ? function () { +// SOURCE-NEXT: return !![]; +// SOURCE-NEXT: }["constructor"]("debugger")["call"]("action") : _0x353514[_0x4ea46f('RVOB', 0x542, 0x4b9, 0x557, 0x5c5)](_0x44d76a, '0');else { +// SOURCE-NEXT: (function () { +// SOURCE-NEXT: const _0x466890 = { +// SOURCE-NEXT: 'rjzwq': function (_0x24dde7, _0x13676b) { +// SOURCE-NEXT: return _0x24be25["QBXUo"](_0x24dde7, _0x13676b); +// SOURCE-NEXT: }, +// SOURCE-NEXT: 'rnmcd': function (_0x49a9b2, _0x5eddd9) { +// SOURCE-NEXT: return _0x24be25["tcXCB"](_0x49a9b2, _0x5eddd9); +// SOURCE-NEXT: } +// SOURCE-NEXT: }; +// SOURCE-NEXT: if (_0x24be25["XKNJZ"]("ycPIa", "ycPIa")) return ![];else _0x251fc3 = _0x466890["rjzwq"](_0x48a502, _0x466890["rnmcd"](1, _0x4d665d)); +// SOURCE-NEXT: }["constructor"]("debugger")["apply"]("stateObject")); +// SOURCE-NEXT: } +// SOURCE-NEXT: } +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x5be4bb(_0x4e2ed4, _0x2b65f5, _0x199dfc, _0x136e44, _0x1e599d) { +// SOURCE-NEXT: return _0x348614(_0x199dfc - 828, _0x2b65f5 - 226, _0x1e599d, _0x136e44 - 492, _0x1e599d - 346); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x3502e3(_0x2c2af9, _0x430905, _0x4040a9, _0x2c42e4, _0x5ecaad) { +// SOURCE-NEXT: return _0x12a9e2(_0x2c42e4 - 861, _0x5ecaad, _0x4040a9 - 33, _0x2c42e4 - 142, _0x5ecaad - 185); +// SOURCE-NEXT: } +// SOURCE-NEXT: _0x186adf(++_0x5b3c17); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x12a9e2(_0x4a6efc, _0x1bb7b0, _0x425e20, _0xac8bbb, _0x57b178) { +// SOURCE-NEXT: return _0x57bb4e(_0x4a6efc - -832, _0x1bb7b0 - 438, _0x1bb7b0, _0xac8bbb - 331, _0x57b178 - 330); +// SOURCE-NEXT: } +// SOURCE-NEXT: function _0x42f13b(_0x223d1e, _0x1f15db, _0xd74233, _0xe855ba, _0x374714) { +// SOURCE-NEXT: return _0x57bb4e(_0xd74233 - 617, _0x1f15db - 125, _0xe855ba, _0xe855ba - 36, _0x374714 - 401); +// SOURCE-NEXT: } +// SOURCE-NEXT: try { +// SOURCE-NEXT: if (_0x9008f8) return _0x186adf;else _0x186adf(0); +// SOURCE-NEXT: } catch (_0x424211) {} +// SOURCE-NEXT: } diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/run.generated.lit b/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/run.generated.lit new file mode 100644 index 0000000..408844b --- /dev/null +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/after_dynconstprop/run.generated.lit @@ -0,0 +1,4 @@ +// RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ +// RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ +// RUN: --passes "source2ast,ast2hir,dead_code_elimination,hir2ast,ast2source" \ +// RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/README.generated.md b/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/README.generated.md index a3ea838..1f9745b 100644 --- a/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/README.generated.md +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/README.generated.md @@ -1,7 +1,7 @@ To run manually: ```shell -blaze run //third_party/maldoca/js/ir:jsir_gen -- \ - --input_file $(pwd)/third_party/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/input.js \ - --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,dead_code_elimination,hir2ast,ast2source" +bazel run //maldoca/js/ir:jsir_gen -- \ + --input_file $(pwd)/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/input.js \ + --passes "source2ast,ast2hir,dead_code_elimination,hir2ast,ast2source" ``` diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/output.generated.txt b/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/output.generated.txt index ed004a6..96a0005 100644 --- a/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/output.generated.txt +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/output.generated.txt @@ -12,615 +12,10 @@ // SOURCE-NEXT: let e = 4; // SOURCE-NEXT: } // SOURCE-NEXT: let f = 5; -// SOURCE-NEXT: f = 6; -// SOURCE-NEXT: f = 7; +// SOURCE-NEXT: f = f + 1; +// SOURCE-NEXT: f = f + 1; // SOURCE-NEXT: { // SOURCE-NEXT: let g = 6; // SOURCE-NEXT: } // SOURCE-NEXT: var h = 7; // SOURCE-NEXT: var i = 8; -// SOURCE-NEXT: ================================================================ -// SOURCE-NEXT: Prelude: -// SOURCE-NEXT: ================================================================ -// SOURCE-NEXT: ================================================================ -// SOURCE-EMPTY: -// SOURCE-NEXT: ================================================================ -// SOURCE-NEXT: Dataflow: -// SOURCE-NEXT: ================================================================ -// SOURCE-NEXT: jsir.file ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.program {"script"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.variable_declaration {"let"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %9 = jsir.identifier_ref {"a"} -// SOURCE-NEXT: // %9 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// SOURCE-NEXT: // %10 = 0.000000e+00 : f64 -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.variable_declarator (%9, %10) -// SOURCE-NEXT: // %11 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.exprs_region_end (%11) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %0 = jsir.boolean_literal {true} -// SOURCE-NEXT: // %0 = true -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.if_statement (%0) ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.block_statement ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.variable_declaration {"let"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %9 = jsir.identifier_ref {"b"} -// SOURCE-NEXT: // %9 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// SOURCE-NEXT: // %10 = 1.000000e+00 : f64 -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.variable_declarator (%9, %10) -// SOURCE-NEXT: // %11 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.exprs_region_end (%11) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.block_statement ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.variable_declaration {"let"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %9 = jsir.identifier_ref {"dead_1"} -// SOURCE-NEXT: // %9 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// SOURCE-NEXT: // %10 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.variable_declarator (%9, %10) -// SOURCE-NEXT: // %11 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.exprs_region_end (%11) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %1 = jsir.boolean_literal {true} -// SOURCE-NEXT: // %1 = true -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.if_statement (%1) ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.block_statement ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %9 = jsir.boolean_literal {false} -// SOURCE-NEXT: // %9 = false -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.if_statement (%9) ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.block_statement ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.variable_declaration {"let"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.identifier_ref {"nested_dead_2"} -// SOURCE-NEXT: // %10 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// SOURCE-NEXT: // %11 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %12 = jsir.variable_declarator (%10, %11) -// SOURCE-NEXT: // %12 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.exprs_region_end (%12) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.block_statement ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.variable_declaration {"let"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.identifier_ref {"c"} -// SOURCE-NEXT: // %10 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.numeric_literal {#jsir, 2.000000e+00 : f64} -// SOURCE-NEXT: // %11 = 2.000000e+00 : f64 -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %12 = jsir.variable_declarator (%10, %11) -// SOURCE-NEXT: // %12 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.exprs_region_end (%12) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.variable_declaration {"let"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.identifier_ref {"d"} -// SOURCE-NEXT: // %10 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.numeric_literal {#jsir, 3.000000e+00 : f64} -// SOURCE-NEXT: // %11 = 3.000000e+00 : f64 -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %12 = jsir.variable_declarator (%10, %11) -// SOURCE-NEXT: // %12 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.exprs_region_end (%12) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %2 = jsir.boolean_literal {false} -// SOURCE-NEXT: // %2 = false -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.if_statement (%2) ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.block_statement ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.variable_declaration {"let"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %9 = jsir.identifier_ref {"dead_3"} -// SOURCE-NEXT: // %9 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// SOURCE-NEXT: // %10 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.variable_declarator (%9, %10) -// SOURCE-NEXT: // %11 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.exprs_region_end (%11) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.block_statement ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.variable_declaration {"let"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %9 = jsir.identifier_ref {"e"} -// SOURCE-NEXT: // %9 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.numeric_literal {#jsir, 4.000000e+00 : f64} -// SOURCE-NEXT: // %10 = 4.000000e+00 : f64 -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.variable_declarator (%9, %10) -// SOURCE-NEXT: // %11 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.exprs_region_end (%11) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.variable_declaration {"let"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %9 = jsir.identifier_ref {"f"} -// SOURCE-NEXT: // %9 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.numeric_literal {#jsir, 5.000000e+00 : f64} -// SOURCE-NEXT: // %10 = 5.000000e+00 : f64 -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.variable_declarator (%9, %10) -// SOURCE-NEXT: // %11 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.exprs_region_end (%11) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %3 = jsir.boolean_literal {true} -// SOURCE-NEXT: // %3 = true -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.if_statement (%3) ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %9 = jsir.identifier_ref {"f"} -// SOURCE-NEXT: // %9 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.identifier {"f"} -// SOURCE-NEXT: // %10 = 5.000000e+00 : f64 -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// SOURCE-NEXT: // %11 = 1.000000e+00 : f64 -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %12 = jsir.binary_expression (%10, %11) {"+"} -// SOURCE-NEXT: // %12 = 6.000000e+00 : f64 -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %13 = jsir.assignment_expression (%9, %12) {"="} -// SOURCE-NEXT: // %13 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.expression_statement (%13) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.variable_declaration {"var"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %9 = jsir.identifier_ref {"dead_7"} -// SOURCE-NEXT: // %9 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// SOURCE-NEXT: // %10 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.variable_declarator (%9, %10) -// SOURCE-NEXT: // %11 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.exprs_region_end (%11) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %4 = jsir.boolean_literal {false} -// SOURCE-NEXT: // %4 = false -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.if_statement (%4) ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.variable_declaration {"var"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %9 = jsir.identifier_ref {"dead_8"} -// SOURCE-NEXT: // %9 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// SOURCE-NEXT: // %10 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.variable_declarator (%9, %10) -// SOURCE-NEXT: // %11 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.exprs_region_end (%11) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %9 = jsir.identifier_ref {"f"} -// SOURCE-NEXT: // %9 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.identifier {"f"} -// SOURCE-NEXT: // %10 = 6.000000e+00 : f64 -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.numeric_literal {#jsir, 1.000000e+00 : f64} -// SOURCE-NEXT: // %11 = 1.000000e+00 : f64 -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %12 = jsir.binary_expression (%10, %11) {"+"} -// SOURCE-NEXT: // %12 = 7.000000e+00 : f64 -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %13 = jsir.assignment_expression (%9, %12) {"="} -// SOURCE-NEXT: // %13 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.expression_statement (%13) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %5 = jsir.boolean_literal {true} -// SOURCE-NEXT: // %5 = true -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.if_statement (%5) ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.block_statement ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.variable_declaration {"let"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %9 = jsir.identifier_ref {"g"} -// SOURCE-NEXT: // %9 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.numeric_literal {#jsir, 6.000000e+00 : f64} -// SOURCE-NEXT: // %10 = 6.000000e+00 : f64 -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.variable_declarator (%9, %10) -// SOURCE-NEXT: // %11 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.exprs_region_end (%11) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %6 = jsir.boolean_literal {false} -// SOURCE-NEXT: // %6 = false -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.if_statement (%6) ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.block_statement ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.variable_declaration {"let"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %9 = jsir.identifier_ref {"dead_4"} -// SOURCE-NEXT: // %9 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// SOURCE-NEXT: // %10 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.variable_declarator (%9, %10) -// SOURCE-NEXT: // %11 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.exprs_region_end (%11) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %7 = jsir.boolean_literal {true} -// SOURCE-NEXT: // %7 = true -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.if_statement (%7) ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.variable_declaration {"var"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %9 = jsir.identifier_ref {"h"} -// SOURCE-NEXT: // %9 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.numeric_literal {#jsir, 7.000000e+00 : f64} -// SOURCE-NEXT: // %10 = 7.000000e+00 : f64 -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.variable_declarator (%9, %10) -// SOURCE-NEXT: // %11 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.exprs_region_end (%11) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.variable_declaration {"var"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %9 = jsir.identifier_ref {"dead_5"} -// SOURCE-NEXT: // %9 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// SOURCE-NEXT: // %10 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.variable_declarator (%9, %10) -// SOURCE-NEXT: // %11 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.exprs_region_end (%11) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %8 = jsir.boolean_literal {false} -// SOURCE-NEXT: // %8 = false -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jshir.if_statement (%8) ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.variable_declaration {"var"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %9 = jsir.identifier_ref {"dead_6"} -// SOURCE-NEXT: // %9 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.numeric_literal {#jsir, 0.000000e+00 : f64} -// SOURCE-NEXT: // %10 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.variable_declarator (%9, %10) -// SOURCE-NEXT: // %11 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.exprs_region_end (%11) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.variable_declaration {"var"} ({ -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %9 = jsir.identifier_ref {"i"} -// SOURCE-NEXT: // %9 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %10 = jsir.numeric_literal {#jsir, 8.000000e+00 : f64} -// SOURCE-NEXT: // %10 = 8.000000e+00 : f64 -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: %11 = jsir.variable_declarator (%9, %10) -// SOURCE-NEXT: // %11 = -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: jsir.exprs_region_end (%11) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }, { -// SOURCE-NEXT: ^bb0: -// SOURCE-NEXT: // -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: }) -// SOURCE-NEXT: // State [default = ] { } -// SOURCE-NEXT: ================================================================ -// SOURCE-EMPTY: -// SOURCE-NEXT: ================================================================ -// SOURCE-NEXT: Bindings: -// SOURCE-NEXT: ================================================================ -// SOURCE-NEXT: a#0: -// SOURCE-NEXT: 0 -// SOURCE-NEXT: dead_5#0: -// SOURCE-NEXT: 0 -// SOURCE-NEXT: dead_6#0: -// SOURCE-NEXT: 0 -// SOURCE-NEXT: dead_7#0: -// SOURCE-NEXT: 0 -// SOURCE-NEXT: dead_8#0: -// SOURCE-NEXT: 0 -// SOURCE-NEXT: h#0: -// SOURCE-NEXT: 7 -// SOURCE-NEXT: i#0: -// SOURCE-NEXT: 8 -// SOURCE-NEXT: b#1: -// SOURCE-NEXT: 1 -// SOURCE-NEXT: dead_1#2: -// SOURCE-NEXT: 0 -// SOURCE-NEXT: d#3: -// SOURCE-NEXT: 3 -// SOURCE-NEXT: nested_dead_2#4: -// SOURCE-NEXT: 1 -// SOURCE-NEXT: c#5: -// SOURCE-NEXT: 2 -// SOURCE-NEXT: dead_3#6: -// SOURCE-NEXT: 0 -// SOURCE-NEXT: e#7: -// SOURCE-NEXT: 4 -// SOURCE-NEXT: g#8: -// SOURCE-NEXT: 6 -// SOURCE-NEXT: dead_4#9: -// SOURCE-NEXT: 0 -// SOURCE-NEXT: ================================================================ -// SOURCE-EMPTY: -// SOURCE-NEXT: ================================================================ -// SOURCE-NEXT: Computed constants: -// SOURCE-NEXT: ================================================================ -// SOURCE-NEXT: From [251, 252): `f` -> `5` -// SOURCE-NEXT: From [251, 256): `f + 1` -> `6` -// SOURCE-NEXT: From [322, 323): `f` -> `6` -// SOURCE-NEXT: From [322, 327): `f + 1` -> `7` -// SOURCE-NEXT: ================================================================ diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/run.generated.lit b/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/run.generated.lit index 0242ebd..408844b 100644 --- a/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/run.generated.lit +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/if_statement/run.generated.lit @@ -1,4 +1,4 @@ // RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ // RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ -// RUN: --passes "source2ast,extract_prelude,erase_comments,ast2hir,dynconstprop,dead_code_elimination,hir2ast,ast2source" \ +// RUN: --passes "source2ast,ast2hir,dead_code_elimination,hir2ast,ast2source" \ // RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/BUILD b/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/BUILD new file mode 100644 index 0000000..9f511e8 --- /dev/null +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/BUILD @@ -0,0 +1,31 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +load("//bazel:lit.bzl", "glob_lit_tests") + +package(default_applicable_licenses = ["//:license"]) + +licenses(["notice"]) + +glob_lit_tests( + name = "all_tests", + data = [ + "input.js", + "output.generated.txt", + "//maldoca/js/ir:lit_test_files", + ], + test_file_exts = [ + "lit", + ], +) diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/README.generated.md b/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/README.generated.md new file mode 100644 index 0000000..ff3e1e2 --- /dev/null +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/README.generated.md @@ -0,0 +1,7 @@ +To run manually: + +```shell +bazel run //maldoca/js/ir:jsir_gen -- \ + --input_file $(pwd)/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/input.js \ + --passes "source2ast,ast2hir,dead_code_elimination,hir2ast,ast2source" +``` diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/input.js b/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/input.js new file mode 100644 index 0000000..b77eaeb --- /dev/null +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/input.js @@ -0,0 +1,18 @@ +function add(a, b) { + return a + b; +} + +function unused_subtract(a, b) { + return a - b; +} + +function multiply(a, b) { + return a * b; +} + +function multiply_times_2(a, b) { + return multiply(a, b) * 2; +} + +add(2, 3); +multiply_times_2(10, 5); diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/output.generated.txt b/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/output.generated.txt new file mode 100644 index 0000000..b315054 --- /dev/null +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/output.generated.txt @@ -0,0 +1,11 @@ +// SOURCE: function add(a, b) { +// SOURCE-NEXT: return a + b; +// SOURCE-NEXT: } +// SOURCE-NEXT: function multiply(a, b) { +// SOURCE-NEXT: return a * b; +// SOURCE-NEXT: } +// SOURCE-NEXT: function multiply_times_2(a, b) { +// SOURCE-NEXT: return multiply(a, b) * 2; +// SOURCE-NEXT: } +// SOURCE-NEXT: add(2, 3); +// SOURCE-NEXT: multiply_times_2(10, 5); diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/run.generated.lit b/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/run.generated.lit new file mode 100644 index 0000000..408844b --- /dev/null +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/unused_function/run.generated.lit @@ -0,0 +1,4 @@ +// RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ +// RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ +// RUN: --passes "source2ast,ast2hir,dead_code_elimination,hir2ast,ast2source" \ +// RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/BUILD b/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/BUILD new file mode 100644 index 0000000..9f511e8 --- /dev/null +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/BUILD @@ -0,0 +1,31 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +load("//bazel:lit.bzl", "glob_lit_tests") + +package(default_applicable_licenses = ["//:license"]) + +licenses(["notice"]) + +glob_lit_tests( + name = "all_tests", + data = [ + "input.js", + "output.generated.txt", + "//maldoca/js/ir:lit_test_files", + ], + test_file_exts = [ + "lit", + ], +) diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/README.generated.md b/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/README.generated.md new file mode 100644 index 0000000..a796c46 --- /dev/null +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/README.generated.md @@ -0,0 +1,7 @@ +To run manually: + +```shell +bazel run //maldoca/js/ir:jsir_gen -- \ + --input_file $(pwd)/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/input.js \ + --passes "source2ast,ast2hir,dead_code_elimination,hir2ast,ast2source" +``` diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/input.js b/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/input.js new file mode 100644 index 0000000..4dae109 --- /dev/null +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/input.js @@ -0,0 +1,7 @@ +while(false){ + console.log("To be eliminated"); +} + +while(true){ + console.log("Should not be eliminated"); +} diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/output.generated.txt b/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/output.generated.txt new file mode 100644 index 0000000..64d1e02 --- /dev/null +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/output.generated.txt @@ -0,0 +1,3 @@ +// SOURCE: while (true) { +// SOURCE-NEXT: console.log("Should not be eliminated"); +// SOURCE-NEXT: } diff --git a/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/run.generated.lit b/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/run.generated.lit new file mode 100644 index 0000000..408844b --- /dev/null +++ b/maldoca/js/ir/transforms/dead_code_elimination/tests/while_statement/run.generated.lit @@ -0,0 +1,4 @@ +// RUN: CURRENT_FILE_BASENAME=$(basename %s .lit) && \ +// RUN: jsir_gen --input_file "$(dirname %s)"/input.js \ +// RUN: --passes "source2ast,ast2hir,dead_code_elimination,hir2ast,ast2source" \ +// RUN: | FileCheck --check-prefix SOURCE "$(dirname %s)"/output.generated.txt