|
@@ -88,7 +88,7 @@ module.exports =
|
|
/******/ __webpack_require__.p = "";
|
|
/******/ __webpack_require__.p = "";
|
|
/******/
|
|
/******/
|
|
/******/ // Load entry module and return exports
|
|
/******/ // Load entry module and return exports
|
|
-/******/ return __webpack_require__(__webpack_require__.s = 89);
|
|
|
|
|
|
+/******/ return __webpack_require__(__webpack_require__.s = 88);
|
|
/******/ })
|
|
/******/ })
|
|
/************************************************************************/
|
|
/************************************************************************/
|
|
/******/ ([
|
|
/******/ ([
|
|
@@ -167,11 +167,32 @@ var Utils = function () {
|
|
domain = domain.split(':')[0];
|
|
domain = domain.split(':')[0];
|
|
return domain;
|
|
return domain;
|
|
}
|
|
}
|
|
|
|
+ }, {
|
|
|
|
+ key: 'getRandomFloat',
|
|
|
|
+ value: function getRandomFloat(min, max) {
|
|
|
|
+ return Utils.getRandomGenerator().floating({
|
|
|
|
+ min: min,
|
|
|
|
+ max: max,
|
|
|
|
+ fixed: 7
|
|
|
|
+ });
|
|
|
|
+ }
|
|
}, {
|
|
}, {
|
|
key: 'getRandomGenerator',
|
|
key: 'getRandomGenerator',
|
|
value: function getRandomGenerator() {
|
|
value: function getRandomGenerator() {
|
|
|
|
+ var randomGenerator = Utils.randomGenerator;
|
|
|
|
+ if (!randomGenerator) {
|
|
|
|
+ throw new Error('`randomGenerator` static property is undefined');
|
|
|
|
+ }
|
|
return Utils.randomGenerator;
|
|
return Utils.randomGenerator;
|
|
}
|
|
}
|
|
|
|
+ }, {
|
|
|
|
+ key: 'getRandomInteger',
|
|
|
|
+ value: function getRandomInteger(min, max) {
|
|
|
|
+ return Utils.getRandomGenerator().integer({
|
|
|
|
+ min: min,
|
|
|
|
+ max: max
|
|
|
|
+ });
|
|
|
|
+ }
|
|
}, {
|
|
}, {
|
|
key: 'getRandomVariableName',
|
|
key: 'getRandomVariableName',
|
|
value: function getRandomVariableName() {
|
|
value: function getRandomVariableName() {
|
|
@@ -180,10 +201,7 @@ var Utils = function () {
|
|
var rangeMinInteger = 10000,
|
|
var rangeMinInteger = 10000,
|
|
rangeMaxInteger = 99999999,
|
|
rangeMaxInteger = 99999999,
|
|
prefix = '_0x';
|
|
prefix = '_0x';
|
|
- return '' + prefix + Utils.decToHex(Utils.getRandomGenerator().integer({
|
|
|
|
- min: rangeMinInteger,
|
|
|
|
- max: rangeMaxInteger
|
|
|
|
- })).substr(0, length);
|
|
|
|
|
|
+ return '' + prefix + Utils.decToHex(Utils.getRandomInteger(rangeMinInteger, rangeMaxInteger)).substr(0, length);
|
|
}
|
|
}
|
|
}, {
|
|
}, {
|
|
key: 'hideString',
|
|
key: 'hideString',
|
|
@@ -196,7 +214,7 @@ var Utils = function () {
|
|
i2 = -1,
|
|
i2 = -1,
|
|
result = '';
|
|
result = '';
|
|
while (i1 < s1.length || i2 < s2.length) {
|
|
while (i1 < s1.length || i2 < s2.length) {
|
|
- if (Math.random() < 0.5 && i2 < s2.length) {
|
|
|
|
|
|
+ if (Utils.getRandomFloat(0, 1) < 0.5 && i2 < s2.length) {
|
|
result += s2.charAt(++i2);
|
|
result += s2.charAt(++i2);
|
|
} else {
|
|
} else {
|
|
result += s1.charAt(++i1);
|
|
result += s1.charAt(++i1);
|
|
@@ -245,6 +263,11 @@ var Utils = function () {
|
|
}
|
|
}
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
+ }, {
|
|
|
|
+ key: 'setRandomGenerator',
|
|
|
|
+ value: function setRandomGenerator(randomGenerator) {
|
|
|
|
+ Utils.randomGenerator = randomGenerator;
|
|
|
|
+ }
|
|
}, {
|
|
}, {
|
|
key: 'strEnumify',
|
|
key: 'strEnumify',
|
|
value: function strEnumify(obj) {
|
|
value: function strEnumify(obj) {
|
|
@@ -640,10 +663,7 @@ var NodeAppender = function () {
|
|
}, {
|
|
}, {
|
|
key: 'getRandomStackTraceIndex',
|
|
key: 'getRandomStackTraceIndex',
|
|
value: function getRandomStackTraceIndex(stackTraceRootLength) {
|
|
value: function getRandomStackTraceIndex(stackTraceRootLength) {
|
|
- return Utils_1.Utils.getRandomGenerator().integer({
|
|
|
|
- min: 0,
|
|
|
|
- max: Math.max(0, Math.round(stackTraceRootLength - 1))
|
|
|
|
- });
|
|
|
|
|
|
+ return Utils_1.Utils.getRandomInteger(0, Math.max(0, Math.round(stackTraceRootLength - 1)));
|
|
}
|
|
}
|
|
}, {
|
|
}, {
|
|
key: 'insertNodeAtIndex',
|
|
key: 'insertNodeAtIndex',
|
|
@@ -1003,6 +1023,7 @@ exports.NO_CUSTOM_NODES_PRESET = Object.freeze({
|
|
domainLock: [],
|
|
domainLock: [],
|
|
reservedNames: [],
|
|
reservedNames: [],
|
|
rotateStringArray: false,
|
|
rotateStringArray: false,
|
|
|
|
+ seed: 0,
|
|
selfDefending: false,
|
|
selfDefending: false,
|
|
sourceMap: false,
|
|
sourceMap: false,
|
|
sourceMapBaseUrl: '',
|
|
sourceMapBaseUrl: '',
|
|
@@ -1070,7 +1091,9 @@ var NodeCallsControllerFunctionNode = function (_AbstractCustomNode_) {
|
|
if (this.appendState === AppendState_1.AppendState.AfterObfuscation) {
|
|
if (this.appendState === AppendState_1.AppendState.AfterObfuscation) {
|
|
return NodeUtils_1.NodeUtils.convertCodeToStructure(JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(SingleNodeCallControllerTemplate_1.SingleNodeCallControllerTemplate().formatUnicorn({
|
|
return NodeUtils_1.NodeUtils.convertCodeToStructure(JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(SingleNodeCallControllerTemplate_1.SingleNodeCallControllerTemplate().formatUnicorn({
|
|
singleNodeCallControllerFunctionName: this.callsControllerFunctionName
|
|
singleNodeCallControllerFunctionName: this.callsControllerFunctionName
|
|
- }), NoCustomNodesPreset_1.NO_CUSTOM_NODES_PRESET).getObfuscatedCode());
|
|
|
|
|
|
+ }), Object.assign({}, NoCustomNodesPreset_1.NO_CUSTOM_NODES_PRESET, {
|
|
|
|
+ seed: this.options.seed
|
|
|
|
+ })).getObfuscatedCode());
|
|
}
|
|
}
|
|
return NodeUtils_1.NodeUtils.convertCodeToStructure(SingleNodeCallControllerTemplate_1.SingleNodeCallControllerTemplate().formatUnicorn({
|
|
return NodeUtils_1.NodeUtils.convertCodeToStructure(SingleNodeCallControllerTemplate_1.SingleNodeCallControllerTemplate().formatUnicorn({
|
|
singleNodeCallControllerFunctionName: this.callsControllerFunctionName
|
|
singleNodeCallControllerFunctionName: this.callsControllerFunctionName
|
|
@@ -1127,7 +1150,7 @@ var StringLiteralReplacer = function (_AbstractReplacer_1$A) {
|
|
_createClass(StringLiteralReplacer, [{
|
|
_createClass(StringLiteralReplacer, [{
|
|
key: 'replace',
|
|
key: 'replace',
|
|
value: function replace(nodeValue) {
|
|
value: function replace(nodeValue) {
|
|
- var replaceWithStringArrayFlag = nodeValue.length >= StringLiteralReplacer.minimumLengthForStringArray && Math.random() <= this.options.stringArrayThreshold;
|
|
|
|
|
|
+ var replaceWithStringArrayFlag = nodeValue.length >= StringLiteralReplacer.minimumLengthForStringArray && Utils_1.Utils.getRandomFloat(0, 1) <= this.options.stringArrayThreshold;
|
|
if (this.options.stringArray && replaceWithStringArrayFlag) {
|
|
if (this.options.stringArray && replaceWithStringArrayFlag) {
|
|
return this.replaceStringLiteralWithStringArrayCall(nodeValue);
|
|
return this.replaceStringLiteralWithStringArrayCall(nodeValue);
|
|
}
|
|
}
|
|
@@ -1233,7 +1256,6 @@ exports.ObfuscationResult = ObfuscationResult;
|
|
"use strict";
|
|
"use strict";
|
|
|
|
|
|
exports.JSFuck = {
|
|
exports.JSFuck = {
|
|
- Window: '[]["filter"]["constructor"]("return this")()',
|
|
|
|
False: '![]',
|
|
False: '![]',
|
|
True: '!![]',
|
|
True: '!![]',
|
|
a: '(false+"")[1]',
|
|
a: '(false+"")[1]',
|
|
@@ -1349,6 +1371,7 @@ exports.DEFAULT_PRESET = Object.freeze({
|
|
domainLock: [],
|
|
domainLock: [],
|
|
reservedNames: [],
|
|
reservedNames: [],
|
|
rotateStringArray: true,
|
|
rotateStringArray: true,
|
|
|
|
+ seed: 0,
|
|
selfDefending: true,
|
|
selfDefending: true,
|
|
sourceMap: false,
|
|
sourceMap: false,
|
|
sourceMapBaseUrl: '',
|
|
sourceMapBaseUrl: '',
|
|
@@ -1391,10 +1414,12 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
|
|
|
|
|
var esprima = __webpack_require__(24);
|
|
var esprima = __webpack_require__(24);
|
|
var escodegen = __webpack_require__(13);
|
|
var escodegen = __webpack_require__(13);
|
|
|
|
+var chance_1 = __webpack_require__(82);
|
|
var ObfuscationResult_1 = __webpack_require__(20);
|
|
var ObfuscationResult_1 = __webpack_require__(20);
|
|
var Obfuscator_1 = __webpack_require__(28);
|
|
var Obfuscator_1 = __webpack_require__(28);
|
|
var Options_1 = __webpack_require__(57);
|
|
var Options_1 = __webpack_require__(57);
|
|
var SourceMapCorrector_1 = __webpack_require__(29);
|
|
var SourceMapCorrector_1 = __webpack_require__(29);
|
|
|
|
+var Utils_1 = __webpack_require__(0);
|
|
|
|
|
|
var JavaScriptObfuscatorInternal = function () {
|
|
var JavaScriptObfuscatorInternal = function () {
|
|
function JavaScriptObfuscatorInternal(sourceCode) {
|
|
function JavaScriptObfuscatorInternal(sourceCode) {
|
|
@@ -1417,6 +1442,9 @@ var JavaScriptObfuscatorInternal = function () {
|
|
var astTree = esprima.parse(this.sourceCode, {
|
|
var astTree = esprima.parse(this.sourceCode, {
|
|
loc: true
|
|
loc: true
|
|
});
|
|
});
|
|
|
|
+ if (this.options.seed !== 0) {
|
|
|
|
+ Utils_1.Utils.setRandomGenerator(new chance_1.Chance(this.options.seed));
|
|
|
|
+ }
|
|
astTree = new Obfuscator_1.Obfuscator(this.options).obfuscateNode(astTree);
|
|
astTree = new Obfuscator_1.Obfuscator(this.options).obfuscateNode(astTree);
|
|
this.generatorOutput = JavaScriptObfuscatorInternal.generateCode(this.sourceCode, astTree, this.options);
|
|
this.generatorOutput = JavaScriptObfuscatorInternal.generateCode(this.sourceCode, astTree, this.options);
|
|
}
|
|
}
|
|
@@ -1842,7 +1870,7 @@ var JavaScriptObfuscatorCLI = function () {
|
|
return val.split(',');
|
|
return val.split(',');
|
|
}).option('--reservedNames <list>', 'Disable obfuscation of variable names, function names and names of function parameters that match the passed RegExp patterns (comma separated)', function (val) {
|
|
}).option('--reservedNames <list>', 'Disable obfuscation of variable names, function names and names of function parameters that match the passed RegExp patterns (comma separated)', function (val) {
|
|
return val.split(',');
|
|
return val.split(',');
|
|
- }).option('--rotateStringArray <boolean>', 'Disable rotation of unicode array values during obfuscation', JavaScriptObfuscatorCLI.parseBoolean).option('--selfDefending <boolean>', 'Disables self-defending for obfuscated code', JavaScriptObfuscatorCLI.parseBoolean).option('--sourceMap <boolean>', 'Enables source map generation', JavaScriptObfuscatorCLI.parseBoolean).option('--sourceMapBaseUrl <string>', 'Sets base url to the source map import url when `--sourceMapMode=separate`').option('--sourceMapFileName <string>', 'Sets file name for output source map when `--sourceMapMode=separate`').option('--sourceMapMode <string> [inline, separate]', 'Specify source map output mode', JavaScriptObfuscatorCLI.parseSourceMapMode).option('--stringArray <boolean>', 'Disables gathering of all literal strings into an array and replacing every literal string with an array call', JavaScriptObfuscatorCLI.parseBoolean).option('--stringArrayEncoding <boolean|string> [true, false, base64, rc4]', 'Encodes all strings in strings array using base64 or rc4 (this option can slow down your code speed', JavaScriptObfuscatorCLI.parseStringArrayEncoding).option('--stringArrayThreshold <number>', 'The probability that the literal string will be inserted into stringArray (Default: 0.8, Min: 0, Max: 1)', parseFloat).option('--unicodeEscapeSequence <boolean>', 'Allows to enable/disable string conversion to unicode escape sequence', JavaScriptObfuscatorCLI.parseBoolean).parse(this.rawArguments);
|
|
|
|
|
|
+ }).option('--rotateStringArray <boolean>', 'Disable rotation of unicode array values during obfuscation', JavaScriptObfuscatorCLI.parseBoolean).option('--seed <number>', 'Sets seed for random generator. This is useful for creating repeatable results.', parseFloat).option('--selfDefending <boolean>', 'Disables self-defending for obfuscated code', JavaScriptObfuscatorCLI.parseBoolean).option('--sourceMap <boolean>', 'Enables source map generation', JavaScriptObfuscatorCLI.parseBoolean).option('--sourceMapBaseUrl <string>', 'Sets base url to the source map import url when `--sourceMapMode=separate`').option('--sourceMapFileName <string>', 'Sets file name for output source map when `--sourceMapMode=separate`').option('--sourceMapMode <string> [inline, separate]', 'Specify source map output mode', JavaScriptObfuscatorCLI.parseSourceMapMode).option('--stringArray <boolean>', 'Disables gathering of all literal strings into an array and replacing every literal string with an array call', JavaScriptObfuscatorCLI.parseBoolean).option('--stringArrayEncoding <boolean|string> [true, false, base64, rc4]', 'Encodes all strings in strings array using base64 or rc4 (this option can slow down your code speed', JavaScriptObfuscatorCLI.parseStringArrayEncoding).option('--stringArrayThreshold <number>', 'The probability that the literal string will be inserted into stringArray (Default: 0.8, Min: 0, Max: 1)', parseFloat).option('--unicodeEscapeSequence <boolean>', 'Allows to enable/disable string conversion to unicode escape sequence', JavaScriptObfuscatorCLI.parseBoolean).parse(this.rawArguments);
|
|
this.commands.on('--help', function () {
|
|
this.commands.on('--help', function () {
|
|
console.log(' Examples:\n');
|
|
console.log(' Examples:\n');
|
|
console.log(' %> javascript-obfuscator in.js --compact true --selfDefending false');
|
|
console.log(' %> javascript-obfuscator in.js --compact true --selfDefending false');
|
|
@@ -2131,10 +2159,7 @@ var DebugProtectionFunctionNode = function (_AbstractCustomNode_) {
|
|
key: 'appendNode',
|
|
key: 'appendNode',
|
|
value: function appendNode(blockScopeNode) {
|
|
value: function appendNode(blockScopeNode) {
|
|
var programBodyLength = blockScopeNode.body.length,
|
|
var programBodyLength = blockScopeNode.body.length,
|
|
- randomIndex = Utils_1.Utils.getRandomGenerator().integer({
|
|
|
|
- min: 0,
|
|
|
|
- max: programBodyLength
|
|
|
|
- });
|
|
|
|
|
|
+ randomIndex = Utils_1.Utils.getRandomInteger(0, programBodyLength);
|
|
NodeAppender_1.NodeAppender.insertNodeAtIndex(blockScopeNode, this.getNode(), randomIndex);
|
|
NodeAppender_1.NodeAppender.insertNodeAtIndex(blockScopeNode, this.getNode(), randomIndex);
|
|
}
|
|
}
|
|
}, {
|
|
}, {
|
|
@@ -2273,7 +2298,9 @@ var SelfDefendingUnicodeNode = function (_AbstractCustomNode_) {
|
|
return NodeUtils_1.NodeUtils.convertCodeToStructure(JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(SelfDefendingTemplate_1.SelfDefendingTemplate().formatUnicorn({
|
|
return NodeUtils_1.NodeUtils.convertCodeToStructure(JavaScriptObfuscator_1.JavaScriptObfuscator.obfuscate(SelfDefendingTemplate_1.SelfDefendingTemplate().formatUnicorn({
|
|
selfDefendingFunctionName: Utils_1.Utils.getRandomVariableName(),
|
|
selfDefendingFunctionName: Utils_1.Utils.getRandomVariableName(),
|
|
singleNodeCallControllerFunctionName: this.callsControllerFunctionName
|
|
singleNodeCallControllerFunctionName: this.callsControllerFunctionName
|
|
- }), NoCustomNodesPreset_1.NO_CUSTOM_NODES_PRESET).getObfuscatedCode());
|
|
|
|
|
|
+ }), Object.assign({}, NoCustomNodesPreset_1.NO_CUSTOM_NODES_PRESET, {
|
|
|
|
+ seed: this.options.seed
|
|
|
|
+ })).getObfuscatedCode());
|
|
}
|
|
}
|
|
}]);
|
|
}]);
|
|
|
|
|
|
@@ -2385,7 +2412,9 @@ var StringArrayCallsWrapper = function (_AbstractCustomNode_) {
|
|
decodeNodeTemplate: decodeNodeTemplate,
|
|
decodeNodeTemplate: decodeNodeTemplate,
|
|
stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
|
|
stringArrayCallsWrapperName: this.stringArrayCallsWrapperName,
|
|
stringArrayName: this.stringArrayName
|
|
stringArrayName: this.stringArrayName
|
|
- }), NoCustomNodesPreset_1.NO_CUSTOM_NODES_PRESET).getObfuscatedCode());
|
|
|
|
|
|
+ }), Object.assign({}, NoCustomNodesPreset_1.NO_CUSTOM_NODES_PRESET, {
|
|
|
|
+ seed: this.options.seed
|
|
|
|
+ })).getObfuscatedCode());
|
|
}
|
|
}
|
|
}]);
|
|
}]);
|
|
|
|
|
|
@@ -2557,7 +2586,9 @@ var StringArrayRotateFunctionNode = function (_AbstractCustomNode_) {
|
|
stringArrayName: this.stringArrayName,
|
|
stringArrayName: this.stringArrayName,
|
|
stringArrayRotateValue: Utils_1.Utils.decToHex(this.stringArrayRotateValue),
|
|
stringArrayRotateValue: Utils_1.Utils.decToHex(this.stringArrayRotateValue),
|
|
whileFunctionName: whileFunctionName
|
|
whileFunctionName: whileFunctionName
|
|
- }), NoCustomNodesPreset_1.NO_CUSTOM_NODES_PRESET).getObfuscatedCode());
|
|
|
|
|
|
+ }), Object.assign({}, NoCustomNodesPreset_1.NO_CUSTOM_NODES_PRESET, {
|
|
|
|
+ seed: this.options.seed
|
|
|
|
+ })).getObfuscatedCode());
|
|
}
|
|
}
|
|
}]);
|
|
}]);
|
|
|
|
|
|
@@ -2805,10 +2836,7 @@ var StringArrayNodesGroup = function (_AbstractNodesGroup_) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
if (this.options.rotateStringArray) {
|
|
if (this.options.rotateStringArray) {
|
|
- this.stringArrayRotateValue = Utils_1.Utils.getRandomGenerator().integer({
|
|
|
|
- min: 100,
|
|
|
|
- max: 500
|
|
|
|
- });
|
|
|
|
|
|
+ this.stringArrayRotateValue = Utils_1.Utils.getRandomInteger(100, 500);
|
|
} else {
|
|
} else {
|
|
this.stringArrayRotateValue = 0;
|
|
this.stringArrayRotateValue = 0;
|
|
}
|
|
}
|
|
@@ -3593,6 +3621,7 @@ __decorate([class_validator_1.IsArray(), class_validator_1.ArrayUnique(), class_
|
|
each: true
|
|
each: true
|
|
}), __metadata('design:type', Array)], Options.prototype, "reservedNames", void 0);
|
|
}), __metadata('design:type', Array)], Options.prototype, "reservedNames", void 0);
|
|
__decorate([class_validator_1.IsBoolean(), __metadata('design:type', Boolean)], Options.prototype, "rotateStringArray", void 0);
|
|
__decorate([class_validator_1.IsBoolean(), __metadata('design:type', Boolean)], Options.prototype, "rotateStringArray", void 0);
|
|
|
|
+__decorate([class_validator_1.IsNumber(), __metadata('design:type', Number)], Options.prototype, "seed", void 0);
|
|
__decorate([class_validator_1.IsBoolean(), __metadata('design:type', Boolean)], Options.prototype, "selfDefending", void 0);
|
|
__decorate([class_validator_1.IsBoolean(), __metadata('design:type', Boolean)], Options.prototype, "selfDefending", void 0);
|
|
__decorate([class_validator_1.IsBoolean(), __metadata('design:type', Boolean)], Options.prototype, "sourceMap", void 0);
|
|
__decorate([class_validator_1.IsBoolean(), __metadata('design:type', Boolean)], Options.prototype, "sourceMap", void 0);
|
|
__decorate([class_validator_1.IsString(), class_validator_1.ValidateIf(function (options) {
|
|
__decorate([class_validator_1.IsString(), class_validator_1.ValidateIf(function (options) {
|
|
@@ -4271,7 +4300,7 @@ exports.DebugProtectionFunctionIntervalTemplate = DebugProtectionFunctionInterva
|
|
|
|
|
|
var Utils_1 = __webpack_require__(0);
|
|
var Utils_1 = __webpack_require__(0);
|
|
function DebugProtectionFunctionTemplate() {
|
|
function DebugProtectionFunctionTemplate() {
|
|
- return '\n var {debugProtectionFunctionName} = function () {\n function debuggerProtection (counter) {\n if ((\'\' + counter / counter)[\'length\'] !== 1 || counter % 20 === 0) {\n (function () {}.constructor(\'debugger\')());\n } else {\n [].filter.constructor(' + Utils_1.Utils.stringToJSFuck('debugger') + ')();\n }\n \n debuggerProtection(++counter);\n }\n \n try {\n debuggerProtection(0);\n } catch (y) {}\n };\n ';
|
|
|
|
|
|
+ return '\n var {debugProtectionFunctionName} = function () {\n function debuggerProtection (counter) {\n if ((\'\' + counter / counter)[\'length\'] !== 1 || counter % 20 === 0) {\n (function () {}.constructor(' + Utils_1.Utils.stringToJSFuck('debugger') + ')());\n } else {\n (function () {}.constructor(' + Utils_1.Utils.stringToJSFuck('debugger') + ')());\n }\n \n debuggerProtection(++counter);\n }\n \n try {\n debuggerProtection(0);\n } catch (y) {}\n };\n ';
|
|
}
|
|
}
|
|
exports.DebugProtectionFunctionTemplate = DebugProtectionFunctionTemplate;
|
|
exports.DebugProtectionFunctionTemplate = DebugProtectionFunctionTemplate;
|
|
|
|
|
|
@@ -4432,8 +4461,7 @@ module.exports = require("mkdirp");
|
|
|
|
|
|
/***/ },
|
|
/***/ },
|
|
/* 87 */,
|
|
/* 87 */,
|
|
-/* 88 */,
|
|
|
|
-/* 89 */
|
|
|
|
|
|
+/* 88 */
|
|
/***/ function(module, exports, __webpack_require__) {
|
|
/***/ function(module, exports, __webpack_require__) {
|
|
|
|
|
|
"use strict";
|
|
"use strict";
|