New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

atom-ide-mocha-core

Package Overview
Dependencies
Maintainers
2
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

atom-ide-mocha-core - npm Package Compare versions

Comparing version 1.3.0 to 1.4.0

src/definitions/config.js

17

CHANGELOG.md

@@ -6,2 +6,19 @@ # Change Log

# [1.4.0](https://github.com/Dreamscapes/atom-ide-mocha-core/compare/atom-ide-mocha-core@1.3.0...atom-ide-mocha-core@1.4.0) (2018-11-16)
### Bug Fixes
* remove forgotten console.log() ([10e4851](https://github.com/Dreamscapes/atom-ide-mocha-core/commit/10e4851))
### Features
* add option to configure console verbosity 💬 ([88325f6](https://github.com/Dreamscapes/atom-ide-mocha-core/commit/88325f6))
* allow changing the interface without restarting Atom 💪 ([b117818](https://github.com/Dreamscapes/atom-ide-mocha-core/commit/b117818))
# [1.3.0](https://github.com/Dreamscapes/atom-ide-mocha-core/compare/atom-ide-mocha-core@1.2.2...atom-ide-mocha-core@1.3.0) (2018-11-15)

@@ -8,0 +25,0 @@

4

package.json
{
"name": "atom-ide-mocha-core",
"description": "Code for IDE-Mocha Atom package",
"version": "1.3.0",
"version": "1.4.0",
"author": {

@@ -35,3 +35,3 @@ "name": "Robert Rossmann",

},
"gitHead": "936c74f3b3db6f8842770b7ca93a3a2c0c9fc88a"
"gitHead": "bc683db1eebb79423dea38a8da5ca1276aba7396"
}

@@ -18,3 +18,3 @@ "use strict";

var _config = require("./config");
var _definitions = require("./definitions");

@@ -35,4 +35,6 @@ var _session = require("./session");

constructor() {
_defineProperty(this, "config", _config.config);
_defineProperty(this, "config", _definitions.config);
_defineProperty(this, "menus", _definitions.menus);
_defineProperty(this, "commands", {

@@ -85,2 +87,4 @@ 'ide-mocha:print-address-info': this.doPrintAddressInfo.bind(this),

_classPrivateFieldGet(this, _subscriptions).add(atom.menu.add(this.menus));
_classPrivateFieldGet(this, _subscriptions).add(atom.config.onDidChange('ide-mocha', this.didChangeConfig.bind(this)));

@@ -232,9 +236,8 @@

didChangeConfig(change) {
async didChangeConfig(change) {
_classPrivateFieldSet(this, _settings, change.newValue);
if (change.newValue.interface !== change.oldValue.interface) {
atom.notifications.addInfo('Please reload Atom for the interface change to take effect.', {
description: '**IDE-Mocha**'
});
await this.didChangePaths([]);
await this.didChangePaths(atom.project.getPaths());
}

@@ -301,3 +304,4 @@ }

busy: _classPrivateFieldGet(this, _busy),
console: _classPrivateFieldGet(this, _console)
console: _classPrivateFieldGet(this, _console),
verbosity: _classPrivateFieldGet(this, _settings).verbosity
});

@@ -368,2 +372,2 @@

var _settings = new WeakMap();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlkZS1tb2NoYS5tanMiXSwibmFtZXMiOlsiSEVMUF9URU1QTEFURSIsImZzIiwicmVhZEZpbGVTeW5jIiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJJZGVNb2NoYSIsImNvbmZpZyIsImRvUHJpbnRBZGRyZXNzSW5mbyIsImRvQ29weVJlY2VpdmVyQWRkcmVzcyIsImRvQ29weU1vY2hhQ29tbWFuZCIsImRvU2hvd0hlbHAiLCJhY3RpdmF0ZSIsIk1hcCIsImF0b20iLCJnZXQiLCJDb21wb3NpdGVEaXNwb3NhYmxlIiwiYWRkIiwiY29tbWFuZHMiLCJvbkRpZENoYW5nZSIsImRpZENoYW5nZUNvbmZpZyIsInByb2plY3QiLCJvbkRpZENoYW5nZVBhdGhzIiwiZGlkQ2hhbmdlUGF0aHMiLCJzZXRJbW1lZGlhdGUiLCJnZXRQYXRocyIsImRlYWN0aXZhdGUiLCJkaXNwb3NlIiwiY29uc3VtZUJ1c3lTaWduYWwiLCJidXN5IiwiY29uc3VtZUNvbnNvbGUiLCJta2NvbnNvbGUiLCJpZCIsIm5hbWUiLCJjb25zdW1lTGludGVyIiwibWtsaW50ZXIiLCJmb2xkZXIiLCJhZGRyZXNzIiwiZW50cmllcyIsImxvZyIsImJhc2VuYW1lIiwidXRpbCIsIm9wZW5Db25zb2xlIiwicHJpbWFyeSIsInNoaWZ0IiwiY2xpcGJvYXJkIiwid3JpdGUiLCJub3RpZmljYXRpb25zIiwiYWRkU3VjY2VzcyIsImRlc2NyaXB0aW9uIiwiY29tbWFuZCIsIm1rY29tbWFuZGluZm8iLCJzaG93SGVscE5vdGlmaWNhdGlvbiIsImhlbHAiLCJyZXBsYWNlIiwiYWRkSW5mbyIsImljb24iLCJkaXNtaXNzYWJsZSIsImJ1dHRvbnMiLCJ0ZXh0IiwiY2xhc3NOYW1lIiwib25EaWRDbGljayIsInNob3dTdWNjZXNzTm90aWZpY2F0aW9uIiwic3RhdHMiLCJkZXRhaWwiLCJta3N0YXRzIiwic2hvd0ZhaWx1cmVOb3RpZmljYXRpb24iLCJhZGRFcnJvciIsImNoYW5nZSIsIm5ld1ZhbHVlIiwiaW50ZXJmYWNlIiwib2xkVmFsdWUiLCJwYXRocyIsInJlbW92ZWQiLCJBcnJheSIsImZyb20iLCJrZXlzIiwiZmlsdGVyIiwiaW5jbHVkZXMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiZGVzdHJveVJlbW90ZUZvckZvbGRlciIsImNyZWF0ZVJlbW90ZUZvckZvbGRlciIsImhhcyIsInR5cGUiLCJzb2NrZXQiLCJDb25zdW1lciIsIm1rYWRkcmVzcyIsInJvb3QiLCJyZW1vdGUiLCJzZXQiLCJ1bmxpbmsiLCJvbiIsInNvdXJjZSIsImRpZFJlY2VpdmVDb25uZWN0aW9uIiwibGlzdGVuIiwiZGVsZXRlIiwiY2xvc2UiLCJzZXNzaW9uIiwiU2Vzc2lvbiIsImxpbnRlciIsImNvbnNvbGUiLCJvcGVuQ29uc29sZU9uU3RhcnQiLCJydW5uZXIiLCJkaWRTdGFydFJ1bm5pbmciLCJkaWRGaW5pc2hSdW5uaW5nIiwic3VpdGUiLCJkaWRTdGFydFN1aXRlIiwiZGlkRmluaXNoVGVzdCIsInRlc3QiLCJkaWRQYXNzVGVzdCIsImVyciIsImRpZEZhaWxUZXN0IiwiZGlkU2tpcFRlc3QiLCJkaWRDbG9zZSIsIm9uY2UiLCJmYWlsdXJlcyIsIm9wZW5Db25zb2xlT25GYWlsdXJlIiwibm90aWZ5T25GYWlsdXJlIiwibm90aWZ5T25TdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQSxNQUFNQSxhQUFhLEdBQUdDLFlBQUdDLFlBQUgsQ0FBZ0JDLGNBQUtDLE9BQUwsQ0FBYUMsU0FBYixFQUF3QixRQUF4QixFQUFrQyxTQUFsQyxDQUFoQixFQUE4RCxNQUE5RCxDQUF0Qjs7QUFFQSxNQUFNQyxRQUFOLENBQWU7QUFBQTtBQUFBLG9DQUNKQyxjQURJOztBQUFBLHNDQUVGO0FBQ1Qsc0NBQWtDLEtBQUtDLGtCQUF2QyxNQUFrQyxJQUFsQyxDQURTO0FBRVQseUNBQXFDLEtBQUtDLHFCQUExQyxNQUFxQyxJQUFyQyxD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QXBCLENBQTFCO0FBQ0FoQixJQUFBQSxNQUFNLENBQUNELEVBQVAsQ0FBVSxNQUFWLEVBQWtCLENBQUNpQixJQUFELEVBQU9FLEdBQVAsS0FBZWIsT0FBTyxDQUFDYyxXQUFSLENBQW9CO0FBQUVILE1BQUFBLElBQUY7QUFBUUUsTUFBQUE7QUFBUixLQUFwQixDQUFqQztBQUNBbEIsSUFBQUEsTUFBTSxDQUFDRCxFQUFQLENBQVUsU0FBVixFQUFxQmlCLElBQUksSUFBSVgsT0FBTyxDQUFDZSxXQUFSLENBQW9CO0FBQUVKLE1BQUFBO0FBQUYsS0FBcEIsQ0FBN0I7QUFDQWhCLElBQUFBLE1BQU0sQ0FBQ0QsRUFBUCxDQUFVLE9BQVYsRUFBbUIsTUFBTU0sT0FBTyxDQUFDZ0IsUUFBUixFQUF6QjtBQUVBaEIsSUFBQUEsT0FBTyxDQUFDaUIsSUFBUixDQUFhLE9BQWIsRUFBc0IsQ0FBQztBQUFFckQsTUFBQUE7QUFBRixLQUFELEtBQWU7QUFDbkMsVUFBSUEsS0FBSyxDQUFDc0QsUUFBVixFQUFvQjtBQUNsQixZQUFJLHVDQUFlQyxvQkFBbkIsRUFBeUM7QUFDdkM3RSxVQUFBQSxJQUFJLENBQUNDLFdBQUw7QUFDRDs7QUFFRCxZQUFJLHVDQUFlNkUsZUFBbkIsRUFBb0M7QUFDbEMsZUFBS3JELHVCQUFMLENBQTZCO0FBQUVILFlBQUFBO0FBQUYsV0FBN0I7QUFDRDtBQUNGOztBQUVELFVBQUksQ0FBQ0EsS0FBSyxDQUFDc0QsUUFBUCxJQUFtQix1Q0FBZUcsZUFBdEMsRUFBdUQ7QUFDckQsYUFBSzFELHVCQUFMLENBQTZCO0FBQUVDLFVBQUFBO0FBQUYsU0FBN0I7QUFDRDtBQUNGLEtBZEQ7QUFlRDs7QUFwUFkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb3NpdGVEaXNwb3NhYmxlIH0gZnJvbSAnYXRvbSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgeyBDb25zdW1lciB9IGZyb20gJ3JlbW90ZS1ldmVudC1lbWl0dGVyJ1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuL3V0aWwnXG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICcuL2NvbmZpZydcbmltcG9ydCB7IFNlc3Npb24gfSBmcm9tICcuL3Nlc3Npb24nXG5cbmNvbnN0IEhFTFBfVEVNUExBVEUgPSBmcy5yZWFkRmlsZVN5bmMocGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3N0YXRpYycsICdoZWxwLm1kJyksICd1dGY4JylcblxuY2xhc3MgSWRlTW9jaGEge1xuICBjb25maWcgPSBjb25maWdcbiAgY29tbWFuZHMgPSB7XG4gICAgJ2lkZS1tb2NoYTpwcmludC1hZGRyZXNzLWluZm8nOiA6OnRoaXMuZG9QcmludEFkZHJlc3NJbmZvLFxuICAgICdpZGUtbW9jaGE6Y29weS1yZWNlaXZlci1hZGRyZXNzJzogOjp0aGlzLmRvQ29weVJlY2VpdmVyQWRkcmVzcyxcbiAgICAnaWRlLW1vY2hhOmNvcHktbW9jaGEtY29tbWFuZCc6IDo6dGhpcy5kb0NvcHlNb2NoYUNvbW1hbmQsXG4gICAgJ2lkZS1tb2NoYTpzaG93LWhlbHAnOiA6OnRoaXMuZG9TaG93SGVscCxcbiAgfVxuXG4gICNzdWJzY3JpcHRpb25zID0gbnVsbFxuICAjYnVzeSA9IG51bGxcbiAgI2NvbnNvbGUgPSBudWxsXG4gICNsaW50ZXIgPSBudWxsXG4gICNyZW1vdGVzID0gbnVsbFxuICAjc2V0dGluZ3MgPSBudWxsXG5cbiAgLy8gTElGRUNZQ0xFXG5cbiAgYWN0aXZhdGUoKSB7XG4gICAgdGhpcy4jcmVtb3RlcyA9IG5ldyBNYXAoKVxuICAgIHRoaXMuI3NldHRpbmdzID0gYXRvbS5jb25maWcuZ2V0KCdpZGUtbW9jaGEnKVxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMgPSBuZXcgQ29tcG9zaXRlRGlzcG9zYWJsZSgpXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQoYXRvbS5jb21tYW5kcy5hZGQoJ2F0b20td29ya3NwYWNlJywgdGhpcy5jb21tYW5kcykpXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQoYXRvbS5jb25maWcub25EaWRDaGFuZ2UoJ2lkZS1tb2NoYScsIDo6dGhpcy5kaWRDaGFuZ2VDb25maWcpKVxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuYWRkKGF0b20ucHJvamVjdC5vbkRpZENoYW5nZVBhdGhzKDo6dGhpcy5kaWRDaGFuZ2VQYXRocykpXG4gICAgLy8gSW5pdGlhbCBzb2NrZXQgc2V0dXAgYmVjYXVzZSB0aGUgYWJvdmUgbGlzdGVuZXIgaXMgbm90IHRyaWdnZXJlZCBhdCBBdG9tIHN0YXJ0dXAgRGVsYXkgc29ja2V0XG4gICAgLy8gYWN0aXZhdGlvbiBkdWUgdG8gQXRvbSBzb21ldGltZXMgbm90IHJldHVybmluZyBwcm9qZWN0IHBhdGhzIHdoZW4gd2UgZ2V0IGFjdGl2YXRlZCDwn6S34oCN4pmC77iPXG4gICAgc2V0SW1tZWRpYXRlKCgpID0+IHRoaXMuZGlkQ2hhbmdlUGF0aHMoYXRvbS5wcm9qZWN0LmdldFBhdGhzKCkpKVxuICB9XG5cbiAgYXN5bmMgZGVhY3RpdmF0ZSgpIHtcbiAgICAvLyBDbG9zZSBhbGwgb3BlbmVkIHJlbW90ZXNcbiAgICBhd2FpdCB0aGlzLmRpZENoYW5nZVBhdGhzKFtdKVxuXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5kaXNwb3NlKClcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zID0gbnVsbFxuICAgIHRoaXMuI2J1c3kgPSBudWxsXG4gICAgdGhpcy4jY29uc29sZSA9IG51bGxcbiAgICB0aGlzLiNsaW50ZXIgPSBudWxsXG4gICAgdGhpcy4jcmVtb3RlcyA9IG5ldyBNYXAoKVxuICAgIHRoaXMuI3NldHRpbmdzID0gbnVsbFxuICB9XG5cbiAgLy8gQ09OU1VNRUQgU0VSVklDRVNcblxuICBjb25zdW1lQnVzeVNpZ25hbChidXN5KSB7XG4gICAgdGhpcy4jYnVzeSA9IGJ1c3lcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZCh0aGlzLiNidXN5KVxuICB9XG5cbiAgY29uc3VtZUNvbnNvbGUobWtjb25zb2xlKSB7XG4gICAgdGhpcy4jY29uc29sZSA9IG1rY29uc29sZSh7XG4gICAgICBpZDogJ0lERS1Nb2NoYScsXG4gICAgICBuYW1lOiAnSURFLU1vY2hhJyxcbiAgICB9KVxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuYWRkKHRoaXMuI2NvbnNvbGUpXG4gIH1cblxuICBjb25zdW1lTGludGVyKG1rbGludGVyKSB7XG4gICAgdGhpcy4jbGludGVyID0gbWtsaW50ZXIoe1xuICAgICAgbmFtZTogJ0lERS1Nb2NoYScsXG4gICAgfSlcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZCh0aGlzLiNsaW50ZXIpXG4gIH1cblxuXG4gIC8vIENPTU1BTkRTXG5cbiAgZG9QcmludEFkZHJlc3NJbmZvKCkge1xuICAgIGZvciAoY29uc3QgW2ZvbGRlciwgeyBhZGRyZXNzIH1dIG9mIHRoaXMuI3JlbW90ZXMuZW50cmllcygpKSB7XG4gICAgICB0aGlzLiNjb25zb2xlLmxvZyhgJHtwYXRoLmJhc2VuYW1lKGZvbGRlcil9OiAke2FkZHJlc3N9YClcbiAgICB9XG5cbiAgICByZXR1cm4gdXRpbC5vcGVuQ29uc29sZSgpXG4gIH1cblxuICBkb0NvcHlSZWNlaXZlckFkZHJlc3MoKSB7XG4gICAgY29uc3QgcHJpbWFyeSA9IGF0b20ucHJvamVjdC5nZXRQYXRocygpLnNoaWZ0KClcbiAgICBjb25zdCBhZGRyZXNzID0gdGhpcy4jcmVtb3Rlcy5nZXQocHJpbWFyeSkuYWRkcmVzc1xuXG4gICAgYXRvbS5jbGlwYm9hcmQud3JpdGUoYWRkcmVzcylcbiAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkU3VjY2VzcyhgQ29waWVkIGZvciBwcm9qZWN0IGZvbGRlcjogJHtwYXRoLmJhc2VuYW1lKHByaW1hcnkpfSFgLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJyoqSURFLU1vY2hhKionLFxuICAgIH0pXG4gIH1cblxuICBkb0NvcHlNb2NoYUNvbW1hbmQoKSB7XG4gICAgY29uc3QgcHJpbWFyeSA9IGF0b20ucHJvamVjdC5nZXRQYXRocygpLnNoaWZ0KClcbiAgICBjb25zdCBhZGRyZXNzID0gdGhpcy4jcmVtb3Rlcy5nZXQocHJpbWFyeSkuYWRkcmVzc1xuICAgIGNvbnN0IGNvbW1hbmQgPSB1dGlsLm1rY29tbWFuZGluZm8oeyBhZGRyZXNzIH0pXG5cbiAgICBhdG9tLmNsaXBib2FyZC53cml0ZShjb21tYW5kKVxuICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRTdWNjZXNzKGBDb3BpZWQgZm9yIHByb2plY3QgZm9sZGVyOiAke3BhdGguYmFzZW5hbWUocHJpbWFyeSl9IWAsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnKipJREUtTW9jaGEqKicsXG4gICAgfSlcbiAgfVxuXG4gIGRvU2hvd0hlbHAoKSB7XG4gICAgY29uc3QgcHJpbWFyeSA9IGF0b20ucHJvamVjdC5nZXRQYXRocygpLnNoaWZ0KClcbiAgICBjb25zdCBhZGRyZXNzID0gdGhpcy4jcmVtb3Rlcy5nZXQocHJpbWFyeSkuYWRkcmVzc1xuICAgIGNvbnN0IGNvbW1hbmQgPSB1dGlsLm1rY29tbWFuZGluZm8oeyBhZGRyZXNzIH0pXG5cbiAgICByZXR1cm4gdGhpcy5zaG93SGVscE5vdGlmaWNhdGlvbih7IGNvbW1hbmQgfSlcbiAgfVxuXG5cbiAgLy8gVEVTVCBSRVNVTFRTIE5PVElGSUNBVElPTlNcblxuICBzaG93SGVscE5vdGlmaWNhdGlvbih7IGNvbW1hbmQgfSkge1xuICAgIGNvbnN0IGhlbHAgPSBIRUxQX1RFTVBMQVRFLnJlcGxhY2UoJyN7Q09NTUFORH0nLCBjb21tYW5kKVxuXG4gICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZEluZm8oJ0lERS1Nb2NoYTogSGVscCcsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBoZWxwLFxuICAgICAgaWNvbjogJ21vcnRhci1ib2FyZCcsXG4gICAgICBkaXNtaXNzYWJsZTogdHJ1ZSxcbiAgICAgIGJ1dHRvbnM6IFt7XG4gICAgICAgIC8vIEV4dHJhIHNwYWNlIHRvIG1ha2Ugcm9vbSBiZXR3ZWVuIHRoZSBjbGlwcHkgaWNvbiBhbmQgdGV4dCDwn46oXG4gICAgICAgIHRleHQ6ICcgQ29weSBNb2NoYSBjb21tYW5kJyxcbiAgICAgICAgY2xhc3NOYW1lOiAnYnRuIGJ0bi1pbmZvIGljb24tY2xpcHB5IHNlbGVjdGVkJyxcbiAgICAgICAgb25EaWRDbGljazogOjp0aGlzLmRvQ29weVJlY2VpdmVyQWRkcmVzcyxcbiAgICAgIH0sIHtcbiAgICAgICAgdGV4dDogJyBTaG93IHNvY2tldHMgZm9yIGFsbCBmb2xkZXJzJyxcbiAgICAgICAgY2xhc3NOYW1lOiAnYnRuIGJ0bi1pbmZvJyxcbiAgICAgICAgb25EaWRDbGljazogOjp0aGlzLmRvUHJpbnRBZGRyZXNzSW5mbyxcbiAgICAgIH1dLFxuICAgIH0pXG4gIH1cblxuICBzaG93U3VjY2Vzc05vdGlmaWNhdGlvbih7IHN0YXRzIH0pIHtcbiAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkU3VjY2VzcygnVGVzdCBzdWl0ZSBwYXNzZWQuJywge1xuICAgICAgZGVzY3JpcHRpb246ICcqKklERS1Nb2NoYSoqJyxcbiAgICAgIGRldGFpbDogdXRpbC5ta3N0YXRzKHsgc3RhdHMgfSksXG4gICAgICBidXR0b25zOiBbe1xuICAgICAgICB0ZXh0OiAnT3BlbiBDb25zb2xlJyxcbiAgICAgICAgb25EaWRDbGljazogdXRpbC5vcGVuQ29uc29sZSxcbiAgICAgIH1dLFxuICAgIH0pXG4gIH1cblxuICBzaG93RmFpbHVyZU5vdGlmaWNhdGlvbih7IHN0YXRzIH0pIHtcbiAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkRXJyb3IoJ1Rlc3Qgc3VpdGUgZmFpbGVkLicsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnKipJREUtTW9jaGEqKicsXG4gICAgICBkZXRhaWw6IHV0aWwubWtzdGF0cyh7IHN0YXRzIH0pLFxuICAgICAgYnV0dG9uczogW3tcbiAgICAgICAgdGV4dDogJ09wZW4gQ29uc29sZScsXG4gICAgICAgIG9uRGlkQ2xpY2s6IHV0aWwub3BlbkNvbnNvbGUsXG4gICAgICB9XSxcbiAgICB9KVxuICB9XG5cblxuICAvLyBJTVBMRU1FTlRBVElPTlxuXG4gIGRpZENoYW5nZUNvbmZpZyhjaGFuZ2UpIHtcbiAgICB0aGlzLiNzZXR0aW5ncyA9IGNoYW5nZS5uZXdWYWx1ZVxuXG4gICAgLy8gQFRPRE86IENsb3NlIHNvY2tldHMgYW5kIGNyZWF0ZSBuZXcgb25lcyB3aGVuIHRoZSBpbnRlcmZhY2UgY2hhbmdlcyDimqDvuI9cbiAgICBpZiAoY2hhbmdlLm5ld1ZhbHVlLmludGVyZmFjZSAhPT0gY2hhbmdlLm9sZFZhbHVlLmludGVyZmFjZSkge1xuICAgICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZEluZm8oJ1BsZWFzZSByZWxvYWQgQXRvbSBmb3IgdGhlIGludGVyZmFjZSBjaGFuZ2UgdG8gdGFrZSBlZmZlY3QuJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJyoqSURFLU1vY2hhKionLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBhc3luYyBkaWRDaGFuZ2VQYXRocyhwYXRocykge1xuICAgIGNvbnN0IHJlbW92ZWQgPSBBcnJheVxuICAgICAgLmZyb20odGhpcy4jcmVtb3Rlcy5rZXlzKCkpXG4gICAgICAuZmlsdGVyKGZvbGRlciA9PiAhcGF0aHMuaW5jbHVkZXMoZm9sZGVyKSlcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKHJlbW92ZWQubWFwKDo6dGhpcy5kZXN0cm95UmVtb3RlRm9yRm9sZGVyKSlcbiAgICBhd2FpdCBQcm9taXNlLmFsbChwYXRocy5tYXAoOjp0aGlzLmNyZWF0ZVJlbW90ZUZvckZvbGRlcikpXG4gIH1cblxuICBhc3luYyBjcmVhdGVSZW1vdGVGb3JGb2xkZXIoZm9sZGVyKSB7XG4gICAgLy8gVGhpcyBwcm9qZWN0IGZvbGRlciBhbHJlYWR5IGhhcyBhIHNvY2tldCwgbW92ZSBvblxuICAgIGlmICh0aGlzLiNyZW1vdGVzLmhhcyhmb2xkZXIpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCB0eXBlID0gdGhpcy4jc2V0dGluZ3MuaW50ZXJmYWNlXG4gICAgY29uc3Qgc29ja2V0ID0gbmV3IENvbnN1bWVyKClcbiAgICBjb25zdCBhZGRyZXNzID0gdXRpbC5ta2FkZHJlc3MoeyByb290OiBmb2xkZXIsIHR5cGUgfSlcbiAgICBjb25zdCByZW1vdGUgPSB7IGFkZHJlc3MsIHNvY2tldCB9XG4gICAgdGhpcy4jcmVtb3Rlcy5zZXQoZm9sZGVyLCByZW1vdGUpXG5cbiAgICAvLyBFbnN1cmUgdGhlIHNvY2tldCBkb2VzIG5vdCBleGlzdCBiZWZvcmUgd2UgYmluZCB0byBpdC4gQW5kIHllcywganVzdCBpZ25vcmUgYW55IGVycm9yc1xuICAgIC8vIHRocm93biBoZXJlLiBJZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdCBpdCdzIGFsbCBnb29kIGFuZCBpZiB3ZSBjYW5ub3QgdW5saW5rIGl0IHRoZW4gd2VsbCxcbiAgICAvLyB3ZSBjYW4ndCByZWFsbHkgZG8gYW55dGhpbmcgYW55d2F5IGFuZCB3ZSB3aWxsIGluc3RlYWQgdGhyb3cgZHVyaW5nIGJpbmQuXG4gICAgaWYgKHR5cGVvZiBhZGRyZXNzID09PSAnc3RyaW5nJykge1xuICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBmcy51bmxpbmsoYWRkcmVzcywgKCkgPT4gcmVzb2x2ZSgpKSlcbiAgICB9XG5cbiAgICByZW1vdGUuc29ja2V0Lm9uKCdjb25uZWN0aW9uJywgc291cmNlID0+IHRoaXMuZGlkUmVjZWl2ZUNvbm5lY3Rpb24oeyBmb2xkZXIsIHNvdXJjZSB9KSlcbiAgICBhd2FpdCByZW1vdGUuc29ja2V0Lmxpc3Rlbih7IGFkZHJlc3MgfSlcbiAgfVxuXG4gIGFzeW5jIGRlc3Ryb3lSZW1vdGVGb3JGb2xkZXIoZm9sZGVyKSB7XG4gICAgY29uc3QgcmVtb3RlID0gdGhpcy4jcmVtb3Rlcy5nZXQoZm9sZGVyKVxuXG4gICAgLy8gU29ja2V0IGFscmVhZHkgZGVzdHJveWVkLCBtb3ZlIG9uXG4gICAgaWYgKCFyZW1vdGUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuI3JlbW90ZXMuZGVsZXRlKGZvbGRlcilcbiAgICBhd2FpdCByZW1vdGUuc29ja2V0LmNsb3NlKClcbiAgfVxuXG4gIGRpZFJlY2VpdmVDb25uZWN0aW9uKHsgZm9sZGVyLCBzb3VyY2UgfSkge1xuICAgIGNvbnN0IHNlc3Npb24gPSBuZXcgU2Vzc2lvbih7XG4gICAgICByb290OiBmb2xkZXIsXG4gICAgICBsaW50ZXI6IHRoaXMuI2xpbnRlcixcbiAgICAgIGJ1c3k6IHRoaXMuI2J1c3ksXG4gICAgICBjb25zb2xlOiB0aGlzLiNjb25zb2xlLFxuICAgIH0pXG5cbiAgICBpZiAodGhpcy4jc2V0dGluZ3Mub3BlbkNvbnNvbGVPblN0YXJ0KSB7XG4gICAgICB1dGlsLm9wZW5Db25zb2xlKClcbiAgICB9XG5cbiAgICBzb3VyY2Uub24oJ3N0YXJ0JywgcnVubmVyID0+IHNlc3Npb24uZGlkU3RhcnRSdW5uaW5nKHsgcnVubmVyIH0pKVxuICAgIHNvdXJjZS5vbignZW5kJywgcnVubmVyID0+IHNlc3Npb24uZGlkRmluaXNoUnVubmluZyh7IHJ1bm5lciB9KSlcbiAgICBzb3VyY2Uub24oJ3N1aXRlJywgc3VpdGUgPT4gc2Vzc2lvbi5kaWRTdGFydFN1aXRlKHsgc3VpdGUgfSkpXG4gICAgc291cmNlLm9uKCd0ZXN0IGVuZCcsICgpID0+IHNlc3Npb24uZGlkRmluaXNoVGVzdCgpKVxuICAgIHNvdXJjZS5vbigncGFzcycsIHRlc3QgPT4gc2Vzc2lvbi5kaWRQYXNzVGVzdCh7IHRlc3QgfSkpXG4gICAgc291cmNlLm9uKCdmYWlsJywgKHRlc3QsIGVycikgPT4gc2Vzc2lvbi5kaWRGYWlsVGVzdCh7IHRlc3QsIGVyciB9KSlcbiAgICBzb3VyY2Uub24oJ3BlbmRpbmcnLCB0ZXN0ID0+IHNlc3Npb24uZGlkU2tpcFRlc3QoeyB0ZXN0IH0pKVxuICAgIHNvdXJjZS5vbignY2xvc2UnLCAoKSA9PiBzZXNzaW9uLmRpZENsb3NlKCkpXG5cbiAgICBzZXNzaW9uLm9uY2UoJ2Nsb3NlJywgKHsgc3RhdHMgfSkgPT4ge1xuICAgICAgaWYgKHN0YXRzLmZhaWx1cmVzKSB7XG4gICAgICAgIGlmICh0aGlzLiNzZXR0aW5ncy5vcGVuQ29uc29sZU9uRmFpbHVyZSkge1xuICAgICAgICAgIHV0aWwub3BlbkNvbnNvbGUoKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuI3NldHRpbmdzLm5vdGlmeU9uRmFpbHVyZSkge1xuICAgICAgICAgIHRoaXMuc2hvd0ZhaWx1cmVOb3RpZmljYXRpb24oeyBzdGF0cyB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghc3RhdHMuZmFpbHVyZXMgJiYgdGhpcy4jc2V0dGluZ3Mubm90aWZ5T25TdWNjZXNzKSB7XG4gICAgICAgIHRoaXMuc2hvd1N1Y2Nlc3NOb3RpZmljYXRpb24oeyBzdGF0cyB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cbn1cblxuZXhwb3J0IHtcbiAgSWRlTW9jaGEsXG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlkZS1tb2NoYS5tanMiXSwibmFtZXMiOlsiSEVMUF9URU1QTEFURSIsImZzIiwicmVhZEZpbGVTeW5jIiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJJZGVNb2NoYSIsImNvbmZpZyIsIm1lbnVzIiwiZG9QcmludEFkZHJlc3NJbmZvIiwiZG9Db3B5UmVjZWl2ZXJBZGRyZXNzIiwiZG9Db3B5TW9jaGFDb21tYW5kIiwiZG9TaG93SGVscCIsImFjdGl2YXRlIiwiTWFwIiwiYXRvbSIsImdldCIsIkNvbXBvc2l0ZURpc3Bvc2FibGUiLCJhZGQiLCJjb21tYW5kcyIsIm1lbnUiLCJvbkRpZENoYW5nZSIsImRpZENoYW5nZUNvbmZpZyIsInByb2plY3QiLCJvbkRpZENoYW5nZVBhdGhzIiwiZGlkQ2hhbmdlUGF0aHMiLCJzZXRJbW1lZGlhdGUiLCJnZXRQYXRocyIsImRlYWN0aXZhdGUiLCJkaXNwb3NlIiwiY29uc3VtZUJ1c3lTaWduYWwiLCJidXN5IiwiY29uc3VtZUNvbnNvbGUiLCJta2NvbnNvbGUiLCJpZCIsIm5hbWUiLCJjb25zdW1lTGludGVyIiwibWtsaW50ZXIiLCJmb2xkZXIiLCJhZGRyZXNzIiwiZW50cmllcyIsImxvZyIsImJhc2VuYW1lIiwidXRpbCIsIm9wZW5Db25zb2xlIiwicHJpbWFyeSIsInNoaWZ0IiwiY2xpcGJvYXJkIiwid3JpdGUiLCJub3RpZmljYXRpb25zIiwiYWRkU3VjY2VzcyIsImRlc2NyaXB0aW9uIiwiY29tbWFuZCIsIm1rY29tbWFuZGluZm8iLCJzaG93SGVscE5vdGlmaWNhdGlvbiIsImhlbHAiLCJyZXBsYWNlIiwiYWRkSW5mbyIsImljb24iLCJkaXNtaXNzYWJsZSIsImJ1dHRvbnMiLCJ0ZXh0IiwiY2xhc3NOYW1lIiwib25EaWRDbGljayIsInNob3dTdWNjZXNzTm90aWZpY2F0aW9uIiwic3RhdHMiLCJkZXRhaWwiLCJta3N0YXRzIiwic2hvd0ZhaWx1cmVOb3RpZmljYXRpb24iLCJhZGRFcnJvciIsImNoYW5nZSIsIm5ld1ZhbHVlIiwiaW50ZXJmYWNlIiwib2xkVmFsdWUiLCJwYXRocyIsInJlbW92ZWQiLCJBcnJheSIsImZyb20iLCJrZXlzIiwiZmlsdGVyIiwiaW5jbHVkZXMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiZGVzdHJveVJlbW90ZUZvckZvbGRlciIsImNyZWF0ZVJlbW90ZUZvckZvbGRlciIsImhhcyIsInR5cGUiLCJzb2NrZXQiLCJDb25zdW1lciIsIm1rYWRkcmVzcyIsInJvb3QiLCJyZW1vdGUiLCJzZXQiLCJ1bmxpbmsiLCJvbiIsInNvdXJjZSIsImRpZFJlY2VpdmVDb25uZWN0aW9uIiwibGlzdGVuIiwiZGVsZXRlIiwiY2xvc2UiLCJzZXNzaW9uIiwiU2Vzc2lvbiIsImxpbnRlciIsImNvbnNvbGUiLCJ2ZXJib3NpdHkiLCJvcGVuQ29uc29sZU9uU3RhcnQiLCJydW5uZXIiLCJkaWRTdGFydFJ1bm5pbmciLCJkaWRGaW5pc2hSdW5uaW5nIiwic3VpdGUiLCJkaWRTdGFydFN1aXRlIiwiZGlkRmluaXNoVGVzdCIsInRlc3QiLCJkaWRQYXNzVGVzdCIsImVyciIsImRpZEZhaWxUZXN0IiwiZGlkU2tpcFRlc3QiLCJkaWRDbG9zZSIsIm9uY2UiLCJmYWlsdXJlcyIsIm9wZW5Db25zb2xlT25GYWlsdXJlIiwibm90aWZ5T25GYWlsdXJlIiwibm90aWZ5T25TdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQSxNQUFNQSxhQUFhLEdBQUdDLFlBQUdDLFlBQUgsQ0FBZ0JDLGNBQUtDLE9BQUwsQ0FBYUMsU0FBYixFQUF3QixRQUF4QixFQUFrQyxTQUFsQyxDQUFoQixFQUE4RCxNQUE5RCxDQUF0Qjs7QUFFQSxNQUFNQyxRQUFOLENBQWU7QUFBQTtBQUFBLG9DQUNKQyxtQkFESTs7QUFBQSxtQ0FFTEMsa0JBRks7O0FBQUEsc0NBR0Y7QUFDVCxzQ0FBa0MsS0FBS0Msa0JBQXZDLE1BQWtDLElB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RDs7QUF2UFkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb3NpdGVEaXNwb3NhYmxlIH0gZnJvbSAnYXRvbSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgeyBDb25zdW1lciB9IGZyb20gJ3JlbW90ZS1ldmVudC1lbWl0dGVyJ1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuL3V0aWwnXG5pbXBvcnQgeyBjb25maWcsIG1lbnVzIH0gZnJvbSAnLi9kZWZpbml0aW9ucydcbmltcG9ydCB7IFNlc3Npb24gfSBmcm9tICcuL3Nlc3Npb24nXG5cbmNvbnN0IEhFTFBfVEVNUExBVEUgPSBmcy5yZWFkRmlsZVN5bmMocGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3N0YXRpYycsICdoZWxwLm1kJyksICd1dGY4JylcblxuY2xhc3MgSWRlTW9jaGEge1xuICBjb25maWcgPSBjb25maWdcbiAgbWVudXMgPSBtZW51c1xuICBjb21tYW5kcyA9IHtcbiAgICAnaWRlLW1vY2hhOnByaW50LWFkZHJlc3MtaW5mbyc6IDo6dGhpcy5kb1ByaW50QWRkcmVzc0luZm8sXG4gICAgJ2lkZS1tb2NoYTpjb3B5LXJlY2VpdmVyLWFkZHJlc3MnOiA6OnRoaXMuZG9Db3B5UmVjZWl2ZXJBZGRyZXNzLFxuICAgICdpZGUtbW9jaGE6Y29weS1tb2NoYS1jb21tYW5kJzogOjp0aGlzLmRvQ29weU1vY2hhQ29tbWFuZCxcbiAgICAnaWRlLW1vY2hhOnNob3ctaGVscCc6IDo6dGhpcy5kb1Nob3dIZWxwLFxuICB9XG5cbiAgI3N1YnNjcmlwdGlvbnMgPSBudWxsXG4gICNidXN5ID0gbnVsbFxuICAjY29uc29sZSA9IG51bGxcbiAgI2xpbnRlciA9IG51bGxcbiAgI3JlbW90ZXMgPSBudWxsXG4gICNzZXR0aW5ncyA9IG51bGxcblxuICAvLyBMSUZFQ1lDTEVcblxuICBhY3RpdmF0ZSgpIHtcbiAgICB0aGlzLiNyZW1vdGVzID0gbmV3IE1hcCgpXG4gICAgdGhpcy4jc2V0dGluZ3MgPSBhdG9tLmNvbmZpZy5nZXQoJ2lkZS1tb2NoYScpXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucyA9IG5ldyBDb21wb3NpdGVEaXNwb3NhYmxlKClcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChhdG9tLmNvbW1hbmRzLmFkZCgnYXRvbS13b3Jrc3BhY2UnLCB0aGlzLmNvbW1hbmRzKSlcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChhdG9tLm1lbnUuYWRkKHRoaXMubWVudXMpKVxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuYWRkKGF0b20uY29uZmlnLm9uRGlkQ2hhbmdlKCdpZGUtbW9jaGEnLCA6OnRoaXMuZGlkQ2hhbmdlQ29uZmlnKSlcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChhdG9tLnByb2plY3Qub25EaWRDaGFuZ2VQYXRocyg6OnRoaXMuZGlkQ2hhbmdlUGF0aHMpKVxuICAgIC8vIEluaXRpYWwgc29ja2V0IHNldHVwIGJlY2F1c2UgdGhlIGFib3ZlIGxpc3RlbmVyIGlzIG5vdCB0cmlnZ2VyZWQgYXQgQXRvbSBzdGFydHVwIERlbGF5IHNvY2tldFxuICAgIC8vIGFjdGl2YXRpb24gZHVlIHRvIEF0b20gc29tZXRpbWVzIG5vdCByZXR1cm5pbmcgcHJvamVjdCBwYXRocyB3aGVuIHdlIGdldCBhY3RpdmF0ZWQg8J+kt+KAjeKZgu+4j1xuICAgIHNldEltbWVkaWF0ZSgoKSA9PiB0aGlzLmRpZENoYW5nZVBhdGhzKGF0b20ucHJvamVjdC5nZXRQYXRocygpKSlcbiAgfVxuXG4gIGFzeW5jIGRlYWN0aXZhdGUoKSB7XG4gICAgLy8gQ2xvc2UgYWxsIG9wZW5lZCByZW1vdGVzXG4gICAgYXdhaXQgdGhpcy5kaWRDaGFuZ2VQYXRocyhbXSlcblxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuZGlzcG9zZSgpXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucyA9IG51bGxcbiAgICB0aGlzLiNidXN5ID0gbnVsbFxuICAgIHRoaXMuI2NvbnNvbGUgPSBudWxsXG4gICAgdGhpcy4jbGludGVyID0gbnVsbFxuICAgIHRoaXMuI3JlbW90ZXMgPSBuZXcgTWFwKClcbiAgICB0aGlzLiNzZXR0aW5ncyA9IG51bGxcbiAgfVxuXG4gIC8vIENPTlNVTUVEIFNFUlZJQ0VTXG5cbiAgY29uc3VtZUJ1c3lTaWduYWwoYnVzeSkge1xuICAgIHRoaXMuI2J1c3kgPSBidXN5XG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQodGhpcy4jYnVzeSlcbiAgfVxuXG4gIGNvbnN1bWVDb25zb2xlKG1rY29uc29sZSkge1xuICAgIHRoaXMuI2NvbnNvbGUgPSBta2NvbnNvbGUoe1xuICAgICAgaWQ6ICdJREUtTW9jaGEnLFxuICAgICAgbmFtZTogJ0lERS1Nb2NoYScsXG4gICAgfSlcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZCh0aGlzLiNjb25zb2xlKVxuICB9XG5cbiAgY29uc3VtZUxpbnRlcihta2xpbnRlcikge1xuICAgIHRoaXMuI2xpbnRlciA9IG1rbGludGVyKHtcbiAgICAgIG5hbWU6ICdJREUtTW9jaGEnLFxuICAgIH0pXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQodGhpcy4jbGludGVyKVxuICB9XG5cblxuICAvLyBDT01NQU5EU1xuXG4gIGRvUHJpbnRBZGRyZXNzSW5mbygpIHtcbiAgICBmb3IgKGNvbnN0IFtmb2xkZXIsIHsgYWRkcmVzcyB9XSBvZiB0aGlzLiNyZW1vdGVzLmVudHJpZXMoKSkge1xuICAgICAgdGhpcy4jY29uc29sZS5sb2coYCR7cGF0aC5iYXNlbmFtZShmb2xkZXIpfTogJHthZGRyZXNzfWApXG4gICAgfVxuXG4gICAgcmV0dXJuIHV0aWwub3BlbkNvbnNvbGUoKVxuICB9XG5cbiAgZG9Db3B5UmVjZWl2ZXJBZGRyZXNzKCkge1xuICAgIGNvbnN0IHByaW1hcnkgPSBhdG9tLnByb2plY3QuZ2V0UGF0aHMoKS5zaGlmdCgpXG4gICAgY29uc3QgYWRkcmVzcyA9IHRoaXMuI3JlbW90ZXMuZ2V0KHByaW1hcnkpLmFkZHJlc3NcblxuICAgIGF0b20uY2xpcGJvYXJkLndyaXRlKGFkZHJlc3MpXG4gICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZFN1Y2Nlc3MoYENvcGllZCBmb3IgcHJvamVjdCBmb2xkZXI6ICR7cGF0aC5iYXNlbmFtZShwcmltYXJ5KX0hYCwge1xuICAgICAgZGVzY3JpcHRpb246ICcqKklERS1Nb2NoYSoqJyxcbiAgICB9KVxuICB9XG5cbiAgZG9Db3B5TW9jaGFDb21tYW5kKCkge1xuICAgIGNvbnN0IHByaW1hcnkgPSBhdG9tLnByb2plY3QuZ2V0UGF0aHMoKS5zaGlmdCgpXG4gICAgY29uc3QgYWRkcmVzcyA9IHRoaXMuI3JlbW90ZXMuZ2V0KHByaW1hcnkpLmFkZHJlc3NcbiAgICBjb25zdCBjb21tYW5kID0gdXRpbC5ta2NvbW1hbmRpbmZvKHsgYWRkcmVzcyB9KVxuXG4gICAgYXRvbS5jbGlwYm9hcmQud3JpdGUoY29tbWFuZClcbiAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkU3VjY2VzcyhgQ29waWVkIGZvciBwcm9qZWN0IGZvbGRlcjogJHtwYXRoLmJhc2VuYW1lKHByaW1hcnkpfSFgLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJyoqSURFLU1vY2hhKionLFxuICAgIH0pXG4gIH1cblxuICBkb1Nob3dIZWxwKCkge1xuICAgIGNvbnN0IHByaW1hcnkgPSBhdG9tLnByb2plY3QuZ2V0UGF0aHMoKS5zaGlmdCgpXG4gICAgY29uc3QgYWRkcmVzcyA9IHRoaXMuI3JlbW90ZXMuZ2V0KHByaW1hcnkpLmFkZHJlc3NcbiAgICBjb25zdCBjb21tYW5kID0gdXRpbC5ta2NvbW1hbmRpbmZvKHsgYWRkcmVzcyB9KVxuXG4gICAgcmV0dXJuIHRoaXMuc2hvd0hlbHBOb3RpZmljYXRpb24oeyBjb21tYW5kIH0pXG4gIH1cblxuXG4gIC8vIFRFU1QgUkVTVUxUUyBOT1RJRklDQVRJT05TXG5cbiAgc2hvd0hlbHBOb3RpZmljYXRpb24oeyBjb21tYW5kIH0pIHtcbiAgICBjb25zdCBoZWxwID0gSEVMUF9URU1QTEFURS5yZXBsYWNlKCcje0NPTU1BTkR9JywgY29tbWFuZClcblxuICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRJbmZvKCdJREUtTW9jaGE6IEhlbHAnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogaGVscCxcbiAgICAgIGljb246ICdtb3J0YXItYm9hcmQnLFxuICAgICAgZGlzbWlzc2FibGU6IHRydWUsXG4gICAgICBidXR0b25zOiBbe1xuICAgICAgICAvLyBFeHRyYSBzcGFjZSB0byBtYWtlIHJvb20gYmV0d2VlbiB0aGUgY2xpcHB5IGljb24gYW5kIHRleHQg8J+OqFxuICAgICAgICB0ZXh0OiAnIENvcHkgTW9jaGEgY29tbWFuZCcsXG4gICAgICAgIGNsYXNzTmFtZTogJ2J0biBidG4taW5mbyBpY29uLWNsaXBweSBzZWxlY3RlZCcsXG4gICAgICAgIG9uRGlkQ2xpY2s6IDo6dGhpcy5kb0NvcHlSZWNlaXZlckFkZHJlc3MsXG4gICAgICB9LCB7XG4gICAgICAgIHRleHQ6ICcgU2hvdyBzb2NrZXRzIGZvciBhbGwgZm9sZGVycycsXG4gICAgICAgIGNsYXNzTmFtZTogJ2J0biBidG4taW5mbycsXG4gICAgICAgIG9uRGlkQ2xpY2s6IDo6dGhpcy5kb1ByaW50QWRkcmVzc0luZm8sXG4gICAgICB9XSxcbiAgICB9KVxuICB9XG5cbiAgc2hvd1N1Y2Nlc3NOb3RpZmljYXRpb24oeyBzdGF0cyB9KSB7XG4gICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZFN1Y2Nlc3MoJ1Rlc3Qgc3VpdGUgcGFzc2VkLicsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnKipJREUtTW9jaGEqKicsXG4gICAgICBkZXRhaWw6IHV0aWwubWtzdGF0cyh7IHN0YXRzIH0pLFxuICAgICAgYnV0dG9uczogW3tcbiAgICAgICAgdGV4dDogJ09wZW4gQ29uc29sZScsXG4gICAgICAgIG9uRGlkQ2xpY2s6IHV0aWwub3BlbkNvbnNvbGUsXG4gICAgICB9XSxcbiAgICB9KVxuICB9XG5cbiAgc2hvd0ZhaWx1cmVOb3RpZmljYXRpb24oeyBzdGF0cyB9KSB7XG4gICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZEVycm9yKCdUZXN0IHN1aXRlIGZhaWxlZC4nLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJyoqSURFLU1vY2hhKionLFxuICAgICAgZGV0YWlsOiB1dGlsLm1rc3RhdHMoeyBzdGF0cyB9KSxcbiAgICAgIGJ1dHRvbnM6IFt7XG4gICAgICAgIHRleHQ6ICdPcGVuIENvbnNvbGUnLFxuICAgICAgICBvbkRpZENsaWNrOiB1dGlsLm9wZW5Db25zb2xlLFxuICAgICAgfV0sXG4gICAgfSlcbiAgfVxuXG5cbiAgLy8gSU1QTEVNRU5UQVRJT05cblxuICBhc3luYyBkaWRDaGFuZ2VDb25maWcoY2hhbmdlKSB7XG4gICAgdGhpcy4jc2V0dGluZ3MgPSBjaGFuZ2UubmV3VmFsdWVcblxuICAgIGlmIChjaGFuZ2UubmV3VmFsdWUuaW50ZXJmYWNlICE9PSBjaGFuZ2Uub2xkVmFsdWUuaW50ZXJmYWNlKSB7XG4gICAgICAvLyBGb3JjZS1jbG9zZSBhbGwgZXhpc3Rpbmcgc29ja2V0cyBieSBwcmV0ZW5kaW5nIHdlIGhhdmUgbm8gcHJvamVjdCBmb2xkZXJzIGFuZCBzdGFydCBuZXdcbiAgICAgIC8vIHNvY2tldHMgKHdpdGggdXBkYXRlZCBjb25maWd1cmF0aW9uKSBpbW1lZGlhdGVseSBhZnRlclxuICAgICAgYXdhaXQgdGhpcy5kaWRDaGFuZ2VQYXRocyhbXSlcbiAgICAgIGF3YWl0IHRoaXMuZGlkQ2hhbmdlUGF0aHMoYXRvbS5wcm9qZWN0LmdldFBhdGhzKCkpXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZGlkQ2hhbmdlUGF0aHMocGF0aHMpIHtcbiAgICBjb25zdCByZW1vdmVkID0gQXJyYXlcbiAgICAgIC5mcm9tKHRoaXMuI3JlbW90ZXMua2V5cygpKVxuICAgICAgLmZpbHRlcihmb2xkZXIgPT4gIXBhdGhzLmluY2x1ZGVzKGZvbGRlcikpXG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChyZW1vdmVkLm1hcCg6OnRoaXMuZGVzdHJveVJlbW90ZUZvckZvbGRlcikpXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocGF0aHMubWFwKDo6dGhpcy5jcmVhdGVSZW1vdGVGb3JGb2xkZXIpKVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlUmVtb3RlRm9yRm9sZGVyKGZvbGRlcikge1xuICAgIC8vIFRoaXMgcHJvamVjdCBmb2xkZXIgYWxyZWFkeSBoYXMgYSBzb2NrZXQsIG1vdmUgb25cbiAgICBpZiAodGhpcy4jcmVtb3Rlcy5oYXMoZm9sZGVyKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdHlwZSA9IHRoaXMuI3NldHRpbmdzLmludGVyZmFjZVxuICAgIGNvbnN0IHNvY2tldCA9IG5ldyBDb25zdW1lcigpXG4gICAgY29uc3QgYWRkcmVzcyA9IHV0aWwubWthZGRyZXNzKHsgcm9vdDogZm9sZGVyLCB0eXBlIH0pXG4gICAgY29uc3QgcmVtb3RlID0geyBhZGRyZXNzLCBzb2NrZXQgfVxuICAgIHRoaXMuI3JlbW90ZXMuc2V0KGZvbGRlciwgcmVtb3RlKVxuXG4gICAgLy8gRW5zdXJlIHRoZSBzb2NrZXQgZG9lcyBub3QgZXhpc3QgYmVmb3JlIHdlIGJpbmQgdG8gaXQuIEFuZCB5ZXMsIGp1c3QgaWdub3JlIGFueSBlcnJvcnNcbiAgICAvLyB0aHJvd24gaGVyZS4gSWYgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3QgaXQncyBhbGwgZ29vZCBhbmQgaWYgd2UgY2Fubm90IHVubGluayBpdCB0aGVuIHdlbGwsXG4gICAgLy8gd2UgY2FuJ3QgcmVhbGx5IGRvIGFueXRoaW5nIGFueXdheSBhbmQgd2Ugd2lsbCBpbnN0ZWFkIHRocm93IGR1cmluZyBiaW5kLlxuICAgIGlmICh0eXBlb2YgYWRkcmVzcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gZnMudW5saW5rKGFkZHJlc3MsICgpID0+IHJlc29sdmUoKSkpXG4gICAgfVxuXG4gICAgcmVtb3RlLnNvY2tldC5vbignY29ubmVjdGlvbicsIHNvdXJjZSA9PiB0aGlzLmRpZFJlY2VpdmVDb25uZWN0aW9uKHsgZm9sZGVyLCBzb3VyY2UgfSkpXG4gICAgYXdhaXQgcmVtb3RlLnNvY2tldC5saXN0ZW4oeyBhZGRyZXNzIH0pXG4gIH1cblxuICBhc3luYyBkZXN0cm95UmVtb3RlRm9yRm9sZGVyKGZvbGRlcikge1xuICAgIGNvbnN0IHJlbW90ZSA9IHRoaXMuI3JlbW90ZXMuZ2V0KGZvbGRlcilcblxuICAgIC8vIFNvY2tldCBhbHJlYWR5IGRlc3Ryb3llZCwgbW92ZSBvblxuICAgIGlmICghcmVtb3RlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLiNyZW1vdGVzLmRlbGV0ZShmb2xkZXIpXG4gICAgYXdhaXQgcmVtb3RlLnNvY2tldC5jbG9zZSgpXG4gIH1cblxuICBkaWRSZWNlaXZlQ29ubmVjdGlvbih7IGZvbGRlciwgc291cmNlIH0pIHtcbiAgICBjb25zdCBzZXNzaW9uID0gbmV3IFNlc3Npb24oe1xuICAgICAgcm9vdDogZm9sZGVyLFxuICAgICAgbGludGVyOiB0aGlzLiNsaW50ZXIsXG4gICAgICBidXN5OiB0aGlzLiNidXN5LFxuICAgICAgY29uc29sZTogdGhpcy4jY29uc29sZSxcbiAgICAgIHZlcmJvc2l0eTogdGhpcy4jc2V0dGluZ3MudmVyYm9zaXR5LFxuICAgIH0pXG5cbiAgICBpZiAodGhpcy4jc2V0dGluZ3Mub3BlbkNvbnNvbGVPblN0YXJ0KSB7XG4gICAgICB1dGlsLm9wZW5Db25zb2xlKClcbiAgICB9XG5cbiAgICBzb3VyY2Uub24oJ3N0YXJ0JywgcnVubmVyID0+IHNlc3Npb24uZGlkU3RhcnRSdW5uaW5nKHsgcnVubmVyIH0pKVxuICAgIHNvdXJjZS5vbignZW5kJywgcnVubmVyID0+IHNlc3Npb24uZGlkRmluaXNoUnVubmluZyh7IHJ1bm5lciB9KSlcbiAgICBzb3VyY2Uub24oJ3N1aXRlJywgc3VpdGUgPT4gc2Vzc2lvbi5kaWRTdGFydFN1aXRlKHsgc3VpdGUgfSkpXG4gICAgc291cmNlLm9uKCd0ZXN0IGVuZCcsICgpID0+IHNlc3Npb24uZGlkRmluaXNoVGVzdCgpKVxuICAgIHNvdXJjZS5vbigncGFzcycsIHRlc3QgPT4gc2Vzc2lvbi5kaWRQYXNzVGVzdCh7IHRlc3QgfSkpXG4gICAgc291cmNlLm9uKCdmYWlsJywgKHRlc3QsIGVycikgPT4gc2Vzc2lvbi5kaWRGYWlsVGVzdCh7IHRlc3QsIGVyciB9KSlcbiAgICBzb3VyY2Uub24oJ3BlbmRpbmcnLCB0ZXN0ID0+IHNlc3Npb24uZGlkU2tpcFRlc3QoeyB0ZXN0IH0pKVxuICAgIHNvdXJjZS5vbignY2xvc2UnLCAoKSA9PiBzZXNzaW9uLmRpZENsb3NlKCkpXG5cbiAgICBzZXNzaW9uLm9uY2UoJ2Nsb3NlJywgKHsgc3RhdHMgfSkgPT4ge1xuICAgICAgaWYgKHN0YXRzLmZhaWx1cmVzKSB7XG4gICAgICAgIGlmICh0aGlzLiNzZXR0aW5ncy5vcGVuQ29uc29sZU9uRmFpbHVyZSkge1xuICAgICAgICAgIHV0aWwub3BlbkNvbnNvbGUoKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuI3NldHRpbmdzLm5vdGlmeU9uRmFpbHVyZSkge1xuICAgICAgICAgIHRoaXMuc2hvd0ZhaWx1cmVOb3RpZmljYXRpb24oeyBzdGF0cyB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghc3RhdHMuZmFpbHVyZXMgJiYgdGhpcy4jc2V0dGluZ3Mubm90aWZ5T25TdWNjZXNzKSB7XG4gICAgICAgIHRoaXMuc2hvd1N1Y2Nlc3NOb3RpZmljYXRpb24oeyBzdGF0cyB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cbn1cblxuZXhwb3J0IHtcbiAgSWRlTW9jaGEsXG59XG4iXX0=

@@ -27,2 +27,8 @@ "use strict";

});
const loglevels = {
spec: 4,
suite: 3,
min: 2,
silent: 1
};

@@ -34,3 +40,4 @@ class Session extends _events.EventEmitter {

busy: _busy2,
console: _console2
console: _console2,
verbosity
}) {

@@ -69,2 +76,7 @@ super();

_loglevel.set(this, {
writable: true,
value: null
});
_stats.set(this, {

@@ -99,2 +111,4 @@ writable: true,

_classPrivateFieldSet(this, _console, _console2);
_classPrivateFieldSet(this, _loglevel, loglevels[verbosity]);
}

@@ -123,3 +137,3 @@

_classPrivateFieldGet(this, _console).log((0, _util.mkstats)({
_classPrivateFieldGet(this, _loglevel) >= loglevels.min && _classPrivateFieldGet(this, _console).log((0, _util.mkstats)({
stats

@@ -148,3 +162,3 @@ }));

_classPrivateFieldGet(this, _console).log(suite.titlePath.join(' ▶︎ '));
_classPrivateFieldGet(this, _loglevel) >= loglevels.suite && _classPrivateFieldGet(this, _console).log(suite.titlePath.join(' ▶︎ '));
}

@@ -162,4 +176,3 @@

_classPrivateFieldGet(this, _stats).passes++;
_classPrivateFieldGet(this, _console).success(test.title);
_classPrivateFieldGet(this, _loglevel) >= loglevels.spec && _classPrivateFieldGet(this, _console).success(test.title);
}

@@ -199,4 +212,3 @@

_classPrivateFieldGet(this, _stats).pending++;
_classPrivateFieldGet(this, _console).warn(test.title);
_classPrivateFieldGet(this, _loglevel) >= loglevels.spec && _classPrivateFieldGet(this, _console).warn(test.title);
}

@@ -220,2 +232,4 @@

var _loglevel = new WeakMap();
var _stats = new WeakMap();

@@ -265,2 +279,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlc3Npb24ubWpzIl0sIm5hbWVzIjpbInN0YWNrdXRpbHMiLCJTdGFja1V0aWxzIiwiaW50ZXJuYWxzIiwibm9kZUludGVybmFscyIsIlNlc3Npb24iLCJFdmVudEVtaXR0ZXIiLCJjb25zdHJ1Y3RvciIsInJvb3QiLCJsaW50ZXIiLCJidXN5IiwiY29uc29sZSIsIk1hcCIsInRvdGFsIiwiY29tcGxldGVkIiwicGFzc2VzIiwiZmFpbHVyZXMiLCJwZW5kaW5nIiwiZHVyYXRpb24iLCJEYXRlIiwibm93IiwiZGlkU3RhcnRSdW5uaW5nIiwicnVubmVyIiwiY2xlYXJNZXNzYWdlcyIsInJlcG9ydEJ1c3kiLCJta3BlcmNlbnQiLCJvbkRpZENsaWNrIiwib3BlbkNvbnNvbGUiLCJkaWRGaW5pc2hSdW5uaW5nIiwic3RhdHMiLCJsb2ciLCJkaWRDbG9zZSIsImRpc3Bvc2UiLCJlbWl0IiwiZGlkU3RhcnRTdWl0ZSIsInN1aXRlIiwidGl0bGVQYXRoIiwiam9pbiIsImRpZEZpbmlzaFRlc3QiLCJzZXRUaXRsZSIsImRpZFBhc3NUZXN0IiwidGVzdCIsInN1Y2Nlc3MiLCJ0aXRsZSIsImRpZEZhaWxUZXN0IiwiZXJyIiwiZXJyb3IiLCJzdGFjayIsIm1lc3NhZ2UiLCJta2RpYWdtZXNzYWdlIiwibWVzc2FnZXMiLCJnZXQiLCJsb2NhdGlvbiIsImZpbGUiLCJwdXNoIiwic2V0Iiwic2V0TWVzc2FnZXMiLCJkaWRTa2lwVGVzdCIsIndhcm4iLCJjYWxsc2l0ZSIsIm1rY2FsbHNpdGUiLCJwYXRoIiwicmVzb2x2ZSIsImxpbmUiLCJjb2x1bW4iLCJwb3NpdGlvbiIsInNldmVyaXR5IiwiZXhjZXJwdCIsImRlc2NyaXB0aW9uIiwiZnVsbFRpdGxlIiwidHJhY2VzIiwiY2xlYW4iLCJ0cmltIiwic3BsaXQiLCJvcyIsIkVPTCIsImZpbHRlciIsInRyYWNlIiwiaW5jbHVkZXMiLCJzaGlmdCIsInBhcnNlTGluZSIsIk1hdGgiLCJmbG9vciJdLCJtYXBwaW5ncyI6Ijs7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S0FBUCxFQUZkO0FBSUEsU0FBTzlFLFVBQVUsQ0FBQytFLFNBQVgsQ0FBcUJqQixJQUFyQixDQUFQO0FBQ0Q7O0FBRUQsU0FBU3RDLFNBQVQsQ0FBbUJJLEtBQW5CLEVBQTBCO0FBQ3hCLFNBQU9vRCxJQUFJLENBQUNDLEtBQUwsQ0FBV3JELEtBQUssQ0FBQ2YsU0FBTixHQUFrQmUsS0FBSyxDQUFDaEIsS0FBeEIsR0FBZ0MsR0FBM0MsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9zIGZyb20gJ29zJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cydcbmltcG9ydCBTdGFja1V0aWxzIGZyb20gJ3N0YWNrLXV0aWxzJ1xuaW1wb3J0IHsgbWtzdGF0cywgb3BlbkNvbnNvbGUgfSBmcm9tICcuL3V0aWwnXG5cbmNvbnN0IHN0YWNrdXRpbHMgPSBuZXcgU3RhY2tVdGlscyh7XG4gIGludGVybmFsczogU3RhY2tVdGlscy5ub2RlSW50ZXJuYWxzKCksXG59KVxuXG5jbGFzcyBTZXNzaW9uIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgI3Jvb3QgPSBudWxsXG4gICNsaW50ZXIgPSBudWxsXG4gICNtZXNzYWdlcyA9IG5ldyBNYXAoKVxuICAjYnVzeSA9IG51bGxcbiAgI3NwaW5uZXIgPSBudWxsXG4gICNjb25zb2xlID0gbnVsbFxuICAjc3RhdHMgPSB7XG4gICAgdG90YWw6IDAsXG4gICAgY29tcGxldGVkOiAwLFxuICAgIHBhc3NlczogMCxcbiAgICBmYWlsdXJlczogMCxcbiAgICBwZW5kaW5nOiAwLFxuICAgIGR1cmF0aW9uOiAwLFxuICB9XG5cbiAgI3N0YXJ0ZWRBdCA9IERhdGUubm93KClcbiAgI2lzRmluaXNoZWQgPSBmYWxzZVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zaGFkb3dcbiAgY29uc3RydWN0b3IoeyByb290LCBsaW50ZXIsIGJ1c3ksIGNvbnNvbGUgfSkge1xuICAgIHN1cGVyKClcblxuICAgIHRoaXMuI3Jvb3QgPSByb290XG4gICAgdGhpcy4jbGludGVyID0gbGludGVyXG4gICAgdGhpcy4jYnVzeSA9IGJ1c3lcbiAgICB0aGlzLiNjb25zb2xlID0gY29uc29sZVxuICB9XG5cbiAgZGlkU3RhcnRSdW5uaW5nKHsgcnVubmVyIH0pIHtcbiAgICB0aGlzLiNzdGF0cy50b3RhbCA9IHJ1bm5lci50b3RhbFxuXG4gICAgdGhpcy4jbGludGVyLmNsZWFyTWVzc2FnZXMoKVxuICAgIHRoaXMuI3NwaW5uZXIgPSB0aGlzLiNidXN5LnJlcG9ydEJ1c3koYFJ1bm5pbmcgTW9jaGEgdGVzdHM6ICR7bWtwZXJjZW50KHRoaXMuI3N0YXRzKX0lYCwge1xuICAgICAgb25EaWRDbGljazogb3BlbkNvbnNvbGUsXG4gICAgfSlcbiAgfVxuXG4gIGRpZEZpbmlzaFJ1bm5pbmcoeyBydW5uZXIgfSkge1xuICAgIGNvbnN0IHN0YXRzID0gdGhpcy4jc3RhdHMgPSB7XG4gICAgICAuLi50aGlzLiNzdGF0cyxcbiAgICAgIC4uLnJ1bm5lci5zdGF0cyxcbiAgICB9XG5cbiAgICB0aGlzLiNpc0ZpbmlzaGVkID0gdHJ1ZVxuICAgIHRoaXMuI2NvbnNvbGUubG9nKG1rc3RhdHMoeyBzdGF0cyB9KSlcbiAgfVxuXG4gIGRpZENsb3NlKCkge1xuICAgIC8vIElmIHRoZSBzZXNzaW9uIGNsb3NlZCBhYnJ1cHRseSAoaWUuIGR1ZSB0byB1c2VyIHRlcm1pbmF0aW5nIE1vY2hhIGJlZm9yZSBjb21wbGV0aW9uKVxuICAgIC8vIGNhbGN1bGF0ZSBzb21lIHN0YXRpc3RpY3Mgb24gb3VyIGVuZC5cbiAgICBpZiAoIXRoaXMuI2lzRmluaXNoZWQpIHtcbiAgICAgIHRoaXMuI3N0YXRzLmR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHRoaXMuI3N0YXJ0ZWRBdFxuICAgIH1cblxuICAgIHRoaXMuI3NwaW5uZXIuZGlzcG9zZSgpXG4gICAgdGhpcy5lbWl0KCdjbG9zZScsIHsgc3RhdHM6IHRoaXMuI3N0YXRzIH0pXG4gIH1cblxuICBkaWRTdGFydFN1aXRlKHsgc3VpdGUgfSkge1xuICAgIC8vIEF2b2lkIHByaW50aW5nIGFuIGVtcHR5IGxpbmUgYXQgdGhlIGJlZ2lubmluZyBvZiB0ZXN0IHJ1biwgdGhlIHJvb3Qgc3VpdGUgZG9lcyBub3QgaGF2ZSBhXG4gICAgLy8gdGl0bGUg4pid77iPXG4gICAgaWYgKHN1aXRlLnJvb3QpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuI2NvbnNvbGUubG9nKHN1aXRlLnRpdGxlUGF0aC5qb2luKCcg4pa277iOICcpKVxuICB9XG5cbiAgZGlkRmluaXNoVGVzdCgpIHtcbiAgICB0aGlzLiNzdGF0cy5jb21wbGV0ZWQrK1xuICAgIHRoaXMuI3NwaW5uZXIuc2V0VGl0bGUoYFJ1bm5pbmcgTW9jaGEgdGVzdHM6ICR7bWtwZXJjZW50KHRoaXMuI3N0YXRzKX0lYClcbiAgfVxuXG4gIGRpZFBhc3NUZXN0KHsgdGVzdCB9KSB7XG4gICAgdGhpcy4jc3RhdHMucGFzc2VzKytcbiAgICB0aGlzLiNjb25zb2xlLnN1Y2Nlc3ModGVzdC50aXRsZSlcbiAgfVxuXG4gIGRpZEZhaWxUZXN0KHsgdGVzdCwgZXJyIH0pIHtcbiAgICB0aGlzLiNzdGF0cy5mYWlsdXJlcysrXG4gICAgdGhpcy4jY29uc29sZS5lcnJvcih0ZXN0LnRpdGxlKVxuICAgIHRoaXMuI2NvbnNvbGUuZXJyb3IoZXJyLnN0YWNrKVxuXG4gICAgY29uc3QgbWVzc2FnZSA9IG1rZGlhZ21lc3NhZ2UoeyByb290OiB0aGlzLiNyb290LCB0ZXN0LCBlcnIgfSlcblxuICAgIC8vIFdlIGNvdWxkIG5vdCBnZW5lcmF0ZSBhIG1lYW5pbmdmdWwgZGlhZ25vc3RpYyBtZXNzYWdlIGZvciB0aGlzIGVycm9yIPCfmKJcbiAgICBpZiAoIW1lc3NhZ2UpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IG1lc3NhZ2VzID0gdGhpcy4jbWVzc2FnZXMuZ2V0KG1lc3NhZ2UubG9jYXRpb24uZmlsZSkgfHwgW11cbiAgICBtZXNzYWdlcy5wdXNoKG1lc3NhZ2UpXG4gICAgdGhpcy4jbWVzc2FnZXMuc2V0KG1lc3NhZ2UubG9jYXRpb24uZmlsZSwgbWVzc2FnZXMpXG4gICAgdGhpcy4jbGludGVyLnNldE1lc3NhZ2VzKG1lc3NhZ2UubG9jYXRpb24uZmlsZSwgbWVzc2FnZXMpXG4gIH1cblxuICBkaWRTa2lwVGVzdCh7IHRlc3QgfSkge1xuICAgIHRoaXMuI3N0YXRzLnBlbmRpbmcrK1xuICAgIHRoaXMuI2NvbnNvbGUud2Fybih0ZXN0LnRpdGxlKVxuICB9XG59XG5cbmZ1bmN0aW9uIG1rZGlhZ21lc3NhZ2UoeyByb290LCB0ZXN0LCBlcnIgfSkge1xuICBjb25zdCBjYWxsc2l0ZSA9IG1rY2FsbHNpdGUoZXJyKVxuXG4gIC8vIElmIHdlIGhhdmUgbm8gdmlhYmxlIGVycm9yIGxvY2F0aW9uIGRvIG5vdCBzaG93IHRoZSBlcnJvciBpbiBkaWFnbm9zdGljcyDwn6S34oCN4pmC77iPXG4gIGlmICghY2FsbHNpdGUpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLy8gTm9ybWFsaXNlIGNhbGxzaXRlIGluZm8gd2l0aCBob3cgTGludGVyIGV4cGVjdHMgbWVzc2FnZSBsb2NhdGlvbnMgdG8gYmUgZGVmaW5lZFxuICBjYWxsc2l0ZS5maWxlID0gcGF0aC5yZXNvbHZlKHJvb3QsIGNhbGxzaXRlLmZpbGUpXG4gIGNhbGxzaXRlLmxpbmUtLVxuXG4gIGNvbnN0IHsgZmlsZSwgbGluZSwgY29sdW1uIH0gPSBjYWxsc2l0ZVxuXG4gIHJldHVybiB7XG4gICAgbG9jYXRpb246IHtcbiAgICAgIGZpbGUsXG4gICAgICBwb3NpdGlvbjogW1tsaW5lLCBjb2x1bW5dLCBbbGluZSwgY29sdW1uXV0sXG4gICAgfSxcbiAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICBleGNlcnB0OiBlcnIubWVzc2FnZSxcbiAgICBkZXNjcmlwdGlvbjogYCR7dGVzdC5mdWxsVGl0bGV9XFxuXFxuJHtlcnIuc3RhY2t9YCxcbiAgfVxufVxuXG5mdW5jdGlvbiBta2NhbGxzaXRlKGVycikge1xuICBjb25zdCB0cmFjZXMgPSBzdGFja3V0aWxzXG4gICAgLmNsZWFuKGVyci5zdGFjaylcbiAgICAudHJpbSgpXG4gICAgLnNwbGl0KG9zLkVPTClcblxuICAvLyBBdHRlbXB0IHRvIGZpbHRlciBvdXQgdHJhY2VzIHBvaW50aW5nIHRvIHN0dWZmIGluIG5vZGVfbW9kdWxlc1xuICAvLyBHZW5lcmFsbHkgdGhlIGFjdHVhbCBjYXVzZSBvZiBhbiBlcnJvciBpcyBlaXRoZXIgdGhlIHRvcC1tb3N0IHRyYWNlIG9yIHNvbWUgdHJhY2UgYSBmZXcgc3RlcHNcbiAgLy8gYmVsb3cgc29tZXRoaW5nIGluc2lkZSBub2RlX21vZHVsZXMgZHVlIHRvIHVzZXJsYW5kIGNvZGUgY2FsbGluZyBpbnRvIHNvbWUgZGVwZW5kZW5jeS4gSWYgd2UgZG9cbiAgLy8gbm90IGZpbmQgYW55dGhpbmcgcmVsZXZhbnQgYW5kIGV2ZXJ5IHRyYWNlIHBvaW50cyB0byBzb21ldGhpbmcgaW5zaWRlIG5vZGVfbW9kdWxlcywgd2VsbCwganVzdFxuICAvLyB1c2UgdGhlIHRvcC1tb3N0IHRyYWNlLlxuICBjb25zdCBsaW5lID0gdHJhY2VzXG4gICAgLmZpbHRlcih0cmFjZSA9PiAhdHJhY2UuaW5jbHVkZXMoJ25vZGVfbW9kdWxlcy8nKSlcbiAgICAuc2hpZnQoKSB8fCB0cmFjZXMuc2hpZnQoKVxuXG4gIHJldHVybiBzdGFja3V0aWxzLnBhcnNlTGluZShsaW5lKVxufVxuXG5mdW5jdGlvbiBta3BlcmNlbnQoc3RhdHMpIHtcbiAgcmV0dXJuIE1hdGguZmxvb3Ioc3RhdHMuY29tcGxldGVkIC8gc3RhdHMudG90YWwgKiAxMDApXG59XG5cbmV4cG9ydCB7XG4gIFNlc3Npb24sXG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlc3Npb24ubWpzIl0sIm5hbWVzIjpbInN0YWNrdXRpbHMiLCJTdGFja1V0aWxzIiwiaW50ZXJuYWxzIiwibm9kZUludGVybmFscyIsImxvZ2xldmVscyIsInNwZWMiLCJzdWl0ZSIsIm1pbiIsInNpbGVudCIsIlNlc3Npb24iLCJFdmVudEVtaXR0ZXIiLCJjb25zdHJ1Y3RvciIsInJvb3QiLCJsaW50ZXIiLCJidXN5IiwiY29uc29sZSIsInZlcmJvc2l0eSIsIk1hcCIsInRvdGFsIiwiY29tcGxldGVkIiwicGFzc2VzIiwiZmFpbHVyZXMiLCJwZW5kaW5nIiwiZHVyYXRpb24iLCJEYXRlIiwibm93IiwiZGlkU3RhcnRSdW5uaW5nIiwicnVubmVyIiwiY2xlYXJNZXNzYWdlcyIsInJlcG9ydEJ1c3kiLCJta3BlcmNlbnQiLCJvbkRpZENsaWNrIiwib3BlbkNvbnNvbGUiLCJkaWRGaW5pc2hSdW5uaW5nIiwic3RhdHMiLCJsb2ciLCJkaWRDbG9zZSIsImRpc3Bvc2UiLCJlbWl0IiwiZGlkU3RhcnRTdWl0ZSIsInRpdGxlUGF0aCIsImpvaW4iLCJkaWRGaW5pc2hUZXN0Iiwic2V0VGl0bGUiLCJkaWRQYXNzVGVzdCIsInRlc3QiLCJzdWNjZXNzIiwidGl0bGUiLCJkaWRGYWlsVGVzdCIsImVyciIsImVycm9yIiwic3RhY2siLCJtZXNzYWdlIiwibWtkaWFnbWVzc2FnZSIsIm1lc3NhZ2VzIiwiZ2V0IiwibG9jYXRpb24iLCJmaWxlIiwicHVzaCIsInNldCIsInNldE1lc3NhZ2VzIiwiZGlkU2tpcFRlc3QiLCJ3YXJuIiwiY2FsbHNpdGUiLCJta2NhbGxzaXRlIiwicGF0aCIsInJlc29sdmUiLCJsaW5lIiwiY29sdW1uIiwicG9zaXRpb24iLCJzZXZlcml0eSIsImV4Y2VycHQiLCJkZXNjcmlwdGlvbiIsImZ1bGxUaXRsZSIsInRyYWNlcyIsImNsZWFuIiwidHJpbSIsInNwbGl0Iiwib3MiLCJFT0wiLCJmaWx0ZXIiLCJ0cmFjZSIsImluY2x1ZGVzIiwic2hp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QURMO0FBS0xFLElBQUFBLFFBQVEsRUFBRSxPQUxMO0FBTUxDLElBQUFBLE9BQU8sRUFBRXRCLEdBQUcsQ0FBQ0csT0FOUjtBQU9Mb0IsSUFBQUEsV0FBVyxFQUFHLEdBQUUzQixJQUFJLENBQUM0QixTQUFVLE9BQU14QixHQUFHLENBQUNFLEtBQU07QUFQMUMsR0FBUDtBQVNEOztBQUVELFNBQVNhLFVBQVQsQ0FBb0JmLEdBQXBCLEVBQXlCO0FBQ3ZCLFFBQU15QixNQUFNLEdBQUcxRSxVQUFVLENBQ3RCMkUsS0FEWSxDQUNOMUIsR0FBRyxDQUFDRSxLQURFLEVBRVp5QixJQUZZLEdBR1pDLEtBSFksQ0FHTkMsWUFBR0MsR0FIRyxDQUFmO0FBVUEsUUFBTVosSUFBSSxHQUFHTyxNQUFNLENBQ2hCTSxNQURVLENBQ0hDLEtBQUssSUFBSSxDQUFDQSxLQUFLLENBQUNDLFFBQU4sQ0FBZSxlQUFmLENBRFAsRUFFVkMsS0FGVSxNQUVDVCxNQUFNLENBQUNTLEtBQVAsRUFGZDtBQUlBLFNBQU9uRixVQUFVLENBQUNvRixTQUFYLENBQXFCakIsSUFBckIsQ0FBUDtBQUNEOztBQUVELFNBQVNyQyxTQUFULENBQW1CSSxLQUFuQixFQUEwQjtBQUN4QixTQUFPbUQsSUFBSSxDQUFDQyxLQUFMLENBQVdwRCxLQUFLLENBQUNmLFNBQU4sR0FBa0JlLEtBQUssQ0FBQ2hCLEtBQXhCLEdBQWdDLEdBQTNDLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBvcyBmcm9tICdvcydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnXG5pbXBvcnQgU3RhY2tVdGlscyBmcm9tICdzdGFjay11dGlscydcbmltcG9ydCB7IG1rc3RhdHMsIG9wZW5Db25zb2xlIH0gZnJvbSAnLi91dGlsJ1xuXG5jb25zdCBzdGFja3V0aWxzID0gbmV3IFN0YWNrVXRpbHMoe1xuICBpbnRlcm5hbHM6IFN0YWNrVXRpbHMubm9kZUludGVybmFscygpLFxufSlcblxuY29uc3QgbG9nbGV2ZWxzID0ge1xuICBzcGVjOiA0LFxuICBzdWl0ZTogMyxcbiAgbWluOiAyLFxuICBzaWxlbnQ6IDEsXG59XG5cbmNsYXNzIFNlc3Npb24gZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICAjcm9vdCA9IG51bGxcbiAgI2xpbnRlciA9IG51bGxcbiAgI21lc3NhZ2VzID0gbmV3IE1hcCgpXG4gICNidXN5ID0gbnVsbFxuICAjc3Bpbm5lciA9IG51bGxcbiAgI2NvbnNvbGUgPSBudWxsXG4gICNsb2dsZXZlbCA9IG51bGxcbiAgI3N0YXRzID0ge1xuICAgIHRvdGFsOiAwLFxuICAgIGNvbXBsZXRlZDogMCxcbiAgICBwYXNzZXM6IDAsXG4gICAgZmFpbHVyZXM6IDAsXG4gICAgcGVuZGluZzogMCxcbiAgICBkdXJhdGlvbjogMCxcbiAgfVxuXG4gICNzdGFydGVkQXQgPSBEYXRlLm5vdygpXG4gICNpc0ZpbmlzaGVkID0gZmFsc2VcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2hhZG93XG4gIGNvbnN0cnVjdG9yKHsgcm9vdCwgbGludGVyLCBidXN5LCBjb25zb2xlLCB2ZXJib3NpdHkgfSkge1xuICAgIHN1cGVyKClcblxuICAgIHRoaXMuI3Jvb3QgPSByb290XG4gICAgdGhpcy4jbGludGVyID0gbGludGVyXG4gICAgdGhpcy4jYnVzeSA9IGJ1c3lcbiAgICB0aGlzLiNjb25zb2xlID0gY29uc29sZVxuICAgIHRoaXMuI2xvZ2xldmVsID0gbG9nbGV2ZWxzW3ZlcmJvc2l0eV1cbiAgfVxuXG4gIGRpZFN0YXJ0UnVubmluZyh7IHJ1bm5lciB9KSB7XG4gICAgdGhpcy4jc3RhdHMudG90YWwgPSBydW5uZXIudG90YWxcblxuICAgIHRoaXMuI2xpbnRlci5jbGVhck1lc3NhZ2VzKClcbiAgICB0aGlzLiNzcGlubmVyID0gdGhpcy4jYnVzeS5yZXBvcnRCdXN5KGBSdW5uaW5nIE1vY2hhIHRlc3RzOiAke21rcGVyY2VudCh0aGlzLiNzdGF0cyl9JWAsIHtcbiAgICAgIG9uRGlkQ2xpY2s6IG9wZW5Db25zb2xlLFxuICAgIH0pXG4gIH1cblxuICBkaWRGaW5pc2hSdW5uaW5nKHsgcnVubmVyIH0pIHtcbiAgICBjb25zdCBzdGF0cyA9IHRoaXMuI3N0YXRzID0ge1xuICAgICAgLi4udGhpcy4jc3RhdHMsXG4gICAgICAuLi5ydW5uZXIuc3RhdHMsXG4gICAgfVxuXG4gICAgdGhpcy4jaXNGaW5pc2hlZCA9IHRydWVcbiAgICB0aGlzLiNsb2dsZXZlbCA+PSBsb2dsZXZlbHMubWluICYmIHRoaXMuI2NvbnNvbGUubG9nKG1rc3RhdHMoeyBzdGF0cyB9KSlcbiAgfVxuXG4gIGRpZENsb3NlKCkge1xuICAgIC8vIElmIHRoZSBzZXNzaW9uIGNsb3NlZCBhYnJ1cHRseSAoaWUuIGR1ZSB0byB1c2VyIHRlcm1pbmF0aW5nIE1vY2hhIGJlZm9yZSBjb21wbGV0aW9uKVxuICAgIC8vIGNhbGN1bGF0ZSBzb21lIHN0YXRpc3RpY3Mgb24gb3VyIGVuZC5cbiAgICBpZiAoIXRoaXMuI2lzRmluaXNoZWQpIHtcbiAgICAgIHRoaXMuI3N0YXRzLmR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHRoaXMuI3N0YXJ0ZWRBdFxuICAgIH1cblxuICAgIHRoaXMuI3NwaW5uZXIuZGlzcG9zZSgpXG4gICAgdGhpcy5lbWl0KCdjbG9zZScsIHsgc3RhdHM6IHRoaXMuI3N0YXRzIH0pXG4gIH1cblxuICBkaWRTdGFydFN1aXRlKHsgc3VpdGUgfSkge1xuICAgIC8vIEF2b2lkIHByaW50aW5nIGFuIGVtcHR5IGxpbmUgYXQgdGhlIGJlZ2lubmluZyBvZiB0ZXN0IHJ1biwgdGhlIHJvb3Qgc3VpdGUgZG9lcyBub3QgaGF2ZSBhXG4gICAgLy8gdGl0bGUg4pid77iPXG4gICAgaWYgKHN1aXRlLnJvb3QpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuI2xvZ2xldmVsID49IGxvZ2xldmVscy5zdWl0ZSAmJiB0aGlzLiNjb25zb2xlLmxvZyhzdWl0ZS50aXRsZVBhdGguam9pbignIOKWtu+4jiAnKSlcbiAgfVxuXG4gIGRpZEZpbmlzaFRlc3QoKSB7XG4gICAgdGhpcy4jc3RhdHMuY29tcGxldGVkKytcbiAgICB0aGlzLiNzcGlubmVyLnNldFRpdGxlKGBSdW5uaW5nIE1vY2hhIHRlc3RzOiAke21rcGVyY2VudCh0aGlzLiNzdGF0cyl9JWApXG4gIH1cblxuICBkaWRQYXNzVGVzdCh7IHRlc3QgfSkge1xuICAgIHRoaXMuI3N0YXRzLnBhc3NlcysrXG4gICAgdGhpcy4jbG9nbGV2ZWwgPj0gbG9nbGV2ZWxzLnNwZWMgJiYgdGhpcy4jY29uc29sZS5zdWNjZXNzKHRlc3QudGl0bGUpXG4gIH1cblxuICBkaWRGYWlsVGVzdCh7IHRlc3QsIGVyciB9KSB7XG4gICAgdGhpcy4jc3RhdHMuZmFpbHVyZXMrK1xuICAgIHRoaXMuI2NvbnNvbGUuZXJyb3IodGVzdC50aXRsZSlcbiAgICB0aGlzLiNjb25zb2xlLmVycm9yKGVyci5zdGFjaylcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBta2RpYWdtZXNzYWdlKHsgcm9vdDogdGhpcy4jcm9vdCwgdGVzdCwgZXJyIH0pXG5cbiAgICAvLyBXZSBjb3VsZCBub3QgZ2VuZXJhdGUgYSBtZWFuaW5nZnVsIGRpYWdub3N0aWMgbWVzc2FnZSBmb3IgdGhpcyBlcnJvciDwn5iiXG4gICAgaWYgKCFtZXNzYWdlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBtZXNzYWdlcyA9IHRoaXMuI21lc3NhZ2VzLmdldChtZXNzYWdlLmxvY2F0aW9uLmZpbGUpIHx8IFtdXG4gICAgbWVzc2FnZXMucHVzaChtZXNzYWdlKVxuICAgIHRoaXMuI21lc3NhZ2VzLnNldChtZXNzYWdlLmxvY2F0aW9uLmZpbGUsIG1lc3NhZ2VzKVxuICAgIHRoaXMuI2xpbnRlci5zZXRNZXNzYWdlcyhtZXNzYWdlLmxvY2F0aW9uLmZpbGUsIG1lc3NhZ2VzKVxuICB9XG5cbiAgZGlkU2tpcFRlc3QoeyB0ZXN0IH0pIHtcbiAgICB0aGlzLiNzdGF0cy5wZW5kaW5nKytcbiAgICB0aGlzLiNsb2dsZXZlbCA+PSBsb2dsZXZlbHMuc3BlYyAmJiB0aGlzLiNjb25zb2xlLndhcm4odGVzdC50aXRsZSlcbiAgfVxufVxuXG5mdW5jdGlvbiBta2RpYWdtZXNzYWdlKHsgcm9vdCwgdGVzdCwgZXJyIH0pIHtcbiAgY29uc3QgY2FsbHNpdGUgPSBta2NhbGxzaXRlKGVycilcblxuICAvLyBJZiB3ZSBoYXZlIG5vIHZpYWJsZSBlcnJvciBsb2NhdGlvbiBkbyBub3Qgc2hvdyB0aGUgZXJyb3IgaW4gZGlhZ25vc3RpY3Mg8J+kt+KAjeKZgu+4j1xuICBpZiAoIWNhbGxzaXRlKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8vIE5vcm1hbGlzZSBjYWxsc2l0ZSBpbmZvIHdpdGggaG93IExpbnRlciBleHBlY3RzIG1lc3NhZ2UgbG9jYXRpb25zIHRvIGJlIGRlZmluZWRcbiAgY2FsbHNpdGUuZmlsZSA9IHBhdGgucmVzb2x2ZShyb290LCBjYWxsc2l0ZS5maWxlKVxuICBjYWxsc2l0ZS5saW5lLS1cblxuICBjb25zdCB7IGZpbGUsIGxpbmUsIGNvbHVtbiB9ID0gY2FsbHNpdGVcblxuICByZXR1cm4ge1xuICAgIGxvY2F0aW9uOiB7XG4gICAgICBmaWxlLFxuICAgICAgcG9zaXRpb246IFtbbGluZSwgY29sdW1uXSwgW2xpbmUsIGNvbHVtbl1dLFxuICAgIH0sXG4gICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgZXhjZXJwdDogZXJyLm1lc3NhZ2UsXG4gICAgZGVzY3JpcHRpb246IGAke3Rlc3QuZnVsbFRpdGxlfVxcblxcbiR7ZXJyLnN0YWNrfWAsXG4gIH1cbn1cblxuZnVuY3Rpb24gbWtjYWxsc2l0ZShlcnIpIHtcbiAgY29uc3QgdHJhY2VzID0gc3RhY2t1dGlsc1xuICAgIC5jbGVhbihlcnIuc3RhY2spXG4gICAgLnRyaW0oKVxuICAgIC5zcGxpdChvcy5FT0wpXG5cbiAgLy8gQXR0ZW1wdCB0byBmaWx0ZXIgb3V0IHRyYWNlcyBwb2ludGluZyB0byBzdHVmZiBpbiBub2RlX21vZHVsZXNcbiAgLy8gR2VuZXJhbGx5IHRoZSBhY3R1YWwgY2F1c2Ugb2YgYW4gZXJyb3IgaXMgZWl0aGVyIHRoZSB0b3AtbW9zdCB0cmFjZSBvciBzb21lIHRyYWNlIGEgZmV3IHN0ZXBzXG4gIC8vIGJlbG93IHNvbWV0aGluZyBpbnNpZGUgbm9kZV9tb2R1bGVzIGR1ZSB0byB1c2VybGFuZCBjb2RlIGNhbGxpbmcgaW50byBzb21lIGRlcGVuZGVuY3kuIElmIHdlIGRvXG4gIC8vIG5vdCBmaW5kIGFueXRoaW5nIHJlbGV2YW50IGFuZCBldmVyeSB0cmFjZSBwb2ludHMgdG8gc29tZXRoaW5nIGluc2lkZSBub2RlX21vZHVsZXMsIHdlbGwsIGp1c3RcbiAgLy8gdXNlIHRoZSB0b3AtbW9zdCB0cmFjZS5cbiAgY29uc3QgbGluZSA9IHRyYWNlc1xuICAgIC5maWx0ZXIodHJhY2UgPT4gIXRyYWNlLmluY2x1ZGVzKCdub2RlX21vZHVsZXMvJykpXG4gICAgLnNoaWZ0KCkgfHwgdHJhY2VzLnNoaWZ0KClcblxuICByZXR1cm4gc3RhY2t1dGlscy5wYXJzZUxpbmUobGluZSlcbn1cblxuZnVuY3Rpb24gbWtwZXJjZW50KHN0YXRzKSB7XG4gIHJldHVybiBNYXRoLmZsb29yKHN0YXRzLmNvbXBsZXRlZCAvIHN0YXRzLnRvdGFsICogMTAwKVxufVxuXG5leHBvcnQge1xuICBTZXNzaW9uLFxufVxuIl19

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc