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.2.0 to 1.2.1

11

CHANGELOG.md

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

## [1.2.1](https://github.com/Dreamscapes/atom-ide-mocha-core/compare/atom-ide-mocha-core@1.2.0...atom-ide-mocha-core@1.2.1) (2018-11-14)
### Bug Fixes
* do not require Atom restart to apply new settings ([3d63625](https://github.com/Dreamscapes/atom-ide-mocha-core/commit/3d63625))
# [1.2.0](https://github.com/Dreamscapes/atom-ide-mocha-core/compare/atom-ide-mocha-core@1.1.3...atom-ide-mocha-core@1.2.0) (2018-11-14)

@@ -8,0 +19,0 @@

4

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

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

},
"gitHead": "731f7965aa6232b8899ddf2d5b3c9fb0b2135d67"
"gitHead": "82a0e4d566b1cee015fc03db4a6adc380ebcc1c1"
}

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

title: 'Preferred interface type',
description: ['Preferred communications interface. Unix sockets tend to be generally faster, while IP', 'allows Atom to receive Mocha reports from anywhere on your local loopback interface (ie.', 'from inside Docker).\nNote that for IP, the port will remain the same as long as the', 'first folder name in your Atom project remains the same.'].join(' '),
description: ['Preferred communications interface. Unix sockets tend to be generally faster, while IP', 'allows Atom to receive Mocha reports from anywhere on your local loopback interface (ie.', 'from inside Docker).<br />Both options will always produce the same socket/port per ', 'project, even when Atom restarts.'].join(' '),
type: 'string',

@@ -42,2 +42,2 @@ enum: ['unix', 'IP'],

exports.config = config;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbmZpZy5tanMiXSwibmFtZXMiOlsiY29uZmlnIiwiaW50ZXJmYWNlIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImpvaW4iLCJ0eXBlIiwiZW51bSIsImRlZmF1bHQiLCJub3RpZnlPblN1Y2Nlc3MiLCJub3RpZnlPbkZhaWx1cmUiLCJvcGVuQ29uc29sZU9uU3RhcnQiLCJvcGVuQ29uc29sZU9uRmFpbHVyZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsTUFBTUEsTUFBTSxHQUFHO0FBQ2JDLEVBQUFBLFNBQVMsRUFBRTtBQUNUQyxJQUFBQSxLQUFLLEVBQUUsMEJBREU7QUFFVEMsSUFBQUEsV0FBVyxFQUFFLENBQ1gsd0ZBRFcsRUFFWCwwRkFGVyxFQUdYLHNGQUhXLEVBSVgsMERBSlcsRUFLWEMsSUFMVyxDQUtOLEdBTE0sQ0FGSjtBQVNUQyxJQUFBQSxJQUFJLEVBQUUsUUFURztBQVVUQyxJQUFBQSxJQUFJLEVBQUUsQ0FDSixNQURJLEVBRUosSUFGSSxDQVZHO0FBY1RDLElBQUFBLE9BQU8sRUFBRTtBQWRBLEdBREU7QUFrQmJDLEVBQUFBLGVBQWUsRUFBRTtBQUNmTixJQUFBQSxLQUFLLEVBQUUsK0JBRFE7QUFFZkMsSUFBQUEsV0FBVyxFQUFFLGdFQUZFO0FBSWZFLElBQUFBLElBQUksRUFBRSxTQUpTO0FBS2ZFLElBQUFBLE9BQU8sRUFBRTtBQUxNLEdBbEJKO0FBMEJiRSxFQUFBQSxlQUFlLEVBQUU7QUFDZlAsSUFBQUEsS0FBSyxFQUFFLDJCQURRO0FBRWZDLElBQUFBLFdBQVcsRUFBRSxnREFGRTtBQUlmRSxJQUFBQSxJQUFJLEVBQUUsU0FKUztBQUtmRSxJQUFBQSxPQUFPLEVBQUU7QUFMTSxHQTFCSjtBQWtDYkcsRUFBQUEsa0JBQWtCLEVBQUU7QUFDbEJSLElBQUFBLEtBQUssRUFBRSw0QkFEVztBQUVsQkMsSUFBQUEsV0FBVyxFQUFFLENBQ1gsd0VBRFcsRUFFWCx3QkFGVyxFQUdYQyxJQUhXLENBR04sR0FITSxDQUZLO0FBTWxCQyxJQUFBQSxJQUFJLEVBQUUsU0FOWTtBQU9sQkUsSUFBQUEsT0FBTyxFQUFFO0FBUFMsR0FsQ1A7QUE0Q2JJLEVBQUFBLG9CQUFvQixFQUFFO0FBQ3BCVCxJQUFBQSxLQUFLLEVBQUUseUNBRGE7QUFFcEJDLElBQUFBLFdBQVcsRUFBRSxDQUNYLDZGQURXLEVBRVgsVUFGVyxFQUdYQyxJQUhXLENBR04sR0FITSxDQUZPO0FBTXBCQyxJQUFBQSxJQUFJLEVBQUUsU0FOYztBQU9wQkUsSUFBQUEsT0FBTyxFQUFFO0FBUFc7QUE1Q1QsQ0FBZiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNvbmZpZyA9IHtcbiAgaW50ZXJmYWNlOiB7XG4gICAgdGl0bGU6ICdQcmVmZXJyZWQgaW50ZXJmYWNlIHR5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiBbXG4gICAgICAnUHJlZmVycmVkIGNvbW11bmljYXRpb25zIGludGVyZmFjZS4gVW5peCBzb2NrZXRzIHRlbmQgdG8gYmUgZ2VuZXJhbGx5IGZhc3Rlciwgd2hpbGUgSVAnLFxuICAgICAgJ2FsbG93cyBBdG9tIHRvIHJlY2VpdmUgTW9jaGEgcmVwb3J0cyBmcm9tIGFueXdoZXJlIG9uIHlvdXIgbG9jYWwgbG9vcGJhY2sgaW50ZXJmYWNlIChpZS4nLFxuICAgICAgJ2Zyb20gaW5zaWRlIERvY2tlcikuXFxuTm90ZSB0aGF0IGZvciBJUCwgdGhlIHBvcnQgd2lsbCByZW1haW4gdGhlIHNhbWUgYXMgbG9uZyBhcyB0aGUnLFxuICAgICAgJ2ZpcnN0IGZvbGRlciBuYW1lIGluIHlvdXIgQXRvbSBwcm9qZWN0IHJlbWFpbnMgdGhlIHNhbWUuJyxcbiAgICBdLmpvaW4oJyAnKSxcblxuICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIGVudW06IFtcbiAgICAgICd1bml4JyxcbiAgICAgICdJUCcsXG4gICAgXSxcbiAgICBkZWZhdWx0OiAndW5peCcsXG4gIH0sXG5cbiAgbm90aWZ5T25TdWNjZXNzOiB7XG4gICAgdGl0bGU6ICdOb3RpZnkgb24gc3VjY2Vzc2Z1bCB0ZXN0IHJ1bicsXG4gICAgZGVzY3JpcHRpb246ICdTaG93IGEgbm90aWZpY2F0aW9uIHdoZW4gdGhlIHRlc3Qgc3VpdGUgZmluaXNoZXMgc3VjY2Vzc2Z1bGx5LicsXG5cbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG5cbiAgbm90aWZ5T25GYWlsdXJlOiB7XG4gICAgdGl0bGU6ICdOb3RpZnkgb24gZmFpbGVkIHRlc3QgcnVuJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Nob3cgYSBub3RpZmljYXRpb24gd2hlbiB0aGUgdGVzdCBzdWl0ZSBmYWlscy4nLFxuXG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG5cbiAgb3BlbkNvbnNvbGVPblN0YXJ0OiB7XG4gICAgdGl0bGU6ICdPcGVuIENvbnNvbGUgcGFuZSBvbiBzdGFydCcsXG4gICAgZGVzY3JpcHRpb246IFtcbiAgICAgICdXaGVuIE1vY2hhIHN0YXJ0cyBwcm92aWRpbmcgcHJvZ3Jlc3MgaW5mb3JtYXRpb24gdGhlIENvbnNvbGUgcGFuZSB3aWxsJyxcbiAgICAgICdhdXRvbWF0aWNhbGx5IHNob3cgdXAuJyxcbiAgICBdLmpvaW4oJyAnKSxcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcblxuICBvcGVuQ29uc29sZU9uRmFpbHVyZToge1xuICAgIHRpdGxlOiAnT3BlbiBDb25zb2xlIHBhbmUgYWZ0ZXIgZmFpbGVkIHRlc3QgcnVuJyxcbiAgICBkZXNjcmlwdGlvbjogW1xuICAgICAgJ1doZW4gdGhlIHRlc3Qgc3VpdGUgZW5jb3VudGVyZWQgdGVzdCBmYWlsdXJlcywgb3BlbiB0aGUgQ29uc29sZSBwYW5lIHRvIGltbWVkaWF0ZWx5IHNlZSB0aGUnLFxuICAgICAgJ2RldGFpbHMuJyxcbiAgICBdLmpvaW4oJyAnKSxcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbn1cblxuZXhwb3J0IHtcbiAgY29uZmlnLFxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbmZpZy5tanMiXSwibmFtZXMiOlsiY29uZmlnIiwiaW50ZXJmYWNlIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImpvaW4iLCJ0eXBlIiwiZW51bSIsImRlZmF1bHQiLCJub3RpZnlPblN1Y2Nlc3MiLCJub3RpZnlPbkZhaWx1cmUiLCJvcGVuQ29uc29sZU9uU3RhcnQiLCJvcGVuQ29uc29sZU9uRmFpbHVyZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsTUFBTUEsTUFBTSxHQUFHO0FBQ2JDLEVBQUFBLFNBQVMsRUFBRTtBQUNUQyxJQUFBQSxLQUFLLEVBQUUsMEJBREU7QUFFVEMsSUFBQUEsV0FBVyxFQUFFLENBQ1gsd0ZBRFcsRUFFWCwwRkFGVyxFQUdYLHNGQUhXLEVBSVgsbUNBSlcsRUFLWEMsSUFMVyxDQUtOLEdBTE0sQ0FGSjtBQVNUQyxJQUFBQSxJQUFJLEVBQUUsUUFURztBQVVUQyxJQUFBQSxJQUFJLEVBQUUsQ0FDSixNQURJLEVBRUosSUFGSSxDQVZHO0FBY1RDLElBQUFBLE9BQU8sRUFBRTtBQWRBLEdBREU7QUFrQmJDLEVBQUFBLGVBQWUsRUFBRTtBQUNmTixJQUFBQSxLQUFLLEVBQUUsK0JBRFE7QUFFZkMsSUFBQUEsV0FBVyxFQUFFLGdFQUZFO0FBSWZFLElBQUFBLElBQUksRUFBRSxTQUpTO0FBS2ZFLElBQUFBLE9BQU8sRUFBRTtBQUxNLEdBbEJKO0FBMEJiRSxFQUFBQSxlQUFlLEVBQUU7QUFDZlAsSUFBQUEsS0FBSyxFQUFFLDJCQURRO0FBRWZDLElBQUFBLFdBQVcsRUFBRSxnREFGRTtBQUlmRSxJQUFBQSxJQUFJLEVBQUUsU0FKUztBQUtmRSxJQUFBQSxPQUFPLEVBQUU7QUFMTSxHQTFCSjtBQWtDYkcsRUFBQUEsa0JBQWtCLEVBQUU7QUFDbEJSLElBQUFBLEtBQUssRUFBRSw0QkFEVztBQUVsQkMsSUFBQUEsV0FBVyxFQUFFLENBQ1gsd0VBRFcsRUFFWCx3QkFGVyxFQUdYQyxJQUhXLENBR04sR0FITSxDQUZLO0FBTWxCQyxJQUFBQSxJQUFJLEVBQUUsU0FOWTtBQU9sQkUsSUFBQUEsT0FBTyxFQUFFO0FBUFMsR0FsQ1A7QUE0Q2JJLEVBQUFBLG9CQUFvQixFQUFFO0FBQ3BCVCxJQUFBQSxLQUFLLEVBQUUseUNBRGE7QUFFcEJDLElBQUFBLFdBQVcsRUFBRSxDQUNYLDZGQURXLEVBRVgsVUFGVyxFQUdYQyxJQUhXLENBR04sR0FITSxDQUZPO0FBTXBCQyxJQUFBQSxJQUFJLEVBQUUsU0FOYztBQU9wQkUsSUFBQUEsT0FBTyxFQUFFO0FBUFc7QUE1Q1QsQ0FBZiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNvbmZpZyA9IHtcbiAgaW50ZXJmYWNlOiB7XG4gICAgdGl0bGU6ICdQcmVmZXJyZWQgaW50ZXJmYWNlIHR5cGUnLFxuICAgIGRlc2NyaXB0aW9uOiBbXG4gICAgICAnUHJlZmVycmVkIGNvbW11bmljYXRpb25zIGludGVyZmFjZS4gVW5peCBzb2NrZXRzIHRlbmQgdG8gYmUgZ2VuZXJhbGx5IGZhc3Rlciwgd2hpbGUgSVAnLFxuICAgICAgJ2FsbG93cyBBdG9tIHRvIHJlY2VpdmUgTW9jaGEgcmVwb3J0cyBmcm9tIGFueXdoZXJlIG9uIHlvdXIgbG9jYWwgbG9vcGJhY2sgaW50ZXJmYWNlIChpZS4nLFxuICAgICAgJ2Zyb20gaW5zaWRlIERvY2tlcikuPGJyIC8+Qm90aCBvcHRpb25zIHdpbGwgYWx3YXlzIHByb2R1Y2UgdGhlIHNhbWUgc29ja2V0L3BvcnQgcGVyICcsXG4gICAgICAncHJvamVjdCwgZXZlbiB3aGVuIEF0b20gcmVzdGFydHMuJyxcbiAgICBdLmpvaW4oJyAnKSxcblxuICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIGVudW06IFtcbiAgICAgICd1bml4JyxcbiAgICAgICdJUCcsXG4gICAgXSxcbiAgICBkZWZhdWx0OiAndW5peCcsXG4gIH0sXG5cbiAgbm90aWZ5T25TdWNjZXNzOiB7XG4gICAgdGl0bGU6ICdOb3RpZnkgb24gc3VjY2Vzc2Z1bCB0ZXN0IHJ1bicsXG4gICAgZGVzY3JpcHRpb246ICdTaG93IGEgbm90aWZpY2F0aW9uIHdoZW4gdGhlIHRlc3Qgc3VpdGUgZmluaXNoZXMgc3VjY2Vzc2Z1bGx5LicsXG5cbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG5cbiAgbm90aWZ5T25GYWlsdXJlOiB7XG4gICAgdGl0bGU6ICdOb3RpZnkgb24gZmFpbGVkIHRlc3QgcnVuJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Nob3cgYSBub3RpZmljYXRpb24gd2hlbiB0aGUgdGVzdCBzdWl0ZSBmYWlscy4nLFxuXG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG5cbiAgb3BlbkNvbnNvbGVPblN0YXJ0OiB7XG4gICAgdGl0bGU6ICdPcGVuIENvbnNvbGUgcGFuZSBvbiBzdGFydCcsXG4gICAgZGVzY3JpcHRpb246IFtcbiAgICAgICdXaGVuIE1vY2hhIHN0YXJ0cyBwcm92aWRpbmcgcHJvZ3Jlc3MgaW5mb3JtYXRpb24gdGhlIENvbnNvbGUgcGFuZSB3aWxsJyxcbiAgICAgICdhdXRvbWF0aWNhbGx5IHNob3cgdXAuJyxcbiAgICBdLmpvaW4oJyAnKSxcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcblxuICBvcGVuQ29uc29sZU9uRmFpbHVyZToge1xuICAgIHRpdGxlOiAnT3BlbiBDb25zb2xlIHBhbmUgYWZ0ZXIgZmFpbGVkIHRlc3QgcnVuJyxcbiAgICBkZXNjcmlwdGlvbjogW1xuICAgICAgJ1doZW4gdGhlIHRlc3Qgc3VpdGUgZW5jb3VudGVyZWQgdGVzdCBmYWlsdXJlcywgb3BlbiB0aGUgQ29uc29sZSBwYW5lIHRvIGltbWVkaWF0ZWx5IHNlZSB0aGUnLFxuICAgICAgJ2RldGFpbHMuJyxcbiAgICBdLmpvaW4oJyAnKSxcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbn1cblxuZXhwb3J0IHtcbiAgY29uZmlnLFxufVxuIl19

@@ -95,2 +95,4 @@ "use strict";

_classPrivateFieldGet(this, _subscriptions).add(atom.config.onDidChange('ide-mocha', this.didChangeConfig.bind(this)));
if (typeof _classPrivateFieldGet(this, _settings).address === 'string') {

@@ -235,2 +237,12 @@ await new Promise(resolve => _fs.default.unlink(_classPrivateFieldGet(this, _settings).address, () => resolve()));

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**'
});
}
}
didReceiveConnection(source) {

@@ -308,2 +320,2 @@ const session = new _session.Session({

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlkZS1tb2NoYS5tanMiXSwibmFtZXMiOlsiQ09OU09MRV9WSUVXX1VSSSIsIkhFTFBfVEVNUExBVEUiLCJmcyIsInJlYWRGaWxlU3luYyIsInBhdGgiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwiSWRlTW9jaGEiLCJjb25maWciLCJkb1ByaW50QWRkcmVzc0luZm8iLCJkb0NvcHlSZWNlaXZlckFkZHJlc3MiLCJkb0NvcHlNb2NoYUNvbW1hbmQiLCJkb1Nob3dIZWxwIiwiYWN0aXZhdGUiLCJhdG9tIiwicHJvamVjdCIsImdldFBhdGhzIiwic2hpZnQiLCJnZXQiLCJhZGRyZXNzIiwidXRpbCIsIm1rYWRkcmVzcyIsInJvb3QiLCJ0eXBlIiwiaW50ZXJmYWNlIiwiQ29tcG9zaXRlRGlzcG9zYWJsZSIsImFkZCIsImNvbW1hbmRzIiwiUHJvbWlzZSIsInVubGluayIsIkNvbnN1bWVyIiwib24iLCJkaWRSZWNlaXZlQ29ubmVjdGlvbiIsImxpc3RlbiIsImRlYWN0aXZhdGUiLCJjbG9zZSIsImRpc3Bvc2UiLCJjb25zdW1lQnVzeVNpZ25hbCIsImJ1c3kiLCJjb25zdW1lQ29uc29sZSIsIm1rY29uc29sZSIsImlkIiwibmFtZSIsImNvbnN1bWVMaW50ZXIiLCJta2xpbnRlciIsIm1rYWRkcmVzc2luZm8iLCJpbmZvIiwic2hvd0NvbnNvbGUiLCJjbGlwYm9hcmQiLCJ3cml0ZSIsIm5vdGlmaWNhdGlvbnMiLCJhZGRTdWNjZXNzIiwiZGVzY3JpcHRpb24iLCJjb21tYW5kIiwibWtjb21tYW5kaW5mbyIsImhlbHAiLCJyZXBsYWNlIiwiYWRkSW5mbyIsImljb24iLCJkaXNtaXNzYWJsZSIsImJ1dHRvbnMiLCJ0ZXh0IiwiY2xhc3NOYW1lIiwib25EaWRDbGljayIsInNob3dTdWNjZXNzTm90aWZpY2F0aW9uIiwic3RhdHMiLCJkZXRhaWwiLCJta3N0YXRzIiwic2hvd0ZhaWx1cmVOb3RpZmljYXRpb24iLCJhZGRFcnJvciIsInNvdXJjZSIsInNlc3Npb24iLCJTZXNzaW9uIiwibGludGVyIiwiY29uc29sZSIsInJ1bm5lciIsImRpZFN0YXJ0UnVubmluZyIsImRpZEZpbmlzaFJ1bm5pbmciLCJzdWl0ZSIsImRpZFN0YXJ0U3VpdGUiLCJkaWRGaW5pc2hUZXN0IiwidGVzdCIsImRpZFBhc3NUZXN0IiwiZXJyIiwiZGlkRmFpbFRlc3QiLCJkaWRTa2lwVGVzdCIsImRpZENsb3NlIiwib25jZSIsImZhaWx1cmVzIiwib3BlbkNvbnNvbGVPbkZhaWx1cmUiLCJub3RpZnlPbkZhaWx1cmUiLCJub3RpZnlPblN1Y2Nlc3MiLCJ3b3Jrc3BhY2UiLCJvcGVuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQSxNQUFNQSxnQkFBZ0IsR0FBRyx3QkFBekI7O0FBQ0EsTUFBTUMsYUFBYSxHQUFHQyxZQUFHQyxZQUFILENBQWdCQyxjQUFLQyxPQUFMLENBQWFDLFNBQWIsRUFBd0IsUUFBeEIsRUFBa0MsU0FBbEMsQ0FBaEIsRUFBOEQsTUFBOUQsQ0FBdEI7O0FBRUEsTUFBTUMsUUFBTixDQUFlO0FBQUE7QUFBQSxvQ0FDSkMsY0FESTs7QUFBQSxzQ0FFRjtBQUNULHNDQUFrQyxLQUFLQyxrQkFBdkMsTUFBa0MsSUFBbEMsQ0FEUztBQUVULHlDQUFxQyxLQUFLQyxxQkFBMUMsTUFBcUMsSUFBckMsQ0FGUztBQUdULHNDQUFrQyxLQUFLQyxrQkFBdkMsTUFBa0MsSUFBbEMsQ0FIUztBQUlULDZCQUF5QixLQUFLQyxVQUE5QixNQUF5QixJQUF6QjtBQUpTLEtBRkU7O0FBQUE7QUFBQTtBQUFBLGFBU0k7QUFUSjs7QUFBQTtBQUFBO0FBQUEsYUFVTDtBQVZLOztBQUFBO0FBQUE7QUFBQSxhQVdGO0FBWEU7O0FBQUE7QUFBQTtBQUFBLGFBWUg7QUFaRzs7QUFBQTtBQUFBO0FBQUEsYUFhSDtBQWJHOztBQUFBO0FBQUE7QUFBQSxhQWVMO0FBZks7O0FBQUE7QUFBQTtBQUFBLGFBZ0JEO0FBaEJDO0FB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LEVBQW9DO0FBQ2xDLGVBQUt0Qix1QkFBTCxDQUE2QjtBQUFFSCxZQUFBQTtBQUFGLFdBQTdCO0FBQ0Q7QUFDRjs7QUFFRCxVQUFJLENBQUNBLEtBQUssQ0FBQ3VCLFFBQVAsSUFBbUIsdUNBQWVHLGVBQXRDLEVBQXVEO0FBQ3JELGFBQUszQix1QkFBTCxDQUE2QjtBQUFFQyxVQUFBQTtBQUFGLFNBQTdCO0FBQ0Q7QUFDRixLQWREO0FBZUQ7O0FBckxZOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3TGYsU0FBU2xCLFdBQVQsR0FBdUI7QUFDckIsU0FBT2pDLElBQUksQ0FBQzhFLFNBQUwsQ0FBZUMsSUFBZixDQUFvQjdGLGdCQUFwQixDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb3NpdGVEaXNwb3NhYmxlIH0gZnJvbSAnYXRvbSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgeyBDb25zdW1lciB9IGZyb20gJ3JlbW90ZS1ldmVudC1lbWl0dGVyJ1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuL3V0aWwnXG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICcuL2NvbmZpZydcbmltcG9ydCB7IFNlc3Npb24gfSBmcm9tICcuL3Nlc3Npb24nXG5cbmNvbnN0IENPTlNPTEVfVklFV19VUkkgPSAnYXRvbTovL251Y2xpZGUvY29uc29sZSdcbmNvbnN0IEhFTFBfVEVNUExBVEUgPSBmcy5yZWFkRmlsZVN5bmMocGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3N0YXRpYycsICdoZWxwLm1kJyksICd1dGY4JylcblxuY2xhc3MgSWRlTW9jaGEge1xuICBjb25maWcgPSBjb25maWdcbiAgY29tbWFuZHMgPSB7XG4gICAgJ2lkZS1tb2NoYTpwcmludC1hZGRyZXNzLWluZm8nOiA6OnRoaXMuZG9QcmludEFkZHJlc3NJbmZvLFxuICAgICdpZGUtbW9jaGE6Y29weS1yZWNlaXZlci1hZGRyZXNzJzogOjp0aGlzLmRvQ29weVJlY2VpdmVyQWRkcmVzcyxcbiAgICAnaWRlLW1vY2hhOmNvcHktbW9jaGEtY29tbWFuZCc6IDo6dGhpcy5kb0NvcHlNb2NoYUNvbW1hbmQsXG4gICAgJ2lkZS1tb2NoYTpzaG93LWhlbHAnOiA6OnRoaXMuZG9TaG93SGVscCxcbiAgfVxuXG4gICNzdWJzY3JpcHRpb25zID0gbnVsbFxuICAjYnVzeSA9IG51bGxcbiAgI2NvbnNvbGUgPSBudWxsXG4gICNsaW50ZXIgPSBudWxsXG4gICNyZW1vdGUgPSBudWxsXG5cbiAgI3Jvb3QgPSBudWxsXG4gICNzZXR0aW5ncyA9IG51bGxcblxuICAvLyBMSUZFQ1lDTEVcblxuICBhc3luYyBhY3RpdmF0ZSgpIHtcbiAgICB0aGlzLiNyb290ID0gYXRvbS5wcm9qZWN0LmdldFBhdGhzKCkuc2hpZnQoKVxuICAgIHRoaXMuI3NldHRpbmdzID0gYXRvbS5jb25maWcuZ2V0KCdpZGUtbW9jaGEnKVxuICAgIHRoaXMuI3NldHRpbmdzLmFkZHJlc3MgPSB1dGlsLm1rYWRkcmVzcyh7IHJvb3Q6IHRoaXMuI3Jvb3QsIHR5cGU6IHRoaXMuI3NldHRpbmdzLmludGVyZmFjZSB9KVxuXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucyA9IG5ldyBDb21wb3NpdGVEaXNwb3NhYmxlKClcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChhdG9tLmNvbW1hbmRzLmFkZCgnYXRvbS13b3Jrc3BhY2UnLCB0aGlzLmNvbW1hbmRzKSlcblxuICAgIGlmICh0eXBlb2YgdGhpcy4jc2V0dGluZ3MuYWRkcmVzcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIEVuc3VyZSB0aGUgc29ja2V0IGRvZXMgbm90IGV4aXN0IGJlZm9yZSB3ZSBiaW5kIHRvIGl0IEFuZCB5ZXMsIGp1c3QgaWdub3JlIGFueSBlcnJvcnNcbiAgICAgIC8vIHRocm93biBoZXJlLiBJZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdCBpdCdzIGFsbCBnb29kIGFuZCBpZiB3ZSBjYW5ub3QgdW5saW5rIGl0IHRoZW4gd2VsbCxcbiAgICAgIC8vIHdlIGNhbid0IHJlYWxseSBkbyBhbnl0aGluZyBhbnl3YXkgYW5kIHdlIHdpbGwgaW5zdGVhZCB0aHJvdyBkdXJpbmcgYmluZC5cbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gZnMudW5saW5rKHRoaXMuI3NldHRpbmdzLmFkZHJlc3MsICgpID0+IHJlc29sdmUoKSkpXG4gICAgfVxuXG4gICAgdGhpcy4jcmVtb3RlID0gbmV3IENvbnN1bWVyKClcbiAgICB0aGlzLiNyZW1vdGUub24oJ2Nvbm5lY3Rpb24nLCA6OnRoaXMuZGlkUmVjZWl2ZUNvbm5lY3Rpb24pXG4gICAgYXdhaXQgdGhpcy4jcmVtb3RlLmxpc3Rlbih7IGFkZHJlc3M6IHRoaXMuI3NldHRpbmdzLmFkZHJlc3MgfSlcbiAgfVxuXG4gIGFzeW5jIGRlYWN0aXZhdGUoKSB7XG4gICAgYXdhaXQgdGhpcy4jcmVtb3RlLmNsb3NlKClcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmRpc3Bvc2UoKVxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMgPSBudWxsXG4gICAgdGhpcy4jYnVzeSA9IG51bGxcbiAgICB0aGlzLiNjb25zb2xlID0gbnVsbFxuICAgIHRoaXMuI2xpbnRlciA9IG51bGxcbiAgICB0aGlzLiNyZW1vdGUgPSBudWxsXG4gICAgdGhpcy4jc2V0dGluZ3MgPSBudWxsXG4gICAgdGhpcy4jcm9vdCA9IG51bGxcbiAgfVxuXG4gIC8vIENPTlNVTUVEIFNFUlZJQ0VTXG5cbiAgY29uc3VtZUJ1c3lTaWduYWwoYnVzeSkge1xuICAgIHRoaXMuI2J1c3kgPSBidXN5XG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQodGhpcy4jYnVzeSlcbiAgfVxuXG4gIGNvbnN1bWVDb25zb2xlKG1rY29uc29sZSkge1xuICAgIHRoaXMuI2NvbnNvbGUgPSBta2NvbnNvbGUoe1xuICAgICAgaWQ6ICdJREUtTW9jaGEnLFxuICAgICAgbmFtZTogJ0lERS1Nb2NoYScsXG4gICAgfSlcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZCh0aGlzLiNjb25zb2xlKVxuICB9XG5cbiAgY29uc3VtZUxpbnRlcihta2xpbnRlcikge1xuICAgIHRoaXMuI2xpbnRlciA9IG1rbGludGVyKHtcbiAgICAgIG5hbWU6ICdJREUtTW9jaGEnLFxuICAgIH0pXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucy5hZGQodGhpcy4jbGludGVyKVxuICB9XG5cblxuICAvLyBDT01NQU5EU1xuXG4gIGRvUHJpbnRBZGRyZXNzSW5mbygpIHtcbiAgICBjb25zdCBhZGRyZXNzID0gdXRpbC5ta2FkZHJlc3NpbmZvKHsgYWRkcmVzczogdGhpcy4jcmVtb3RlLmFkZHJlc3MoKSB9KVxuICAgIGNvbnN0IHR5cGUgPSB0aGlzLiNzZXR0aW5ncy5pbnRlcmZhY2VcblxuICAgIHRoaXMuI2NvbnNvbGUuaW5mbyhgTGlzdGVuaW5nICgke3R5cGV9KTogJHthZGRyZXNzfWApXG4gICAgcmV0dXJuIHNob3dDb25zb2xlKClcbiAgfVxuXG4gIGRvQ29weVJlY2VpdmVyQWRkcmVzcygpIHtcbiAgICBhdG9tLmNsaXBib2FyZC53cml0ZSh0aGlzLiNzZXR0aW5ncy5hZGRyZXNzKVxuICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRTdWNjZXNzKCdDb3BpZWQhJywge1xuICAgICAgZGVzY3JpcHRpb246ICcqKklERS1Nb2NoYSoqJyxcbiAgICB9KVxuICB9XG5cbiAgZG9Db3B5TW9jaGFDb21tYW5kKCkge1xuICAgIGNvbnN0IGFkZHJlc3MgPSB0aGlzLiNzZXR0aW5ncy5hZGRyZXNzXG4gICAgY29uc3QgY29tbWFuZCA9IHV0aWwubWtjb21tYW5kaW5mbyh7IGFkZHJlc3MgfSlcblxuICAgIGF0b20uY2xpcGJvYXJkLndyaXRlKGNvbW1hbmQpXG4gICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZFN1Y2Nlc3MoJ0NvcGllZCEnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJyoqSURFLU1vY2hhKionLFxuICAgIH0pXG4gIH1cblxuICBkb1Nob3dIZWxwKCkge1xuICAgIGNvbnN0IGFkZHJlc3MgPSB0aGlzLiNzZXR0aW5ncy5hZGRyZXNzXG4gICAgY29uc3QgY29tbWFuZCA9IHV0aWwubWtjb21tYW5kaW5mbyh7IGFkZHJlc3MgfSlcbiAgICBjb25zdCBoZWxwID0gSEVMUF9URU1QTEFURS5yZXBsYWNlKCcje0NPTU1BTkR9JywgY29tbWFuZClcblxuICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRJbmZvKCdJREUtTW9jaGE6IEhlbHAnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogaGVscCxcbiAgICAgIGljb246ICdtb3J0YXItYm9hcmQnLFxuICAgICAgZGlzbWlzc2FibGU6IHRydWUsXG4gICAgICBidXR0b25zOiBbe1xuICAgICAgICAvLyBFeHRyYSBzcGFjZSB0byBtYWtlIHJvb20gYmV0d2VlbiB0aGUgY2xpcHB5IGljb24gYW5kIHRleHQg8J+OqFxuICAgICAgICB0ZXh0OiAnIENvcHkgTW9jaGEgY29tbWFuZCB0byBjbGlwYm9hcmQnLFxuICAgICAgICBjbGFzc05hbWU6ICdidG4gYnRuLWluZm8gaWNvbi1jbGlwcHkgc2VsZWN0ZWQnLFxuICAgICAgICBvbkRpZENsaWNrKCkge1xuICAgICAgICAgIGF0b20uY2xpcGJvYXJkLndyaXRlKGNvbW1hbmQpXG4gICAgICAgICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZFN1Y2Nlc3MoJ0NvcGllZCEnLCB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJyoqSURFLU1vY2hhKionLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICB9XSxcbiAgICB9KVxuICB9XG5cblxuICAvLyBURVNUIFJFU1VMVFMgTk9USUZJQ0FUSU9OU1xuXG4gIHNob3dTdWNjZXNzTm90aWZpY2F0aW9uKHsgc3RhdHMgfSkge1xuICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRTdWNjZXNzKCdUZXN0IHN1aXRlIHBhc3NlZC4nLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJyoqSURFLU1vY2hhKionLFxuICAgICAgZGV0YWlsOiB1dGlsLm1rc3RhdHMoeyBzdGF0cyB9KSxcbiAgICB9KVxuICB9XG5cbiAgc2hvd0ZhaWx1cmVOb3RpZmljYXRpb24oeyBzdGF0cyB9KSB7XG4gICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZEVycm9yKCdUZXN0IHN1aXRlIGZhaWxlZC4nLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJyoqSURFLU1vY2hhKionLFxuICAgICAgZGV0YWlsOiB1dGlsLm1rc3RhdHMoeyBzdGF0cyB9KSxcbiAgICAgIGJ1dHRvbnM6IFt7XG4gICAgICAgIHRleHQ6ICdPcGVuIENvbnNvbGUnLFxuICAgICAgICBvbkRpZENsaWNrOiBzaG93Q29uc29sZSxcbiAgICAgIH1dLFxuICAgIH0pXG4gIH1cblxuXG4gIC8vIElNUExFTUVOVEFUSU9OXG5cbiAgZGlkUmVjZWl2ZUNvbm5lY3Rpb24oc291cmNlKSB7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IG5ldyBTZXNzaW9uKHtcbiAgICAgIHJvb3Q6IHRoaXMuI3Jvb3QsXG4gICAgICBsaW50ZXI6IHRoaXMuI2xpbnRlcixcbiAgICAgIGJ1c3k6IHRoaXMuI2J1c3ksXG4gICAgICBjb25zb2xlOiB0aGlzLiNjb25zb2xlLFxuICAgIH0pXG5cbiAgICBzb3VyY2Uub24oJ3N0YXJ0JywgcnVubmVyID0+IHNlc3Npb24uZGlkU3RhcnRSdW5uaW5nKHsgcnVubmVyIH0pKVxuICAgIHNvdXJjZS5vbignZW5kJywgcnVubmVyID0+IHNlc3Npb24uZGlkRmluaXNoUnVubmluZyh7IHJ1bm5lciB9KSlcbiAgICBzb3VyY2Uub24oJ3N1aXRlJywgc3VpdGUgPT4gc2Vzc2lvbi5kaWRTdGFydFN1aXRlKHsgc3VpdGUgfSkpXG4gICAgc291cmNlLm9uKCd0ZXN0IGVuZCcsICgpID0+IHNlc3Npb24uZGlkRmluaXNoVGVzdCgpKVxuICAgIHNvdXJjZS5vbigncGFzcycsIHRlc3QgPT4gc2Vzc2lvbi5kaWRQYXNzVGVzdCh7IHRlc3QgfSkpXG4gICAgc291cmNlLm9uKCdmYWlsJywgKHRlc3QsIGVycikgPT4gc2Vzc2lvbi5kaWRGYWlsVGVzdCh7IHRlc3QsIGVyciB9KSlcbiAgICBzb3VyY2Uub24oJ3BlbmRpbmcnLCB0ZXN0ID0+IHNlc3Npb24uZGlkU2tpcFRlc3QoeyB0ZXN0IH0pKVxuICAgIHNvdXJjZS5vbignY2xvc2UnLCAoKSA9PiBzZXNzaW9uLmRpZENsb3NlKCkpXG5cbiAgICBzZXNzaW9uLm9uY2UoJ2Nsb3NlJywgKHsgc3RhdHMgfSkgPT4ge1xuICAgICAgaWYgKHN0YXRzLmZhaWx1cmVzKSB7XG4gICAgICAgIGlmICh0aGlzLiNzZXR0aW5ncy5vcGVuQ29uc29sZU9uRmFpbHVyZSkge1xuICAgICAgICAgIHNob3dDb25zb2xlKClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLiNzZXR0aW5ncy5ub3RpZnlPbkZhaWx1cmUpIHtcbiAgICAgICAgICB0aGlzLnNob3dGYWlsdXJlTm90aWZpY2F0aW9uKHsgc3RhdHMgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIXN0YXRzLmZhaWx1cmVzICYmIHRoaXMuI3NldHRpbmdzLm5vdGlmeU9uU3VjY2Vzcykge1xuICAgICAgICB0aGlzLnNob3dTdWNjZXNzTm90aWZpY2F0aW9uKHsgc3RhdHMgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG5cbmZ1bmN0aW9uIHNob3dDb25zb2xlKCkge1xuICByZXR1cm4gYXRvbS53b3Jrc3BhY2Uub3BlbihDT05TT0xFX1ZJRVdfVVJJKVxufVxuXG5leHBvcnQge1xuICBJZGVNb2NoYSxcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlkZS1tb2NoYS5tanMiXSwibmFtZXMiOlsiQ09OU09MRV9WSUVXX1VSSSIsIkhFTFBfVEVNUExBVEUiLCJmcyIsInJlYWRGaWxlU3luYyIsInBhdGgiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwiSWRlTW9jaGEiLCJjb25maWciLCJkb1ByaW50QWRkcmVzc0luZm8iLCJkb0NvcHlSZWNlaXZlckFkZHJlc3MiLCJkb0NvcHlNb2NoYUNvbW1hbmQiLCJkb1Nob3dIZWxwIiwiYWN0aXZhdGUiLCJhdG9tIiwicHJvamVjdCIsImdldFBhdGhzIiwic2hpZnQiLCJnZXQiLCJhZGRyZXNzIiwidXRpbCIsIm1rYWRkcmVzcyIsInJvb3QiLCJ0eXBlIiwiaW50ZXJmYWNlIiwiQ29tcG9zaXRlRGlzcG9zYWJsZSIsImFkZCIsImNvbW1hbmRzIiwib25EaWRDaGFuZ2UiLCJkaWRDaGFuZ2VDb25maWciLCJQcm9taXNlIiwidW5saW5rIiwiQ29uc3VtZXIiLCJvbiIsImRpZFJlY2VpdmVDb25uZWN0aW9uIiwibGlzdGVuIiwiZGVhY3RpdmF0ZSIsImNsb3NlIiwiZGlzcG9zZSIsImNvbnN1bWVCdXN5U2lnbmFsIiwiYnVzeSIsImNvbnN1bWVDb25zb2xlIiwibWtjb25zb2xlIiwiaWQiLCJuYW1lIiwiY29uc3VtZUxpbnRlciIsIm1rbGludGVyIiwibWthZGRyZXNzaW5mbyIsImluZm8iLCJzaG93Q29uc29sZSIsImNsaXBib2FyZCIsIndyaXRlIiwibm90aWZpY2F0aW9ucyIsImFkZFN1Y2Nlc3MiLCJkZXNjcmlwdGlvbiIsImNvbW1hbmQiLCJta2NvbW1hbmRpbmZvIiwiaGVscCIsInJlcGxhY2UiLCJhZGRJbmZvIiwiaWNvbiIsImRpc21pc3NhYmxlIiwiYnV0dG9ucyIsInRleHQiLCJjbGFzc05hbWUiLCJvbkRpZENsaWNrIiwic2hvd1N1Y2Nlc3NOb3RpZmljYXRpb24iLCJzdGF0cyIsImRldGFpbCIsIm1rc3RhdHMiLCJzaG93RmFpbHVyZU5vdGlmaWNhdGlvbiIsImFkZEVycm9yIiwiY2hhbmdlIiwibmV3VmFsdWUiLCJvbGRWYWx1ZSIsInNvdXJjZSIsInNlc3Npb24iLCJTZXNzaW9uIiwibGludGVyIiwiY29uc29sZSIsInJ1bm5lciIsImRpZFN0YXJ0UnVubmluZyIsImRpZEZpbmlzaFJ1bm5pbmciLCJzdWl0ZSIsImRpZFN0YXJ0U3VpdGUiLCJkaWRGaW5pc2hUZXN0IiwidGVzdCIsImRpZFBhc3NUZXN0IiwiZXJyIiwiZGlkRmFpbFRlc3QiLCJkaWRTa2lwVGVzdCIsImRpZENsb3NlIiwib25jZSIsImZhaWx1cmVzIiwib3BlbkNvbnNvbGVPbkZhaWx1cmUiLCJub3RpZnlPbkZhaWx1cmUiLCJub3RpZnlPblN1Y2Nlc3MiLCJ3b3Jrc3BhY2UiLCJvcGVuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQSxNQUFNQSxnQkFBZ0IsR0FBRyx3QkFBekI7O0FBQ0EsTUFBTUMsYUFBYSxHQUFHQyxZQUFHQyxZQUFILENBQWdCQyxjQUFLQyxPQUFMLENBQWFDLFNBQWIsRUFBd0IsUUFBeEIsRUFBa0MsU0FBbEMsQ0FBaEIsRUFBOEQsTUFBOUQsQ0FBdEI7O0FBRUEsTUFBTUMsUUFBTixDQUFlO0FBQUE7QUFBQSxvQ0FDSkMsY0FESTs7QUFBQSxzQ0FFRjtBQUNULHNDQUFrQyxLQUFLQyxrQkFBdkMsTUFBa0MsSUFBbEMsQ0FEUztBQUVULHlDQUFxQyxLQUFLQyxxQkFBMUMsTUFBcUMsSUFBckMsQ0FGUztBQUdULHNDQUFrQyxLQUFLQyxrQkFBdkMsTUFBa0MsSUFBbEMsQ0FIUztBQUlULDZCQUF5QixLQUFLQyxVQUE5QixNQUF5QixJQUF6QjtBQUpTLEtBRkU7O0FBQUE7QUFBQTtBQUFBLGFBU0k7QUFUSjs7QUFBQTtBQUFBO0FBQUEsYUFVTDtBQVZLOztBQUFBO0FBQUE7QUFBQSxhQVdGO0FBWEU7O0FBQUE7QUFBQTtBQUFBLGFBWUg7QUFaRzs7QUFBQTtBQUFBO0FBQUEsYUFhSDtBQWJHOztBQUFBO0FBQUE7QUFBQSxhQWVMO0FBZks7O0FBQUE7QUFBQTtBQUFBLGFBZ0JEO0FBaEJDO0FBQUE7O0FBb0JiLFFBQU1DLFFBQU4sR0FBaUI7QUFDZix1Q0FBYUMsSUFBSSxDQUFDQyxPQUFMLENBQWFDLFFBQWIsR0FBd0JDLEtBQXhCLEVBQWI7O0FBQ0EsMkNBQWlCSCxJQUFJLENBQUNOLE1BQUwsQ0FBWVUsR0FBWixDQUFnQixXQUFoQixDQUFqQjs7QUFDQSwyQ0FBZUMsT0FBZixHQUF5QkMsSUFBSSxDQUFDQyxTQUFMLENBQWU7QUFBRUMsTUFBQUEsSUFBSSx3QkFBRSxJQUFGLFFBQU47QUFBb0JDLE1BQUFBLElBQUksRUFBRSx1Q0FBZUM7QUFBekMsS0FBZixDQUF6Qjs7QUFFQSxnREFBc0IsSUFBSUMseUJBQUosRUFBdEI7O0FBQ0EsZ0RBQW9CQyxHQUFwQixDQUF3QlosSUFBSSxDQUFDYSxRQUFMLENBQWNELEdBQWQsQ0FBa0IsZ0JBQWxCLEVBQW9DLEtBQUtDLFFBQXpDLENBQXhCOztBQUNBLGdEQUFvQkQsR0FBcEIsQ0FBd0JaLElBQUksQ0FBQ04sTUFBTCxDQUFZb0IsV0FBWixDQUF3QixXQUF4QixFQUF1QyxLQUFLQyxlQUE1QyxNQUF1QyxJQUF2QyxFQUF4Qjs7QUFFQSxRQUFJLE9BQU8sdUNBQWVWLE9BQXRCLEtBQWtDLFFBQXRDLEVBQWdEO0FBSTlDLFlBQU0sSUFBSVcsT0FBSixDQUFZekIsT0FBTyxJQUFJSCxZQUFHNkIsTUFBSCxDQUFVLHVDQUFlWixPQUF6QixFQUFrQyxNQUFNZCxPQUFPLEVBQS9DLENBQXZCLENBQU47QUFDRDs7QUFFRCx5Q0FBZSxJQUFJMkIsNEJBQUosRUFBZjs7QUFDQSx5Q0FBYUMsRUFBYixDQUFnQixZQUFoQixFQUFnQyxLQUFLQyxvQkFBckMsTUFBZ0MsSUFBaEM7O0FBQ0EsVUFBTSxxQ0FBYUMsTUFBYixDQUFvQjtBQUFFaEIsTUFBQUEsT0FBTyxFQUFFLHVDQUFlQTtBQUExQixLQUFwQixDQUFOO0FBQ0Q7O0FBRUQsUUFBTWlCLFVBQU4sR0FBbUI7QUFDakIsVUFBTSxxQ0FBYUMsS0FBYixFQUFOOztBQUNBLGdEQUFvQkMsT0FBcEI7O0FBQ0EsZ0RBQXNCLElBQXRCOztBQUNBLHVDQUFhLElBQWI7O0FBQ0EsMENBQWdCLElBQWhCOztBQUNBLHlDQUFlLElBQWY7O0FBQ0EseUNBQWUsSUFBZjs7QUFDQSwyQ0FBaUIsSUFBakI7O0FBQ0EsdUNBQWEsSUFBYjtBQUNEOztBQUlEQyxFQUFBQSxpQkFBaUIsQ0FBQ0MsSUFBRCxFQUFPO0FBQ3RCLHVDQUFhQSxJQUFiOztBQUNBLGdEQUFvQmQsR0FBcEIsdUJBQXdCLElBQXhCO0FBQ0Q7O0FBRURlLEVBQUFBLGNBQWMsQ0FBQ0MsU0FBRCxFQUFZO0FBQ3hCLDBDQUFnQkEsU0FBUyxDQUFDO0FBQ3hCQyxNQUFBQSxFQUFFLEVBQUUsV0FEb0I7QUFFeEJDLE1BQUFBLElBQUksRUFBRTtBQUZrQixLQUFELENBQXpCOztBQUlBLGdEQUFvQmxCLEdBQXBCLHVCQUF3QixJQUF4QjtBQUNEOztBQUVEbUIsRUFBQUEsYUFBYSxDQUFDQyxRQUFELEVBQVc7QUFDdEIseUNBQWVBLFFBQVEsQ0FBQztBQUN0QkYsTUFBQUEsSUFBSSxFQUFFO0FBRGdCLEtBQUQsQ0FBdkI7O0FBR0EsZ0RBQW9CbEIsR0FBcEIsdUJBQXdCLElBQXhCO0FBQ0Q7O0FBS0RqQixFQUFBQSxrQkFBa0IsR0FBRztBQUNuQixVQUFNVSxPQUFPLEdBQUdDLElBQUksQ0FBQzJCLGFBQUwsQ0FBbUI7QUFBRTVCLE1BQUFBLE9BQU8sRUFBRSxxQ0FBYUEsT0FBYjtBQUFYLEtBQW5CLENBQWhCOztBQUNBLFVBQU1JLElBQUksR0FBRyx1Q0FBZUMsU0FBNUI7O0FBRUEsMENBQWN3QixJQUFkLENBQW9CLGNBQWF6QixJQUFLLE1BQUtKLE9BQVEsRUFBbkQ7O0FBQ0EsV0FBTzhCLFdBQVcsRUFBbEI7QUFDRDs7QUFFRHZDLEVBQUFBLHFCQUFxQixHQUFHO0FBQ3RCSSxJQUFBQSxJQUFJLENBQUNvQyxTQUFMLENBQWVDLEtBQWYsQ0FBcUIsdUNBQWVoQyxPQUFwQztBQUNBTCxJQUFBQSxJQUFJLENBQUNzQyxhQUFMLENBQW1CQyxVQUFuQixDQUE4QixTQUE5QixFQUF5QztBQUN2Q0MsTUFBQUEsV0FBVyxFQUFFO0FBRDBCLEtBQXpDO0FBR0Q7O0FBRUQzQyxFQUFBQSxrQkFBa0IsR0FBRztBQUNuQixVQUFNUSxPQUFPLEdBQUcsdUNBQWVBLE9BQS9COztBQUNBLFVBQU1vQyxPQUFPLEdBQUduQyxJQUFJLENBQUNvQyxhQUFMLENBQW1CO0FBQUVyQyxNQUFBQTtBQUFGLEtBQW5CLENBQWhCO0FBRUFMLElBQUFBLElBQUksQ0FBQ29DLFNBQUwsQ0FBZUMsS0FBZixDQUFxQkksT0FBckI7QUFDQXpDLElBQUFBLElBQUksQ0FBQ3NDLGFBQUwsQ0FBbUJDLFVBQW5CLENBQThCLFNBQTlCLEVBQXlDO0FBQ3ZDQyxNQUFBQSxXQUFXLEVBQUU7QUFEMEIsS0FBekM7QUFHRDs7QUFFRDFDLEVBQUFBLFVBQVUsR0FBRztBQUNYLFVBQU1PLE9BQU8sR0FBRyx1Q0FBZUEsT0FBL0I7O0FBQ0EsVUFBTW9DLE9BQU8sR0FBR25DLElBQUksQ0FBQ29DLGFBQUwsQ0FBbUI7QUFBRXJDLE1BQUFBO0FBQUYsS0FBbkIsQ0FBaEI7QUFDQSxVQUFNc0MsSUFBSSxHQUFHeEQsYUFBYSxDQUFDeUQsT0FBZCxDQUFzQixZQUF0QixFQUFvQ0gsT0FBcEMsQ0FBYjtBQUVBekMsSUFBQUEsSUFBSSxDQUFDc0MsYUFBTCxDQUFtQk8sT0FBbkIsQ0FBMkIsaUJBQTNCLEVBQThDO0FBQzVDTCxNQUFBQSxXQUFXLEVBQUVHLElBRCtCO0FBRTVDRyxNQUFBQSxJQUFJLEVBQUUsY0FGc0M7QUFHNUNDLE1BQUFBLFdBQVcsRUFBRSxJQUgrQjtBQUk1Q0MsTUFBQUEsT0FBTyxFQUFFLENBQUM7QUFFUkMsUUFBQUEsSUFBSSxFQUFFLGtDQUZFO0FBR1JDLFFBQUFBLFNBQVMsRUFBRSxtQ0FISDs7QUFJUkMsUUFBQUEsVUFBVSxHQUFHO0FBQ1huRCxVQUFBQSxJQUFJLENBQUNvQyxTQUFMLENBQWVDLEtBQWYsQ0FBcUJJLE9BQXJCO0FBQ0F6QyxVQUFBQSxJQUFJLENBQUNzQyxhQUFMLENBQW1CQyxVQUFuQixDQUE4QixTQUE5QixFQUF5QztBQUN2Q0MsWUFBQUEsV0FBVyxFQUFFO0FBRDBCLFdBQXpDO0FBR0Q7O0FBVE8sT0FBRDtBQUptQyxLQUE5QztBQWdCRDs7QUFLRFksRUFBQUEsdUJBQXVCLENBQUM7QUFBRUMsSUFBQUE7QUFBRixHQUFELEVBQVk7QUFDakNyRCxJQUFBQSxJQUFJLENBQUNzQyxhQUFMLENBQW1CQyxVQUFuQixDQUE4QixvQkFBOUIsRUFBb0Q7QUFDbERDLE1BQUFBLFdBQVcsRUFBRSxlQURxQztBQUVsRGMsTUFBQUEsTUFBTSxFQUFFaEQsSUFBSSxDQUFDaUQsT0FBTCxDQUFhO0FBQUVGLFFBQUFBO0FBQUYsT0FBYjtBQUYwQyxLQUFwRDtBQUlEOztBQUVERyxFQUFBQSx1QkFBdUIsQ0FBQztBQUFFSCxJQUFBQTtBQUFGLEdBQUQsRUFBWTtBQUNqQ3JELElBQUFBLElBQUksQ0FBQ3NDLGFBQUwsQ0FBbUJtQixRQUFuQixDQUE0QixvQkFBNUIsRUFBa0Q7QUFDaERqQixNQUFBQSxXQUFXLEVBQUUsZUFEbUM7QUFFaERjLE1BQUFBLE1BQU0sRUFBRWhELElBQUksQ0FBQ2lELE9BQUwsQ0FBYTtBQUFFRixRQUFBQTtBQUFGLE9BQWIsQ0FGd0M7QUFHaERMLE1BQUFBLE9BQU8sRUFBRSxDQUFDO0FBQ1JDLFFBQUFBLElBQUksRUFBRSxjQURFO0FBRVJFLFFBQUFBLFVBQVUsRUFBRWhCO0FBRkosT0FBRDtBQUh1QyxLQUFsRDtBQVFEOztBQUtEcEIsRUFBQUEsZUFBZSxDQUFDMkMsTUFBRCxFQUFTO0FBQ3RCLDJDQUFpQkEsTUFBTSxDQUFDQyxRQUF4Qjs7QUFHQSxRQUFJRCxNQUFNLENBQUNDLFFBQVAsQ0FBZ0JqRCxTQUFoQixLQUE4QmdELE1BQU0sQ0FBQ0UsUUFBUCxDQUFnQmxELFNBQWxELEVBQTZEO0FBQzNEVixNQUFBQSxJQUFJLENBQUNzQyxhQUFMLENBQW1CTyxPQUFuQixDQUEyQiw2REFBM0IsRUFBMEY7QUFDeEZMLFFBQUFBLFdBQVcsRUFBRTtBQUQyRSxPQUExRjtBQUdEO0FBQ0Y7O0FBRURwQixFQUFBQSxvQkFBb0IsQ0FBQ3lDLE1BQUQsRUFBUztBQUMzQixVQUFNQyxPQUFPLEdBQUcsSUFBSUMsZ0JBQUosQ0FBWTtBQUMxQnZELE1BQUFBLElBQUksd0JBQUUsSUFBRixRQURzQjtBQUUxQndELE1BQUFBLE1BQU0sd0JBQUUsSUFBRixVQUZvQjtBQUcxQnRDLE1BQUFBLElBQUksd0JBQUUsSUFBRixRQUhzQjtBQUkxQnVDLE1BQUFBLE9BQU8sd0JBQUUsSUFBRjtBQUptQixLQUFaLENBQWhCO0FBT0FKLElBQUFBLE1BQU0sQ0FBQzFDLEVBQVAsQ0FBVSxPQUFWLEVBQW1CK0MsTUFBTSxJQUFJSixPQUFPLENBQUNLLGVBQVIsQ0FBd0I7QUFBRUQsTUFBQUE7QUFBRixLQUF4QixDQUE3QjtBQUNBTCxJQUFBQSxNQUFNLENBQUMxQyxFQUFQLENBQVUsS0FBVixFQUFpQitDLE1BQU0sSUFBSUosT0FBTyxDQUFDTSxnQkFBUixDQUF5QjtBQUFFRixNQUFBQTtBQUFGLEtBQXpCLENBQTNCO0FBQ0FMLElBQUFBLE1BQU0sQ0FBQzFDLEVBQVAsQ0FBVSxPQUFWLEVBQW1Ca0QsS0FBSyxJQUFJUCxPQUFPLENBQUNRLGFBQVIsQ0FBc0I7QUFBRUQsTUFBQUE7QUFBRixLQUF0QixDQUE1QjtBQUNBUixJQUFBQSxNQUFNLENBQUMxQyxFQUFQLENBQVUsVUFBVixFQUFzQixNQUFNMkMsT0FBTyxDQUFDUyxhQUFSLEVBQTVCO0FBQ0FWLElBQUFBLE1BQU0sQ0FBQzFDLEVBQVAsQ0FBVSxNQUFWLEVBQWtCcUQsSUFBSSxJQUFJVixPQUFPLENBQUNXLFdBQVIsQ0FBb0I7QUFBRUQsTUFBQUE7QUFBRixLQUFwQixDQUExQjtBQUNBWCxJQUFBQSxNQUFNLENBQUMxQyxFQUFQLENBQVUsTUFBVixFQUFrQixDQUFDcUQsSUFBRCxFQUFPRSxHQUFQLEtBQWVaLE9BQU8sQ0FBQ2EsV0FBUixDQUFvQjtBQUFFSCxNQUFBQSxJQUFGO0FBQVFFLE1BQUFBO0FBQVIsS0FBcEIsQ0FBakM7QUFDQWIsSUFBQUEsTUFBTSxDQUFDMUMsRUFBUCxDQUFVLFNBQVYsRUFBcUJxRCxJQUFJLElBQUlWLE9BQU8sQ0FBQ2MsV0FBUixDQUFvQjtBQUFFSixNQUFBQTtBQUFGLEtBQXBCLENBQTdCO0FBQ0FYLElBQUFBLE1BQU0sQ0FBQzFDLEVBQVAsQ0FBVSxPQUFWLEVBQW1CLE1BQU0yQyxPQUFPLENBQUNlLFFBQVIsRUFBekI7QUFFQWYsSUFBQUEsT0FBTyxDQUFDZ0IsSUFBUixDQUFhLE9BQWIsRUFBc0IsQ0FBQztBQUFFekIsTUFBQUE7QUFBRixLQUFELEtBQWU7QUFDbkMsVUFBSUEsS0FBSyxDQUFDMEIsUUFBVixFQUFvQjtBQUNsQixZQUFJLHVDQUFlQyxvQkFBbkIsRUFBeUM7QUFDdkM3QyxVQUFBQSxXQUFXO0FBQ1o7O0FBRUQsWUFBSSx1Q0FBZThDLGVBQW5CLEVBQW9DO0FBQ2xDLGVBQUt6Qix1QkFBTCxDQUE2QjtBQUFFSCxZQUFBQTtBQUFGLFdBQTdCO0FBQ0Q7QUFDRjs7QUFFRCxVQUFJLENBQUNBLEtBQUssQ0FBQzBCLFFBQVAsSUFBbUIsdUNBQWVHLGVBQXRDLEVBQXVEO0FBQ3JELGFBQUs5Qix1QkFBTCxDQUE2QjtBQUFFQyxVQUFBQTtBQUFGLFNBQTdCO0FBQ0Q7QUFDRixLQWREO0FBZUQ7O0FBak1ZOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvTWYsU0FBU2xCLFdBQVQsR0FBdUI7QUFDckIsU0FBT25DLElBQUksQ0FBQ21GLFNBQUwsQ0FBZUMsSUFBZixDQUFvQmxHLGdCQUFwQixDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb3NpdGVEaXNwb3NhYmxlIH0gZnJvbSAnYXRvbSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgeyBDb25zdW1lciB9IGZyb20gJ3JlbW90ZS1ldmVudC1lbWl0dGVyJ1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuL3V0aWwnXG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICcuL2NvbmZpZydcbmltcG9ydCB7IFNlc3Npb24gfSBmcm9tICcuL3Nlc3Npb24nXG5cbmNvbnN0IENPTlNPTEVfVklFV19VUkkgPSAnYXRvbTovL251Y2xpZGUvY29uc29sZSdcbmNvbnN0IEhFTFBfVEVNUExBVEUgPSBmcy5yZWFkRmlsZVN5bmMocGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3N0YXRpYycsICdoZWxwLm1kJyksICd1dGY4JylcblxuY2xhc3MgSWRlTW9jaGEge1xuICBjb25maWcgPSBjb25maWdcbiAgY29tbWFuZHMgPSB7XG4gICAgJ2lkZS1tb2NoYTpwcmludC1hZGRyZXNzLWluZm8nOiA6OnRoaXMuZG9QcmludEFkZHJlc3NJbmZvLFxuICAgICdpZGUtbW9jaGE6Y29weS1yZWNlaXZlci1hZGRyZXNzJzogOjp0aGlzLmRvQ29weVJlY2VpdmVyQWRkcmVzcyxcbiAgICAnaWRlLW1vY2hhOmNvcHktbW9jaGEtY29tbWFuZCc6IDo6dGhpcy5kb0NvcHlNb2NoYUNvbW1hbmQsXG4gICAgJ2lkZS1tb2NoYTpzaG93LWhlbHAnOiA6OnRoaXMuZG9TaG93SGVscCxcbiAgfVxuXG4gICNzdWJzY3JpcHRpb25zID0gbnVsbFxuICAjYnVzeSA9IG51bGxcbiAgI2NvbnNvbGUgPSBudWxsXG4gICNsaW50ZXIgPSBudWxsXG4gICNyZW1vdGUgPSBudWxsXG5cbiAgI3Jvb3QgPSBudWxsXG4gICNzZXR0aW5ncyA9IG51bGxcblxuICAvLyBMSUZFQ1lDTEVcblxuICBhc3luYyBhY3RpdmF0ZSgpIHtcbiAgICB0aGlzLiNyb290ID0gYXRvbS5wcm9qZWN0LmdldFBhdGhzKCkuc2hpZnQoKVxuICAgIHRoaXMuI3NldHRpbmdzID0gYXRvbS5jb25maWcuZ2V0KCdpZGUtbW9jaGEnKVxuICAgIHRoaXMuI3NldHRpbmdzLmFkZHJlc3MgPSB1dGlsLm1rYWRkcmVzcyh7IHJvb3Q6IHRoaXMuI3Jvb3QsIHR5cGU6IHRoaXMuI3NldHRpbmdzLmludGVyZmFjZSB9KVxuXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucyA9IG5ldyBDb21wb3NpdGVEaXNwb3NhYmxlKClcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChhdG9tLmNvbW1hbmRzLmFkZCgnYXRvbS13b3Jrc3BhY2UnLCB0aGlzLmNvbW1hbmRzKSlcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZChhdG9tLmNvbmZpZy5vbkRpZENoYW5nZSgnaWRlLW1vY2hhJywgOjp0aGlzLmRpZENoYW5nZUNvbmZpZykpXG5cbiAgICBpZiAodHlwZW9mIHRoaXMuI3NldHRpbmdzLmFkZHJlc3MgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBFbnN1cmUgdGhlIHNvY2tldCBkb2VzIG5vdCBleGlzdCBiZWZvcmUgd2UgYmluZCB0byBpdC4gQW5kIHllcywganVzdCBpZ25vcmUgYW55IGVycm9yc1xuICAgICAgLy8gdGhyb3duIGhlcmUuIElmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0IGl0J3MgYWxsIGdvb2QgYW5kIGlmIHdlIGNhbm5vdCB1bmxpbmsgaXQgdGhlbiB3ZWxsLFxuICAgICAgLy8gd2UgY2FuJ3QgcmVhbGx5IGRvIGFueXRoaW5nIGFueXdheSBhbmQgd2Ugd2lsbCBpbnN0ZWFkIHRocm93IGR1cmluZyBiaW5kLlxuICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBmcy51bmxpbmsodGhpcy4jc2V0dGluZ3MuYWRkcmVzcywgKCkgPT4gcmVzb2x2ZSgpKSlcbiAgICB9XG5cbiAgICB0aGlzLiNyZW1vdGUgPSBuZXcgQ29uc3VtZXIoKVxuICAgIHRoaXMuI3JlbW90ZS5vbignY29ubmVjdGlvbicsIDo6dGhpcy5kaWRSZWNlaXZlQ29ubmVjdGlvbilcbiAgICBhd2FpdCB0aGlzLiNyZW1vdGUubGlzdGVuKHsgYWRkcmVzczogdGhpcy4jc2V0dGluZ3MuYWRkcmVzcyB9KVxuICB9XG5cbiAgYXN5bmMgZGVhY3RpdmF0ZSgpIHtcbiAgICBhd2FpdCB0aGlzLiNyZW1vdGUuY2xvc2UoKVxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuZGlzcG9zZSgpXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9ucyA9IG51bGxcbiAgICB0aGlzLiNidXN5ID0gbnVsbFxuICAgIHRoaXMuI2NvbnNvbGUgPSBudWxsXG4gICAgdGhpcy4jbGludGVyID0gbnVsbFxuICAgIHRoaXMuI3JlbW90ZSA9IG51bGxcbiAgICB0aGlzLiNzZXR0aW5ncyA9IG51bGxcbiAgICB0aGlzLiNyb290ID0gbnVsbFxuICB9XG5cbiAgLy8gQ09OU1VNRUQgU0VSVklDRVNcblxuICBjb25zdW1lQnVzeVNpZ25hbChidXN5KSB7XG4gICAgdGhpcy4jYnVzeSA9IGJ1c3lcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZCh0aGlzLiNidXN5KVxuICB9XG5cbiAgY29uc3VtZUNvbnNvbGUobWtjb25zb2xlKSB7XG4gICAgdGhpcy4jY29uc29sZSA9IG1rY29uc29sZSh7XG4gICAgICBpZDogJ0lERS1Nb2NoYScsXG4gICAgICBuYW1lOiAnSURFLU1vY2hhJyxcbiAgICB9KVxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbnMuYWRkKHRoaXMuI2NvbnNvbGUpXG4gIH1cblxuICBjb25zdW1lTGludGVyKG1rbGludGVyKSB7XG4gICAgdGhpcy4jbGludGVyID0gbWtsaW50ZXIoe1xuICAgICAgbmFtZTogJ0lERS1Nb2NoYScsXG4gICAgfSlcbiAgICB0aGlzLiNzdWJzY3JpcHRpb25zLmFkZCh0aGlzLiNsaW50ZXIpXG4gIH1cblxuXG4gIC8vIENPTU1BTkRTXG5cbiAgZG9QcmludEFkZHJlc3NJbmZvKCkge1xuICAgIGNvbnN0IGFkZHJlc3MgPSB1dGlsLm1rYWRkcmVzc2luZm8oeyBhZGRyZXNzOiB0aGlzLiNyZW1vdGUuYWRkcmVzcygpIH0pXG4gICAgY29uc3QgdHlwZSA9IHRoaXMuI3NldHRpbmdzLmludGVyZmFjZVxuXG4gICAgdGhpcy4jY29uc29sZS5pbmZvKGBMaXN0ZW5pbmcgKCR7dHlwZX0pOiAke2FkZHJlc3N9YClcbiAgICByZXR1cm4gc2hvd0NvbnNvbGUoKVxuICB9XG5cbiAgZG9Db3B5UmVjZWl2ZXJBZGRyZXNzKCkge1xuICAgIGF0b20uY2xpcGJvYXJkLndyaXRlKHRoaXMuI3NldHRpbmdzLmFkZHJlc3MpXG4gICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZFN1Y2Nlc3MoJ0NvcGllZCEnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJyoqSURFLU1vY2hhKionLFxuICAgIH0pXG4gIH1cblxuICBkb0NvcHlNb2NoYUNvbW1hbmQoKSB7XG4gICAgY29uc3QgYWRkcmVzcyA9IHRoaXMuI3NldHRpbmdzLmFkZHJlc3NcbiAgICBjb25zdCBjb21tYW5kID0gdXRpbC5ta2NvbW1hbmRpbmZvKHsgYWRkcmVzcyB9KVxuXG4gICAgYXRvbS5jbGlwYm9hcmQud3JpdGUoY29tbWFuZClcbiAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkU3VjY2VzcygnQ29waWVkIScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnKipJREUtTW9jaGEqKicsXG4gICAgfSlcbiAgfVxuXG4gIGRvU2hvd0hlbHAoKSB7XG4gICAgY29uc3QgYWRkcmVzcyA9IHRoaXMuI3NldHRpbmdzLmFkZHJlc3NcbiAgICBjb25zdCBjb21tYW5kID0gdXRpbC5ta2NvbW1hbmRpbmZvKHsgYWRkcmVzcyB9KVxuICAgIGNvbnN0IGhlbHAgPSBIRUxQX1RFTVBMQVRFLnJlcGxhY2UoJyN7Q09NTUFORH0nLCBjb21tYW5kKVxuXG4gICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZEluZm8oJ0lERS1Nb2NoYTogSGVscCcsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBoZWxwLFxuICAgICAgaWNvbjogJ21vcnRhci1ib2FyZCcsXG4gICAgICBkaXNtaXNzYWJsZTogdHJ1ZSxcbiAgICAgIGJ1dHRvbnM6IFt7XG4gICAgICAgIC8vIEV4dHJhIHNwYWNlIHRvIG1ha2Ugcm9vbSBiZXR3ZWVuIHRoZSBjbGlwcHkgaWNvbiBhbmQgdGV4dCDwn46oXG4gICAgICAgIHRleHQ6ICcgQ29weSBNb2NoYSBjb21tYW5kIHRvIGNsaXBib2FyZCcsXG4gICAgICAgIGNsYXNzTmFtZTogJ2J0biBidG4taW5mbyBpY29uLWNsaXBweSBzZWxlY3RlZCcsXG4gICAgICAgIG9uRGlkQ2xpY2soKSB7XG4gICAgICAgICAgYXRvbS5jbGlwYm9hcmQud3JpdGUoY29tbWFuZClcbiAgICAgICAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkU3VjY2VzcygnQ29waWVkIScsIHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnKipJREUtTW9jaGEqKicsXG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgIH1dLFxuICAgIH0pXG4gIH1cblxuXG4gIC8vIFRFU1QgUkVTVUxUUyBOT1RJRklDQVRJT05TXG5cbiAgc2hvd1N1Y2Nlc3NOb3RpZmljYXRpb24oeyBzdGF0cyB9KSB7XG4gICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZFN1Y2Nlc3MoJ1Rlc3Qgc3VpdGUgcGFzc2VkLicsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnKipJREUtTW9jaGEqKicsXG4gICAgICBkZXRhaWw6IHV0aWwubWtzdGF0cyh7IHN0YXRzIH0pLFxuICAgIH0pXG4gIH1cblxuICBzaG93RmFpbHVyZU5vdGlmaWNhdGlvbih7IHN0YXRzIH0pIHtcbiAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkRXJyb3IoJ1Rlc3Qgc3VpdGUgZmFpbGVkLicsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnKipJREUtTW9jaGEqKicsXG4gICAgICBkZXRhaWw6IHV0aWwubWtzdGF0cyh7IHN0YXRzIH0pLFxuICAgICAgYnV0dG9uczogW3tcbiAgICAgICAgdGV4dDogJ09wZW4gQ29uc29sZScsXG4gICAgICAgIG9uRGlkQ2xpY2s6IHNob3dDb25zb2xlLFxuICAgICAgfV0sXG4gICAgfSlcbiAgfVxuXG5cbiAgLy8gSU1QTEVNRU5UQVRJT05cblxuICBkaWRDaGFuZ2VDb25maWcoY2hhbmdlKSB7XG4gICAgdGhpcy4jc2V0dGluZ3MgPSBjaGFuZ2UubmV3VmFsdWVcblxuICAgIC8vIEBUT0RPOiBDbG9zZSBzb2NrZXRzIGFuZCBjcmVhdGUgbmV3IG9uZXMgd2hlbiB0aGUgaW50ZXJmYWNlIGNoYW5nZXMg4pqg77iPXG4gICAgaWYgKGNoYW5nZS5uZXdWYWx1ZS5pbnRlcmZhY2UgIT09IGNoYW5nZS5vbGRWYWx1ZS5pbnRlcmZhY2UpIHtcbiAgICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRJbmZvKCdQbGVhc2UgcmVsb2FkIEF0b20gZm9yIHRoZSBpbnRlcmZhY2UgY2hhbmdlIHRvIHRha2UgZWZmZWN0LicsIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICcqKklERS1Nb2NoYSoqJyxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgZGlkUmVjZWl2ZUNvbm5lY3Rpb24oc291cmNlKSB7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IG5ldyBTZXNzaW9uKHtcbiAgICAgIHJvb3Q6IHRoaXMuI3Jvb3QsXG4gICAgICBsaW50ZXI6IHRoaXMuI2xpbnRlcixcbiAgICAgIGJ1c3k6IHRoaXMuI2J1c3ksXG4gICAgICBjb25zb2xlOiB0aGlzLiNjb25zb2xlLFxuICAgIH0pXG5cbiAgICBzb3VyY2Uub24oJ3N0YXJ0JywgcnVubmVyID0+IHNlc3Npb24uZGlkU3RhcnRSdW5uaW5nKHsgcnVubmVyIH0pKVxuICAgIHNvdXJjZS5vbignZW5kJywgcnVubmVyID0+IHNlc3Npb24uZGlkRmluaXNoUnVubmluZyh7IHJ1bm5lciB9KSlcbiAgICBzb3VyY2Uub24oJ3N1aXRlJywgc3VpdGUgPT4gc2Vzc2lvbi5kaWRTdGFydFN1aXRlKHsgc3VpdGUgfSkpXG4gICAgc291cmNlLm9uKCd0ZXN0IGVuZCcsICgpID0+IHNlc3Npb24uZGlkRmluaXNoVGVzdCgpKVxuICAgIHNvdXJjZS5vbigncGFzcycsIHRlc3QgPT4gc2Vzc2lvbi5kaWRQYXNzVGVzdCh7IHRlc3QgfSkpXG4gICAgc291cmNlLm9uKCdmYWlsJywgKHRlc3QsIGVycikgPT4gc2Vzc2lvbi5kaWRGYWlsVGVzdCh7IHRlc3QsIGVyciB9KSlcbiAgICBzb3VyY2Uub24oJ3BlbmRpbmcnLCB0ZXN0ID0+IHNlc3Npb24uZGlkU2tpcFRlc3QoeyB0ZXN0IH0pKVxuICAgIHNvdXJjZS5vbignY2xvc2UnLCAoKSA9PiBzZXNzaW9uLmRpZENsb3NlKCkpXG5cbiAgICBzZXNzaW9uLm9uY2UoJ2Nsb3NlJywgKHsgc3RhdHMgfSkgPT4ge1xuICAgICAgaWYgKHN0YXRzLmZhaWx1cmVzKSB7XG4gICAgICAgIGlmICh0aGlzLiNzZXR0aW5ncy5vcGVuQ29uc29sZU9uRmFpbHVyZSkge1xuICAgICAgICAgIHNob3dDb25zb2xlKClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLiNzZXR0aW5ncy5ub3RpZnlPbkZhaWx1cmUpIHtcbiAgICAgICAgICB0aGlzLnNob3dGYWlsdXJlTm90aWZpY2F0aW9uKHsgc3RhdHMgfSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIXN0YXRzLmZhaWx1cmVzICYmIHRoaXMuI3NldHRpbmdzLm5vdGlmeU9uU3VjY2Vzcykge1xuICAgICAgICB0aGlzLnNob3dTdWNjZXNzTm90aWZpY2F0aW9uKHsgc3RhdHMgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG5cbmZ1bmN0aW9uIHNob3dDb25zb2xlKCkge1xuICByZXR1cm4gYXRvbS53b3Jrc3BhY2Uub3BlbihDT05TT0xFX1ZJRVdfVVJJKVxufVxuXG5leHBvcnQge1xuICBJZGVNb2NoYSxcbn1cbiJdfQ==

@@ -261,2 +261,2 @@ "use strict";

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlc3Npb24ubWpzIl0sIm5hbWVzIjpbInN0YWNrdXRpbHMiLCJTdGFja1V0aWxzIiwiaW50ZXJuYWxzIiwibm9kZUludGVybmFscyIsIkNPTlNPTEVfVklFV19VUkkiLCJTZXNzaW9uIiwiRXZlbnRFbWl0dGVyIiwiY29uc3RydWN0b3IiLCJyb290IiwibGludGVyIiwiYnVzeSIsImNvbnNvbGUiLCJNYXAiLCJ0b3RhbCIsImNvbXBsZXRlZCIsInBhc3NlcyIsImZhaWx1cmVzIiwicGVuZGluZyIsImR1cmF0aW9uIiwiRGF0ZSIsIm5vdyIsImRpZFN0YXJ0UnVubmluZyIsInJ1bm5lciIsImNsZWFyTWVzc2FnZXMiLCJyZXBvcnRCdXN5IiwibWtwZXJjZW50Iiwib25EaWRDbGljayIsInNob3dDb25zb2xlIiwiZGlkRmluaXNoUnVubmluZyIsInN0YXRzIiwiaW5mbyIsImRpZENsb3NlIiwiZGlzcG9zZSIsImVtaXQiLCJkaWRTdGFydFN1aXRlIiwic3VpdGUiLCJsb2ciLCJ0aXRsZVBhdGgiLCJqb2luIiwiZGlkRmluaXNoVGVzdCIsInNldFRpdGxlIiwiZGlkUGFzc1Rlc3QiLCJ0ZXN0Iiwic3VjY2VzcyIsInRpdGxlIiwiZGlkRmFpbFRlc3QiLCJlcnIiLCJlcnJvciIsInN0YWNrIiwibWVzc2FnZSIsIm1rZGlhZ21lc3NhZ2UiLCJtZXNzYWdlcyIsImdldCIsImxvY2F0aW9uIiwiZmlsZSIsInB1c2giLCJzZXQiLCJzZXRNZXNzYWdlcyIsImRpZFNraXBUZXN0Iiwid2FybiIsImNhbGxzaXRlIiwibWtjYWxsc2l0ZSIsInBhdGgiLCJyZXNvbHZlIiwibGluZSIsImNvbHVtbiIsInBvc2l0aW9uIiwic2V2ZXJpdHkiLCJleGNlcnB0IiwiZGVzY3JpcHRpb24iLCJmdWxsVGl0bGUiLCJ0cmFjZXMiLCJjbGVhbiIsInRyaW0iLCJzcGxpdCIsIm9zIiwiRU9MIiwiZmlsdGVyIiwidHJhY2UiLCJpbmNsdWRlcyIsInNoaWZ0IiwicGFyc2VMaW5lIiwiTWF0aCIsImZsb29yIiwiYXRvbSIsIndvcmtzcGFjZSIsIm9wZW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFFQSxNQUFNQSxVQUFVLEdBQUcsSUFBSUMsbUJBQUosQ0FBZTtBQUNoQ0MsRUFBQUEsU0FBUyxFQUFFRCxvQkFBV0UsYUFBWDtBQURxQixDQUFmLENBQW5CO0FBSUEsTUFBTUMsZ0JBQWdCLEdBQUcsd0JBQXpCOztBQUVBLE1BQU1DLE9BQU4sU0FBc0JDLG9CQUF0QixDQUFtQztBQW9CakNDLEVBQUFBLFdBQVcsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUpBLE1BQUY7QUFBUUMsSUFBQUEsTUFBTSxFQUFOQSxRQUFSO0FBQWdCQyxJQUFBQSxJQUFJLEVBQUpBLE1BQWhCO0FBQXNCQyxJQUFBQSxPQUFPLEVBQVBBO0FBQXRCLEdBQUQsRUFBa0M7QUFDM0M7O0FBRDJDO0FBQUE7QUFBQSxhQW5CckM7QUFtQnFDOztBQUFBO0FBQUE7QUFBQSxhQWxCbkM7QUFrQm1DOztBQUFBO0FBQUE7QUFBQSxhQWpCakMsSUFBSUMsR0FBSjtBQWlCaUM7O0FBQUE7QUFBQTtBQUFBLGFBaEJyQztBQWdCcUM7O0FBQUE7QUFBQTtBQUFBLGFBZmxDO0FBZWtDOztBQUFBO0FBQUE7QUFBQSxhQWRsQztBQWNrQzs7QUFBQTtBQUFBO0FBQUEsYUFicEM7QUFDUEMsUUFBQUEsS0FBSyxFQUFFLENBREE7QUFFUEMsUUFBQUEsU0FBUyxFQUFFLENBRko7QUFHUEMsUUFBQUEsTUFBTSxFQUFFLENBSEQ7QUFJUEMsUUFBQUEsUUFBUSxFQUFFLENBSkg7QUFLUEMsUUFBQUEsT0FBTyxFQUFFLENBTEY7QUFNUEMsUUFBQUEsUUFBUSxFQUFFO0FBTkg7QUFhb0M7O0FBQUE7QUFBQTtBQUFBLGFBSmhDQyxJQUFJLENBQUNDLEdBQUw7QUFJZ0M7O0FBQUE7QUFBQTtBQUFBLGFBSC9CO0FBRytCOztBQUczQyx1Q0FBYVosTUFBYjs7QUFDQSx5Q0FBZUMsUUFBZjs7QUFDQSx1Q0FBYUMsTUFBYjs7QUFDQSwwQ0FBZ0JDLFNBQWhCO0FBQ0Q7O0FBRURVLEVBQUFBLGVBQWUsQ0FBQztBQUFFQyxJQUFBQTtBQUFGLEdBQUQsRUFBYTtBQUMxQix3Q0FBWVQsS0FBWixHQUFvQlMsTUFBTSxDQUFDVCxLQUEzQjs7QUFFQSx5Q0FBYVUsYUFBYjs7QUFDQSwwQ0FBZ0IsbUNBQVdDLFVBQVgsQ0FBdUIsd0JBQXVCQyxTQUFTLHVCQUFDLElBQUQsVUFBYyxHQUFyRSxFQUF5RTtBQUN2RkMsTUFBQUEsVUFBVSxFQUFFQztBQUQyRSxLQUF6RSxDQUFoQjtBQUdEOztBQUVEQyxFQUFBQSxnQkFBZ0IsQ0FBQztBQUFFTixJQUFBQTtBQUFGLEdBQUQsRUFBYTtBQUMzQixVQUFNTyxLQUFLLHlCQUFHLElBQUgsVUFBaUIsRUFDMUIseUJBQUcsSUFBSCxTQUQwQjtBQUUxQixTQUFHUCxNQUFNLENBQUNPO0FBRmdCLEtBQWpCLENBQVg7O0FBS0EsNkNBQW1CLElBQW5COztBQUNBLDBDQUFjQyxJQUFkLENBQW1CLG1CQUFRO0FBQUVELE1BQUFBO0FBQUYsS0FBUixDQUFuQjtBQUNEOztBQUVERSxFQUFBQSxRQUFRLEdBQUc7QUFHVCxRQUFJLHVCQUFDLElBQUQsY0FBSixFQUF1QjtBQUNyQiwwQ0FBWWIsUUFBWixHQUF1QkMsSUFBSSxDQUFDQyxHQUFMLDJCQUFhLElBQWIsYUFBdkI7QUFDRDs7QUFFRCwwQ0FBY1ksT0FBZDs7QUFDQSxTQUFLQyxJQUFMLENBQVUsT0FBVixFQUFtQjtBQUFFSixNQUFBQSxLQUFLLHdCQUFFLElBQUY7QUFBUCxLQUFuQjtBQUNEOztBQUVESyxFQUFBQSxhQUFhLENBQUM7QUFBRUMsSUFBQUE7QUFBRixHQUFELEVBQVk7QUFHdkIsUUFBSUEsS0FBSyxDQUFDM0IsSUFBVixFQUFnQjtBQUNkO0FBQ0Q7O0FBRUQsMENBQWM0QixHQUFkLENBQWtCRCxLQUFLLENBQUNFLFNBQU4sQ0FBZ0JDLElBQWhCLENBQXFCLE1BQXJCLENBQWxCO0FBQ0Q7O0FBRURDLEVBQUFBLGFBQWEsR0FBRztBQUNkLHdDQUFZekIsU0FBWjs7QUFDQSwwQ0FBYzBCLFFBQWQsQ0FBd0Isd0JBQXVCZixTQUFTLHVCQUFDLElBQUQsVUFBYyxHQUF0RTtBQUNEOztBQUVEZ0IsRUFBQUEsV0FBVyxDQUFDO0FBQUVDLElBQUFBO0FBQUYsR0FBRCxFQUFXO0FBQ3BCLHdDQUFZM0IsTUFBWjs7QUFDQSwwQ0FBYzRCLE9BQWQsQ0FBc0JELElBQUksQ0FBQ0UsS0FBM0I7QUFDRDs7QUFFREMsRUFBQUEsV0FBVyxDQUFDO0FBQUVILElBQUFBLElBQUY7QUFBUUksSUFBQUE7QUFBUixHQUFELEVBQWdCO0FBQ3pCLHdDQUFZOUIsUUFBWjs7QUFDQSwwQ0FBYytCLEtBQWQsQ0FBb0JMLElBQUksQ0FBQ0UsS0FBekI7O0FBQ0EsMENBQWNHLEtBQWQsQ0FBb0JELEdBQUcsQ0FBQ0UsS0FBeEI7O0FBRUEsVUFBTUMsT0FBTyxHQUFHQyxhQUFhLENBQUM7QUFBRTFDLE1BQUFBLElBQUksd0JBQUUsSUFBRixRQUFOO0FBQW9Ca0MsTUFBQUEsSUFBcEI7QUFBMEJJLE1BQUFBO0FBQTFCLEtBQUQsQ0FBN0I7O0FBR0EsUUFBSSxDQUFDRyxPQUFMLEVBQWM7QUFDWjtBQUNEOztBQUVELFVBQU1FLFFBQVEsR0FBRyx1Q0FBZUMsR0FBZixDQUFtQkgsT0FBTyxDQUFDSSxRQUFSLENBQWlCQyxJQUFwQyxLQUE2QyxFQUE5RDtBQUNBSCxJQUFBQSxRQUFRLENBQUNJLElBQVQsQ0FBY04sT0FBZDs7QUFDQSwyQ0FBZU8sR0FBZixDQUFtQlAsT0FBTyxDQUFDSSxRQUFSLENBQWlCQyxJQUFwQyxFQUEwQ0gsUUFBMUM7O0FBQ0EseUNBQWFNLFdBQWIsQ0FBeUJSLE9BQU8sQ0FBQ0ksUUFBUixDQUFpQkMsSUFBMUMsRUFBZ0RILFFBQWhEO0FBQ0Q7O0FBRURPLEVBQUFBLFdBQVcsQ0FBQztBQUFFaEIsSUFBQUE7QUFBRixHQUFELEVBQVc7QUFDcEIsd0NBQVl6QixPQUFaOztBQUNBLDBDQUFjMEMsSUFBZCxDQUFtQmpCLElBQUksQ0FBQ0UsS0FBeEI7QUFDRDs7QUFwR2dDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdUduQyxTQUFTTSxhQUFULENBQXVCO0FBQUUxQyxFQUFBQSxJQUFGO0FBQVFrQyxFQUFBQSxJQUFSO0FBQWNJLEVBQUFBO0FBQWQsQ0FBdkIsRUFBNEM7QUFDMUMsUUFBTWMsUUFBUSxHQUFHQyxVQUFVLENBQUNmLEdBQUQsQ0FBM0I7O0FBR0EsTUFBSSxDQUFDYyxRQUFMLEVBQWU7QUFDYixXQUFPLElBQVA7QUFDRDs7QUFHREEsRUFBQUEsUUFBUSxDQUFDTixJQUFULEdBQWdCUSxjQUFLQyxPQUFMLENBQWF2RCxJQUFiLEVBQW1Cb0QsUUFBUSxDQUFDTixJQUE1QixDQUFoQjtBQUNBTSxFQUFBQSxRQUFRLENBQUNJLElBQVQ7QUFFQSxRQUFNO0FBQUVWLElBQUFBLElBQUY7QUFBUVUsSUFBQUEsSUFBUjtBQUFjQyxJQUFBQTtBQUFkLE1BQXlCTCxRQUEvQjtBQUVBLFNBQU87QUFDTFAsSUFBQUEsUUFBUSxFQUFFO0FBQ1JDLE1BQUFBLElBRFE7QUFFUlksTUFBQUEsUUFBUSxFQUFFLENBQUMsQ0FBQ0YsSUFBRCxFQUFPQyxNQUFQLENBQUQsRUFBaUIsQ0FBQ0QsSUFBRCxFQUFPQyxNQUFQLENBQWpCO0FBRkYsS0FETDtBQUtMRSxJQUFBQSxRQUFRLEVBQUUsT0FMTDtBQU1MQyxJQUFBQSxPQUFPLEVBQUV0QixHQUFHLENBQUNHLE9BTlI7QUFPTG9CLElBQUFBLFdBQVcsRUFBRyxHQUFFM0IsSUFBSSxDQUFDNEIsU0FBVSxPQUFNeEIsR0FBRyxDQUFDRSxLQUFNO0FBUDFDLEdBQVA7QUFTRDs7QUFFRCxTQUFTYSxVQUFULENBQW9CZixHQUFwQixFQUF5QjtBQUN2QixRQUFNeUIsTUFBTSxHQUFHdkUsVUFBVSxDQUN0QndFLEtBRFksQ0FDTjFCLEdBQUcsQ0FBQ0UsS0FERSxFQUVaeUIsSUFGWSxHQUdaQyxLQUhZLENBR05DLFlBQUdDLEdBSEcsQ0FBZjtBQVVBLFFBQU1aLElBQUksR0FBR08sTUFBTSxDQUNoQk0sTUFEVSxDQUNIQyxLQUFLLElBQUksQ0FBQ0EsS0FBSyxDQUFDQyxRQUFOLENBQWUsZUFBZixDQURQLEVBRVZDLEtBRlUsTUFFQ1QsTUFBTSxDQUFDUyxLQUFQLEVBRmQ7QUFJQSxTQUFPaEYsVUFBVSxDQUFDaUYsU0FBWCxDQUFxQmpCLElBQXJCLENBQVA7QUFDRDs7QUFFRCxTQUFTdkMsU0FBVCxDQUFtQkksS0FBbkIsRUFBMEI7QUFDeEIsU0FBT3FELElBQUksQ0FBQ0MsS0FBTCxDQUFXdEQsS0FBSyxDQUFDZixTQUFOLEdBQWtCZSxLQUFLLENBQUNoQixLQUF4QixHQUFnQyxHQUEzQyxDQUFQO0FBQ0Q7O0FBRUQsU0FBU2MsV0FBVCxHQUF1QjtBQUNyQixTQUFPeUQsSUFBSSxDQUFDQyxTQUFMLENBQWVDLElBQWYsQ0FBb0JsRixnQkFBcEIsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9zIGZyb20gJ29zJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cydcbmltcG9ydCBTdGFja1V0aWxzIGZyb20gJ3N0YWNrLXV0aWxzJ1xuaW1wb3J0IHsgbWtzdGF0cyB9IGZyb20gJy4vdXRpbCdcblxuY29uc3Qgc3RhY2t1dGlscyA9IG5ldyBTdGFja1V0aWxzKHtcbiAgaW50ZXJuYWxzOiBTdGFja1V0aWxzLm5vZGVJbnRlcm5hbHMoKSxcbn0pXG5cbmNvbnN0IENPTlNPTEVfVklFV19VUkkgPSAnYXRvbTovL251Y2xpZGUvY29uc29sZSdcblxuY2xhc3MgU2Vzc2lvbiBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gICNyb290ID0gbnVsbFxuICAjbGludGVyID0gbnVsbFxuICAjbWVzc2FnZXMgPSBuZXcgTWFwKClcbiAgI2J1c3kgPSBudWxsXG4gICNzcGlubmVyID0gbnVsbFxuICAjY29uc29sZSA9IG51bGxcbiAgI3N0YXRzID0ge1xuICAgIHRvdGFsOiAwLFxuICAgIGNvbXBsZXRlZDogMCxcbiAgICBwYXNzZXM6IDAsXG4gICAgZmFpbHVyZXM6IDAsXG4gICAgcGVuZGluZzogMCxcbiAgICBkdXJhdGlvbjogMCxcbiAgfVxuXG4gICNzdGFydGVkQXQgPSBEYXRlLm5vdygpXG4gICNpc0ZpbmlzaGVkID0gZmFsc2VcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2hhZG93XG4gIGNvbnN0cnVjdG9yKHsgcm9vdCwgbGludGVyLCBidXN5LCBjb25zb2xlIH0pIHtcbiAgICBzdXBlcigpXG5cbiAgICB0aGlzLiNyb290ID0gcm9vdFxuICAgIHRoaXMuI2xpbnRlciA9IGxpbnRlclxuICAgIHRoaXMuI2J1c3kgPSBidXN5XG4gICAgdGhpcy4jY29uc29sZSA9IGNvbnNvbGVcbiAgfVxuXG4gIGRpZFN0YXJ0UnVubmluZyh7IHJ1bm5lciB9KSB7XG4gICAgdGhpcy4jc3RhdHMudG90YWwgPSBydW5uZXIudG90YWxcblxuICAgIHRoaXMuI2xpbnRlci5jbGVhck1lc3NhZ2VzKClcbiAgICB0aGlzLiNzcGlubmVyID0gdGhpcy4jYnVzeS5yZXBvcnRCdXN5KGBSdW5uaW5nIE1vY2hhIHRlc3RzOiAke21rcGVyY2VudCh0aGlzLiNzdGF0cyl9JWAsIHtcbiAgICAgIG9uRGlkQ2xpY2s6IHNob3dDb25zb2xlLFxuICAgIH0pXG4gIH1cblxuICBkaWRGaW5pc2hSdW5uaW5nKHsgcnVubmVyIH0pIHtcbiAgICBjb25zdCBzdGF0cyA9IHRoaXMuI3N0YXRzID0ge1xuICAgICAgLi4udGhpcy4jc3RhdHMsXG4gICAgICAuLi5ydW5uZXIuc3RhdHMsXG4gICAgfVxuXG4gICAgdGhpcy4jaXNGaW5pc2hlZCA9IHRydWVcbiAgICB0aGlzLiNjb25zb2xlLmluZm8obWtzdGF0cyh7IHN0YXRzIH0pKVxuICB9XG5cbiAgZGlkQ2xvc2UoKSB7XG4gICAgLy8gSWYgdGhlIHNlc3Npb24gY2xvc2VkIGFicnVwdGx5IChpZS4gZHVlIHRvIHVzZXIgdGVybWluYXRpbmcgTW9jaGEgYmVmb3JlIGNvbXBsZXRpb24pXG4gICAgLy8gY2FsY3VsYXRlIHNvbWUgc3RhdGlzdGljcyBvbiBvdXIgZW5kLlxuICAgIGlmICghdGhpcy4jaXNGaW5pc2hlZCkge1xuICAgICAgdGhpcy4jc3RhdHMuZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gdGhpcy4jc3RhcnRlZEF0XG4gICAgfVxuXG4gICAgdGhpcy4jc3Bpbm5lci5kaXNwb3NlKClcbiAgICB0aGlzLmVtaXQoJ2Nsb3NlJywgeyBzdGF0czogdGhpcy4jc3RhdHMgfSlcbiAgfVxuXG4gIGRpZFN0YXJ0U3VpdGUoeyBzdWl0ZSB9KSB7XG4gICAgLy8gQXZvaWQgcHJpbnRpbmcgYW4gZW1wdHkgbGluZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRlc3QgcnVuLCB0aGUgcm9vdCBzdWl0ZSBkb2VzIG5vdCBoYXZlIGFcbiAgICAvLyB0aXRsZSDimJ3vuI9cbiAgICBpZiAoc3VpdGUucm9vdCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy4jY29uc29sZS5sb2coc3VpdGUudGl0bGVQYXRoLmpvaW4oJyDilrbvuI4gJykpXG4gIH1cblxuICBkaWRGaW5pc2hUZXN0KCkge1xuICAgIHRoaXMuI3N0YXRzLmNvbXBsZXRlZCsrXG4gICAgdGhpcy4jc3Bpbm5lci5zZXRUaXRsZShgUnVubmluZyBNb2NoYSB0ZXN0czogJHtta3BlcmNlbnQodGhpcy4jc3RhdHMpfSVgKVxuICB9XG5cbiAgZGlkUGFzc1Rlc3QoeyB0ZXN0IH0pIHtcbiAgICB0aGlzLiNzdGF0cy5wYXNzZXMrK1xuICAgIHRoaXMuI2NvbnNvbGUuc3VjY2Vzcyh0ZXN0LnRpdGxlKVxuICB9XG5cbiAgZGlkRmFpbFRlc3QoeyB0ZXN0LCBlcnIgfSkge1xuICAgIHRoaXMuI3N0YXRzLmZhaWx1cmVzKytcbiAgICB0aGlzLiNjb25zb2xlLmVycm9yKHRlc3QudGl0bGUpXG4gICAgdGhpcy4jY29uc29sZS5lcnJvcihlcnIuc3RhY2spXG5cbiAgICBjb25zdCBtZXNzYWdlID0gbWtkaWFnbWVzc2FnZSh7IHJvb3Q6IHRoaXMuI3Jvb3QsIHRlc3QsIGVyciB9KVxuXG4gICAgLy8gV2UgY291bGQgbm90IGdlbmVyYXRlIGEgbWVhbmluZ2Z1bCBkaWFnbm9zdGljIG1lc3NhZ2UgZm9yIHRoaXMgZXJyb3Ig8J+YolxuICAgIGlmICghbWVzc2FnZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgbWVzc2FnZXMgPSB0aGlzLiNtZXNzYWdlcy5nZXQobWVzc2FnZS5sb2NhdGlvbi5maWxlKSB8fCBbXVxuICAgIG1lc3NhZ2VzLnB1c2gobWVzc2FnZSlcbiAgICB0aGlzLiNtZXNzYWdlcy5zZXQobWVzc2FnZS5sb2NhdGlvbi5maWxlLCBtZXNzYWdlcylcbiAgICB0aGlzLiNsaW50ZXIuc2V0TWVzc2FnZXMobWVzc2FnZS5sb2NhdGlvbi5maWxlLCBtZXNzYWdlcylcbiAgfVxuXG4gIGRpZFNraXBUZXN0KHsgdGVzdCB9KSB7XG4gICAgdGhpcy4jc3RhdHMucGVuZGluZysrXG4gICAgdGhpcy4jY29uc29sZS53YXJuKHRlc3QudGl0bGUpXG4gIH1cbn1cblxuZnVuY3Rpb24gbWtkaWFnbWVzc2FnZSh7IHJvb3QsIHRlc3QsIGVyciB9KSB7XG4gIGNvbnN0IGNhbGxzaXRlID0gbWtjYWxsc2l0ZShlcnIpXG5cbiAgLy8gSWYgd2UgaGF2ZSBubyB2aWFibGUgZXJyb3IgbG9jYXRpb24gZG8gbm90IHNob3cgdGhlIGVycm9yIGluIGRpYWdub3N0aWNzIPCfpLfigI3imYLvuI9cbiAgaWYgKCFjYWxsc2l0ZSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvLyBOb3JtYWxpc2UgY2FsbHNpdGUgaW5mbyB3aXRoIGhvdyBMaW50ZXIgZXhwZWN0cyBtZXNzYWdlIGxvY2F0aW9ucyB0byBiZSBkZWZpbmVkXG4gIGNhbGxzaXRlLmZpbGUgPSBwYXRoLnJlc29sdmUocm9vdCwgY2FsbHNpdGUuZmlsZSlcbiAgY2FsbHNpdGUubGluZS0tXG5cbiAgY29uc3QgeyBmaWxlLCBsaW5lLCBjb2x1bW4gfSA9IGNhbGxzaXRlXG5cbiAgcmV0dXJuIHtcbiAgICBsb2NhdGlvbjoge1xuICAgICAgZmlsZSxcbiAgICAgIHBvc2l0aW9uOiBbW2xpbmUsIGNvbHVtbl0sIFtsaW5lLCBjb2x1bW5dXSxcbiAgICB9LFxuICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgIGV4Y2VycHQ6IGVyci5tZXNzYWdlLFxuICAgIGRlc2NyaXB0aW9uOiBgJHt0ZXN0LmZ1bGxUaXRsZX1cXG5cXG4ke2Vyci5zdGFja31gLFxuICB9XG59XG5cbmZ1bmN0aW9uIG1rY2FsbHNpdGUoZXJyKSB7XG4gIGNvbnN0IHRyYWNlcyA9IHN0YWNrdXRpbHNcbiAgICAuY2xlYW4oZXJyLnN0YWNrKVxuICAgIC50cmltKClcbiAgICAuc3BsaXQob3MuRU9MKVxuXG4gIC8vIEF0dGVtcHQgdG8gZmlsdGVyIG91dCB0cmFjZXMgcG9pbnRpbmcgdG8gc3R1ZmYgaW4gbm9kZV9tb2R1bGVzXG4gIC8vIEdlbmVyYWxseSB0aGUgYWN0dWFsIGNhdXNlIG9mIGFuIGVycm9yIGlzIGVpdGhlciB0aGUgdG9wLW1vc3QgdHJhY2Ugb3Igc29tZSB0cmFjZSBhIGZldyBzdGVwc1xuICAvLyBiZWxvdyBzb21ldGhpbmcgaW5zaWRlIG5vZGVfbW9kdWxlcyBkdWUgdG8gdXNlcmxhbmQgY29kZSBjYWxsaW5nIGludG8gc29tZSBkZXBlbmRlbmN5LiBJZiB3ZSBkb1xuICAvLyBub3QgZmluZCBhbnl0aGluZyByZWxldmFudCBhbmQgZXZlcnkgdHJhY2UgcG9pbnRzIHRvIHNvbWV0aGluZyBpbnNpZGUgbm9kZV9tb2R1bGVzLCB3ZWxsLCBqdXN0XG4gIC8vIHVzZSB0aGUgdG9wLW1vc3QgdHJhY2UuXG4gIGNvbnN0IGxpbmUgPSB0cmFjZXNcbiAgICAuZmlsdGVyKHRyYWNlID0+ICF0cmFjZS5pbmNsdWRlcygnbm9kZV9tb2R1bGVzLycpKVxuICAgIC5zaGlmdCgpIHx8IHRyYWNlcy5zaGlmdCgpXG5cbiAgcmV0dXJuIHN0YWNrdXRpbHMucGFyc2VMaW5lKGxpbmUpXG59XG5cbmZ1bmN0aW9uIG1rcGVyY2VudChzdGF0cykge1xuICByZXR1cm4gTWF0aC5mbG9vcihzdGF0cy5jb21wbGV0ZWQgLyBzdGF0cy50b3RhbCAqIDEwMClcbn1cblxuZnVuY3Rpb24gc2hvd0NvbnNvbGUoKSB7XG4gIHJldHVybiBhdG9tLndvcmtzcGFjZS5vcGVuKENPTlNPTEVfVklFV19VUkkpXG59XG5cbmV4cG9ydCB7XG4gIFNlc3Npb24sXG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlc3Npb24ubWpzIl0sIm5hbWVzIjpbInN0YWNrdXRpbHMiLCJTdGFja1V0aWxzIiwiaW50ZXJuYWxzIiwibm9kZUludGVybmFscyIsIkNPTlNPTEVfVklFV19VUkkiLCJTZXNzaW9uIiwiRXZlbnRFbWl0dGVyIiwiY29uc3RydWN0b3IiLCJyb290IiwibGludGVyIiwiYnVzeSIsImNvbnNvbGUiLCJNYXAiLCJ0b3RhbCIsImNvbXBsZXRlZCIsInBhc3NlcyIsImZhaWx1cmVzIiwicGVuZGluZyIsImR1cmF0aW9uIiwiRGF0ZSIsIm5vdyIsImRpZFN0YXJ0UnVubmluZyIsInJ1bm5lciIsImNsZWFyTWVzc2FnZXMiLCJyZXBvcnRCdXN5IiwibWtwZXJjZW50Iiwib25EaWRDbGljayIsInNob3dDb25zb2xlIiwiZGlkRmluaXNoUnVubmluZyIsInN0YXRzIiwiaW5mbyIsImRpZENsb3NlIiwiZGlzcG9zZSIsImVtaXQiLCJkaWRTdGFydFN1aXRlIiwic3VpdGUiLCJsb2ciLCJ0aXRsZVBhdGgiLCJqb2luIiwiZGlkRmluaXNoVGVzdCIsInNldFRpdGxlIiwiZGlkUGFzc1Rlc3QiLCJ0ZXN0Iiwic3VjY2VzcyIsInRpdGxlIiwiZGlkRmFpbFRlc3QiLCJlcnIiLCJlcnJvciIsInN0YWNrIiwibWVzc2FnZSIsIm1rZGlhZ21lc3NhZ2UiLCJtZXNzYWdlcyIsImdldCIsImxvY2F0aW9uIiwiZmlsZSIsInB1c2giLCJzZXQiLCJzZXRNZXNzYWdlcyIsImRpZFNraXBUZXN0Iiwid2FybiIsImNhbGxzaXRlIiwibWtjYWxsc2l0ZSIsInBhdGgiLCJyZXNvbHZlIiwibGluZSIsImNvbHVtbiIsInBvc2l0aW9uIiwic2V2ZXJpdHkiLCJleGNlcnB0IiwiZGVzY3JpcHRpb24iLCJmdWxsVGl0bGUiLCJ0cmFjZXMiLCJjbGVhbiIsInRyaW0iLCJzcGxpdCIsIm9zIiwiRU9MIiwiZmlsdGVyIiwidHJhY2UiLCJpbmNsdWRlcyIsInNoaWZ0IiwicGFyc2VMaW5lIiwiTWF0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VSxDQUNIQyxLQUFLLElBQUksQ0FBQ0EsS0FBSyxDQUFDQyxRQUFOLENBQWUsZUFBZixDQURQLEVBRVZDLEtBRlUsTUFFQ1QsTUFBTSxDQUFDUyxLQUFQLEVBRmQ7QUFJQSxTQUFPaEYsVUFBVSxDQUFDaUYsU0FBWCxDQUFxQmpCLElBQXJCLENBQVA7QUFDRDs7QUFFRCxTQUFTdkMsU0FBVCxDQUFtQkksS0FBbkIsRUFBMEI7QUFDeEIsU0FBT3FELElBQUksQ0FBQ0MsS0FBTCxDQUFXdEQsS0FBSyxDQUFDZixTQUFOLEdBQWtCZSxLQUFLLENBQUNoQixLQUF4QixHQUFnQyxHQUEzQyxDQUFQO0FBQ0Q7O0FBRUQsU0FBU2MsV0FBVCxHQUF1QjtBQUNyQixTQUFPeUQsSUFBSSxDQUFDQyxTQUFMLENBQWVDLElBQWYsQ0FBb0JsRixnQkFBcEIsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9zIGZyb20gJ29zJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cydcbmltcG9ydCBTdGFja1V0aWxzIGZyb20gJ3N0YWNrLXV0aWxzJ1xuaW1wb3J0IHsgbWtzdGF0cyB9IGZyb20gJy4vdXRpbCdcblxuY29uc3Qgc3RhY2t1dGlscyA9IG5ldyBTdGFja1V0aWxzKHtcbiAgaW50ZXJuYWxzOiBTdGFja1V0aWxzLm5vZGVJbnRlcm5hbHMoKSxcbn0pXG5cbmNvbnN0IENPTlNPTEVfVklFV19VUkkgPSAnYXRvbTovL251Y2xpZGUvY29uc29sZSdcblxuY2xhc3MgU2Vzc2lvbiBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gICNyb290ID0gbnVsbFxuICAjbGludGVyID0gbnVsbFxuICAjbWVzc2FnZXMgPSBuZXcgTWFwKClcbiAgI2J1c3kgPSBudWxsXG4gICNzcGlubmVyID0gbnVsbFxuICAjY29uc29sZSA9IG51bGxcbiAgI3N0YXRzID0ge1xuICAgIHRvdGFsOiAwLFxuICAgIGNvbXBsZXRlZDogMCxcbiAgICBwYXNzZXM6IDAsXG4gICAgZmFpbHVyZXM6IDAsXG4gICAgcGVuZGluZzogMCxcbiAgICBkdXJhdGlvbjogMCxcbiAgfVxuXG4gICNzdGFydGVkQXQgPSBEYXRlLm5vdygpXG4gICNpc0ZpbmlzaGVkID0gZmFsc2VcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2hhZG93XG4gIGNvbnN0cnVjdG9yKHsgcm9vdCwgbGludGVyLCBidXN5LCBjb25zb2xlIH0pIHtcbiAgICBzdXBlcigpXG5cbiAgICB0aGlzLiNyb290ID0gcm9vdFxuICAgIHRoaXMuI2xpbnRlciA9IGxpbnRlclxuICAgIHRoaXMuI2J1c3kgPSBidXN5XG4gICAgdGhpcy4jY29uc29sZSA9IGNvbnNvbGVcbiAgfVxuXG4gIGRpZFN0YXJ0UnVubmluZyh7IHJ1bm5lciB9KSB7XG4gICAgdGhpcy4jc3RhdHMudG90YWwgPSBydW5uZXIudG90YWxcblxuICAgIHRoaXMuI2xpbnRlci5jbGVhck1lc3NhZ2VzKClcbiAgICB0aGlzLiNzcGlubmVyID0gdGhpcy4jYnVzeS5yZXBvcnRCdXN5KGBSdW5uaW5nIE1vY2hhIHRlc3RzOiAke21rcGVyY2VudCh0aGlzLiNzdGF0cyl9JWAsIHtcbiAgICAgIG9uRGlkQ2xpY2s6IHNob3dDb25zb2xlLFxuICAgIH0pXG4gIH1cblxuICBkaWRGaW5pc2hSdW5uaW5nKHsgcnVubmVyIH0pIHtcbiAgICBjb25zdCBzdGF0cyA9IHRoaXMuI3N0YXRzID0ge1xuICAgICAgLi4udGhpcy4jc3RhdHMsXG4gICAgICAuLi5ydW5uZXIuc3RhdHMsXG4gICAgfVxuXG4gICAgdGhpcy4jaXNGaW5pc2hlZCA9IHRydWVcbiAgICB0aGlzLiNjb25zb2xlLmluZm8obWtzdGF0cyh7IHN0YXRzIH0pKVxuICB9XG5cbiAgZGlkQ2xvc2UoKSB7XG4gICAgLy8gSWYgdGhlIHNlc3Npb24gY2xvc2VkIGFicnVwdGx5IChpZS4gZHVlIHRvIHVzZXIgdGVybWluYXRpbmcgTW9jaGEgYmVmb3JlIGNvbXBsZXRpb24pXG4gICAgLy8gY2FsY3VsYXRlIHNvbWUgc3RhdGlzdGljcyBvbiBvdXIgZW5kLlxuICAgIGlmICghdGhpcy4jaXNGaW5pc2hlZCkge1xuICAgICAgdGhpcy4jc3RhdHMuZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gdGhpcy4jc3RhcnRlZEF0XG4gICAgfVxuXG4gICAgdGhpcy4jc3Bpbm5lci5kaXNwb3NlKClcbiAgICB0aGlzLmVtaXQoJ2Nsb3NlJywgeyBzdGF0czogdGhpcy4jc3RhdHMgfSlcbiAgfVxuXG4gIGRpZFN0YXJ0U3VpdGUoeyBzdWl0ZSB9KSB7XG4gICAgLy8gQXZvaWQgcHJpbnRpbmcgYW4gZW1wdHkgbGluZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRlc3QgcnVuLCB0aGUgcm9vdCBzdWl0ZSBkb2VzIG5vdCBoYXZlIGFcbiAgICAvLyB0aXRsZSDimJ3vuI9cbiAgICBpZiAoc3VpdGUucm9vdCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy4jY29uc29sZS5sb2coc3VpdGUudGl0bGVQYXRoLmpvaW4oJyDilrbvuI4gJykpXG4gIH1cblxuICBkaWRGaW5pc2hUZXN0KCkge1xuICAgIHRoaXMuI3N0YXRzLmNvbXBsZXRlZCsrXG4gICAgdGhpcy4jc3Bpbm5lci5zZXRUaXRsZShgUnVubmluZyBNb2NoYSB0ZXN0czogJHtta3BlcmNlbnQodGhpcy4jc3RhdHMpfSVgKVxuICB9XG5cbiAgZGlkUGFzc1Rlc3QoeyB0ZXN0IH0pIHtcbiAgICB0aGlzLiNzdGF0cy5wYXNzZXMrK1xuICAgIHRoaXMuI2NvbnNvbGUuc3VjY2Vzcyh0ZXN0LnRpdGxlKVxuICB9XG5cbiAgZGlkRmFpbFRlc3QoeyB0ZXN0LCBlcnIgfSkge1xuICAgIHRoaXMuI3N0YXRzLmZhaWx1cmVzKytcbiAgICB0aGlzLiNjb25zb2xlLmVycm9yKHRlc3QudGl0bGUpXG4gICAgdGhpcy4jY29uc29sZS5lcnJvcihlcnIuc3RhY2spXG5cbiAgICBjb25zdCBtZXNzYWdlID0gbWtkaWFnbWVzc2FnZSh7IHJvb3Q6IHRoaXMuI3Jvb3QsIHRlc3QsIGVyciB9KVxuXG4gICAgLy8gV2UgY291bGQgbm90IGdlbmVyYXRlIGEgbWVhbmluZ2Z1bCBkaWFnbm9zdGljIG1lc3NhZ2UgZm9yIHRoaXMgZXJyb3Ig8J+YolxuICAgIGlmICghbWVzc2FnZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgbWVzc2FnZXMgPSB0aGlzLiNtZXNzYWdlcy5nZXQobWVzc2FnZS5sb2NhdGlvbi5maWxlKSB8fCBbXVxuICAgIG1lc3NhZ2VzLnB1c2gobWVzc2FnZSlcbiAgICB0aGlzLiNtZXNzYWdlcy5zZXQobWVzc2FnZS5sb2NhdGlvbi5maWxlLCBtZXNzYWdlcylcbiAgICB0aGlzLiNsaW50ZXIuc2V0TWVzc2FnZXMobWVzc2FnZS5sb2NhdGlvbi5maWxlLCBtZXNzYWdlcylcbiAgfVxuXG4gIGRpZFNraXBUZXN0KHsgdGVzdCB9KSB7XG4gICAgdGhpcy4jc3RhdHMucGVuZGluZysrXG4gICAgdGhpcy4jY29uc29sZS53YXJuKHRlc3QudGl0bGUpXG4gIH1cbn1cblxuZnVuY3Rpb24gbWtkaWFnbWVzc2FnZSh7IHJvb3QsIHRlc3QsIGVyciB9KSB7XG4gIGNvbnN0IGNhbGxzaXRlID0gbWtjYWxsc2l0ZShlcnIpXG5cbiAgLy8gSWYgd2UgaGF2ZSBubyB2aWFibGUgZXJyb3IgbG9jYXRpb24gZG8gbm90IHNob3cgdGhlIGVycm9yIGluIGRpYWdub3N0aWNzIPCfpLfigI3imYLvuI9cbiAgaWYgKCFjYWxsc2l0ZSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvLyBOb3JtYWxpc2UgY2FsbHNpdGUgaW5mbyB3aXRoIGhvdyBMaW50ZXIgZXhwZWN0cyBtZXNzYWdlIGxvY2F0aW9ucyB0byBiZSBkZWZpbmVkXG4gIGNhbGxzaXRlLmZpbGUgPSBwYXRoLnJlc29sdmUocm9vdCwgY2FsbHNpdGUuZmlsZSlcbiAgY2FsbHNpdGUubGluZS0tXG5cbiAgY29uc3QgeyBmaWxlLCBsaW5lLCBjb2x1bW4gfSA9IGNhbGxzaXRlXG5cbiAgcmV0dXJuIHtcbiAgICBsb2NhdGlvbjoge1xuICAgICAgZmlsZSxcbiAgICAgIHBvc2l0aW9uOiBbW2xpbmUsIGNvbHVtbl0sIFtsaW5lLCBjb2x1bW5dXSxcbiAgICB9LFxuICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgIGV4Y2VycHQ6IGVyci5tZXNzYWdlLFxuICAgIGRlc2NyaXB0aW9uOiBgJHt0ZXN0LmZ1bGxUaXRsZX1cXG5cXG4ke2Vyci5zdGFja31gLFxuICB9XG59XG5cbmZ1bmN0aW9uIG1rY2FsbHNpdGUoZXJyKSB7XG4gIGNvbnN0IHRyYWNlcyA9IHN0YWNrdXRpbHNcbiAgICAuY2xlYW4oZXJyLnN0YWNrKVxuICAgIC50cmltKClcbiAgICAuc3BsaXQob3MuRU9MKVxuXG4gIC8vIEF0dGVtcHQgdG8gZmlsdGVyIG91dCB0cmFjZXMgcG9pbnRpbmcgdG8gc3R1ZmYgaW4gbm9kZV9tb2R1bGVzXG4gIC8vIEdlbmVyYWxseSB0aGUgYWN0dWFsIGNhdXNlIG9mIGFuIGVycm9yIGlzIGVpdGhlciB0aGUgdG9wLW1vc3QgdHJhY2Ugb3Igc29tZSB0cmFjZSBhIGZldyBzdGVwc1xuICAvLyBiZWxvdyBzb21ldGhpbmcgaW5zaWRlIG5vZGVfbW9kdWxlcyBkdWUgdG8gdXNlcmxhbmQgY29kZSBjYWxsaW5nIGludG8gc29tZSBkZXBlbmRlbmN5LiBJZiB3ZSBkb1xuICAvLyBub3QgZmluZCBhbnl0aGluZyByZWxldmFudCBhbmQgZXZlcnkgdHJhY2UgcG9pbnRzIHRvIHNvbWV0aGluZyBpbnNpZGUgbm9kZV9tb2R1bGVzLCB3ZWxsLCBqdXN0XG4gIC8vIHVzZSB0aGUgdG9wLW1vc3QgdHJhY2UuXG4gIGNvbnN0IGxpbmUgPSB0cmFjZXNcbiAgICAuZmlsdGVyKHRyYWNlID0+ICF0cmFjZS5pbmNsdWRlcygnbm9kZV9tb2R1bGVzLycpKVxuICAgIC5zaGlmdCgpIHx8IHRyYWNlcy5zaGlmdCgpXG5cbiAgcmV0dXJuIHN0YWNrdXRpbHMucGFyc2VMaW5lKGxpbmUpXG59XG5cbmZ1bmN0aW9uIG1rcGVyY2VudChzdGF0cykge1xuICByZXR1cm4gTWF0aC5mbG9vcihzdGF0cy5jb21wbGV0ZWQgLyBzdGF0cy50b3RhbCAqIDEwMClcbn1cblxuZnVuY3Rpb24gc2hvd0NvbnNvbGUoKSB7XG4gIHJldHVybiBhdG9tLndvcmtzcGFjZS5vcGVuKENPTlNPTEVfVklFV19VUkkpXG59XG5cbmV4cG9ydCB7XG4gIFNlc3Npb24sXG59XG4iXX0=

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