Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

eslint-plugin-import

Package Overview
Dependencies
Maintainers
1
Versions
131
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eslint-plugin-import - npm Package Compare versions

Comparing version 1.11.1 to 1.12.0

10

CHANGELOG.md

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

## [1.12.0] - 2016-07-26
### Added
- [`import/external-module-folders` setting]: a possibility to configure folders for "external" modules ([#444], thanks [@zloirock])
## [1.11.1] - 2016-07-20

@@ -247,2 +251,3 @@ ### Fixed

[`import/core-modules` setting]: ./README.md#importcore-modules
[`import/external-module-folders` setting]: ./README.md#importexternal-module-folders

@@ -269,2 +274,3 @@ [`no-unresolved`]: ./docs/rules/no-unresolved.md

[#444]: https://github.com/benmosher/eslint-plugin-import/pull/444
[#428]: https://github.com/benmosher/eslint-plugin-import/pull/428

@@ -334,3 +340,4 @@ [#395]: https://github.com/benmosher/eslint-plugin-import/pull/395

[Unreleased]: https://github.com/benmosher/eslint-plugin-import/compare/v1.11.1...HEAD
[Unreleased]: https://github.com/benmosher/eslint-plugin-import/compare/v1.12.0...HEAD
[1.12.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.11.1...v1.12.0
[1.11.1]: https://github.com/benmosher/eslint-plugin-import/compare/v1.11.0...v1.11.1

@@ -389,1 +396,2 @@ [1.11.0]: https://github.com/benmosher/eslint-plugin-import/compare/v1.10.3...v1.11.0

[@rhettlivingston]: https://github.com/rhettlivingston
[@zloirock]: https://github.com/zloirock

2

lib/core/getExports.js

@@ -570,2 +570,2 @@ 'use strict';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvZ2V0RXhwb3J0cy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztRQXFjZ0IsdUIsR0FBQSx1Qjs7QUFyY2hCOzs7O0FBRUE7O0lBQVksRTs7QUFFWjs7QUFDQTs7SUFBWSxROztBQUVaOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOzs7Ozs7OztBQUVBLElBQU0sY0FBYyxzQkFBcEI7Ozs7Ozs7O0FBUUEsSUFBTSxhQUFhLElBQUksTUFBSixDQUFXLGdDQUFYLENBQW5COztJQUVxQixTO0FBQ25CLHFCQUFZLElBQVosRUFBa0I7QUFBQTs7QUFDaEIsU0FBSyxJQUFMLEdBQVksSUFBWjtBQUNBLFNBQUssU0FBTCxHQUFpQixzQkFBakI7O0FBRUEsU0FBSyxTQUFMLEdBQWlCLHNCQUFqQjtBQUNBLFNBQUssWUFBTCxHQUFvQixzQkFBcEI7QUFDQSxTQUFLLE1BQUwsR0FBYyxFQUFkO0FBQ0Q7O1lBVU0sRyxnQkFBSSxNLEVBQVEsTyxFQUFTOztBQUUxQixRQUFJLE9BQU8sdUJBQVEsTUFBUixFQUFnQixPQUFoQixDQUFYO0FBQ0EsUUFBSSxRQUFRLElBQVosRUFBa0IsT0FBTyxJQUFQOztBQUVsQixXQUFPLFVBQVUsR0FBVixDQUFjLElBQWQsRUFBb0IsT0FBcEIsQ0FBUDtBQUNELEc7O1lBRU0sRyxpQkFBSSxJLEVBQU0sTyxFQUFTO0FBQ3hCLFFBQUksa0JBQUo7O0FBRUEsUUFBTSxXQUFXLHNCQUFXLHdCQUFXLFFBQVgsQ0FBWCxFQUFpQztBQUNoRCxnQkFBVSxRQUFRLFFBRDhCO0FBRWhELGtCQUFZLFFBQVEsVUFGNEI7QUFHaEQscUJBQWUsUUFBUSxhQUh5QjtBQUloRDtBQUpnRCxLQUFqQyxFQUtkLE1BTGMsQ0FLUCxLQUxPLENBQWpCOztBQU9BLGdCQUFZLFlBQVksR0FBWixDQUFnQixRQUFoQixDQUFaOzs7QUFHQSxRQUFJLGNBQWMsSUFBbEIsRUFBd0IsT0FBTyxJQUFQOztBQUV4QixRQUFNLFFBQVEsR0FBRyxRQUFILENBQVksSUFBWixDQUFkO0FBQ0EsUUFBSSxhQUFhLElBQWpCLEVBQXVCOztBQUVyQixVQUFJLFVBQVUsS0FBVixHQUFrQixNQUFNLEtBQXhCLEtBQWtDLENBQXRDLEVBQXlDO0FBQ3ZDLGVBQU8sU0FBUDtBQUNEOztBQUVGOztBQUVELFFBQU0sVUFBVSxHQUFHLFlBQUgsQ0FBZ0IsSUFBaEIsRUFBc0IsRUFBRSxVQUFVLE1BQVosRUFBdEIsQ0FBaEI7OztBQUdBLFFBQUksc0JBQVUsSUFBVixFQUFnQixPQUFoQixLQUE0QixDQUFDLFdBQVcsSUFBWCxDQUFnQixPQUFoQixDQUFqQyxFQUEyRDtBQUN6RCxrQkFBWSxHQUFaLENBQWdCLFFBQWhCLEVBQTBCLElBQTFCO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7O0FBRUQsZ0JBQVksVUFBVSxLQUFWLENBQWdCLElBQWhCLEVBQXNCLE9BQXRCLEVBQStCLE9BQS9CLENBQVo7QUFDQSxjQUFVLEtBQVYsR0FBa0IsTUFBTSxLQUF4Qjs7QUFFQSxnQkFBWSxHQUFaLENBQWdCLFFBQWhCLEVBQTBCLFNBQTFCO0FBQ0EsV0FBTyxTQUFQO0FBQ0QsRzs7WUFFTSxLLGtCQUFNLEksRUFBTSxPLEVBQVMsTyxFQUFTO0FBQ25DLFFBQUksSUFBSSxJQUFJLFNBQUosQ0FBYyxJQUFkLENBQVI7O0FBRUEsUUFBSTtBQUNGLFVBQUksTUFBTSxxQkFBTSxPQUFOLEVBQWUsT0FBZixDQUFWO0FBQ0QsS0FGRCxDQUVFLE9BQU8sR0FBUCxFQUFZO0FBQ1osUUFBRSxNQUFGLENBQVMsSUFBVCxDQUFjLEdBQWQ7QUFDQSxhQUFPLENBQVAsQztBQUNEOztBQUVELFFBQU0sV0FBWSxRQUFRLFFBQVIsSUFBb0IsUUFBUSxRQUFSLENBQWlCLGlCQUFqQixDQUFyQixJQUE2RCxDQUFDLE9BQUQsQ0FBOUU7QUFDQSxRQUFNLGtCQUFrQixFQUF4QjtBQUNBLGFBQVMsT0FBVCxDQUFpQixpQkFBUztBQUN4QixzQkFBZ0IsS0FBaEIsSUFBeUIseUJBQXlCLEtBQXpCLENBQXpCO0FBQ0QsS0FGRDs7O0FBS0EsUUFBSSxRQUFKLENBQWEsSUFBYixDQUFrQixhQUFLO0FBQ3JCLFVBQUksRUFBRSxJQUFGLEtBQVcsT0FBZixFQUF3QixPQUFPLEtBQVA7QUFDeEIsVUFBSTtBQUNGLFlBQU0sTUFBTSxTQUFTLEtBQVQsQ0FBZSxFQUFFLEtBQWpCLEVBQXdCLEVBQUUsUUFBUSxJQUFWLEVBQXhCLENBQVo7QUFDQSxZQUFJLElBQUksSUFBSixDQUFTLElBQVQsQ0FBYztBQUFBLGlCQUFLLEVBQUUsS0FBRixLQUFZLFFBQWpCO0FBQUEsU0FBZCxDQUFKLEVBQThDO0FBQzVDLFlBQUUsR0FBRixHQUFRLEdBQVI7QUFDQSxpQkFBTyxJQUFQO0FBQ0Q7QUFDRixPQU5ELENBTUUsT0FBTyxHQUFQLEVBQVksQyxZQUFnQjtBQUM5QixhQUFPLEtBQVA7QUFDRCxLQVZEOztBQVlBLFFBQU0sYUFBYSxzQkFBbkI7O0FBRUEsYUFBUyxVQUFULENBQW9CLElBQXBCLEVBQTBCO0FBQ3hCLGFBQU8sdUJBQWdCLEtBQUssTUFBTCxDQUFZLEtBQTVCLEVBQW1DLElBQW5DLEVBQXlDLFFBQVEsUUFBakQsQ0FBUDtBQUNEOztBQUVELGFBQVMsYUFBVCxDQUF1QixJQUF2QixFQUE2QjtBQUMzQixVQUFNLEtBQUssV0FBVyxJQUFYLENBQVg7QUFDQSxVQUFJLE1BQU0sSUFBVixFQUFnQixPQUFPLElBQVA7QUFDaEIsYUFBTyxVQUFVLEdBQVYsQ0FBYyxFQUFkLEVBQWtCLE9BQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFTLFlBQVQsQ0FBc0IsVUFBdEIsRUFBa0M7QUFDaEMsVUFBSSxDQUFDLFdBQVcsR0FBWCxDQUFlLFdBQVcsSUFBMUIsQ0FBTCxFQUFzQzs7QUFFdEMsYUFBTyxZQUFZO0FBQ2pCLGVBQU8sY0FBYyxXQUFXLEdBQVgsQ0FBZSxXQUFXLElBQTFCLENBQWQsQ0FBUDtBQUNELE9BRkQ7QUFHRDs7QUFFRCxhQUFTLFlBQVQsQ0FBc0IsTUFBdEIsRUFBOEIsVUFBOUIsRUFBMEM7QUFDeEMsVUFBTSxPQUFPLGFBQWEsVUFBYixDQUFiO0FBQ0EsVUFBSSxJQUFKLEVBQVU7QUFDUixlQUFPLGNBQVAsQ0FBc0IsTUFBdEIsRUFBOEIsV0FBOUIsRUFBMkMsRUFBRSxLQUFLLElBQVAsRUFBM0M7QUFDRDs7QUFFRCxhQUFPLE1BQVA7QUFDRDs7QUFHRCxRQUFJLElBQUosQ0FBUyxPQUFULENBQWlCLFVBQVUsQ0FBVixFQUFhOztBQUU1QixVQUFJLEVBQUUsSUFBRixLQUFXLDBCQUFmLEVBQTJDO0FBQ3pDLFlBQU0sYUFBYSxXQUFXLGVBQVgsRUFBNEIsQ0FBNUIsQ0FBbkI7QUFDQSxZQUFJLEVBQUUsV0FBRixDQUFjLElBQWQsS0FBdUIsWUFBM0IsRUFBeUM7QUFDdkMsdUJBQWEsVUFBYixFQUF5QixFQUFFLFdBQTNCO0FBQ0Q7QUFDRCxVQUFFLFNBQUYsQ0FBWSxHQUFaLENBQWdCLFNBQWhCLEVBQTJCLFVBQTNCO0FBQ0E7QUFDRDs7QUFFRCxVQUFJLEVBQUUsSUFBRixLQUFXLHNCQUFmLEVBQXVDO0FBQUE7QUFDckMsY0FBSSxZQUFZLFdBQVcsQ0FBWCxDQUFoQjtBQUNBLGNBQUksYUFBYSxJQUFqQixFQUF1QjtBQUFBO0FBQUE7QUFDdkIsWUFBRSxZQUFGLENBQWUsR0FBZixDQUFtQixTQUFuQixFQUE4QjtBQUFBLG1CQUFNLFVBQVUsR0FBVixDQUFjLFNBQWQsRUFBeUIsT0FBekIsQ0FBTjtBQUFBLFdBQTlCO0FBQ0E7QUFBQTtBQUFBO0FBSnFDOztBQUFBO0FBS3RDOzs7QUFHRCxVQUFJLEVBQUUsSUFBRixLQUFXLG1CQUFmLEVBQW9DO0FBQ2xDLFlBQUksV0FBSjtBQUNBLFlBQUksRUFBRSxVQUFGLENBQWEsSUFBYixDQUFrQjtBQUFBLGlCQUFLLEVBQUUsSUFBRixLQUFXLDBCQUFYLEtBQTBDLEtBQUssQ0FBL0MsQ0FBTDtBQUFBLFNBQWxCLENBQUosRUFBK0U7QUFDN0UscUJBQVcsR0FBWCxDQUFlLEdBQUcsS0FBSCxDQUFTLElBQXhCLEVBQThCLENBQTlCO0FBQ0Q7QUFDRDtBQUNEOztBQUVELFVBQUksRUFBRSxJQUFGLEtBQVcsd0JBQWYsRUFBd0M7O0FBRXRDLFlBQUksRUFBRSxXQUFGLElBQWlCLElBQXJCLEVBQTJCO0FBQ3pCLGtCQUFRLEVBQUUsV0FBRixDQUFjLElBQXRCO0FBQ0UsaUJBQUsscUJBQUw7QUFDQSxpQkFBSyxrQkFBTDtBQUNBLGlCQUFLLFdBQUw7O0FBQ0UsZ0JBQUUsU0FBRixDQUFZLEdBQVosQ0FBZ0IsRUFBRSxXQUFGLENBQWMsRUFBZCxDQUFpQixJQUFqQyxFQUF1QyxXQUFXLGVBQVgsRUFBNEIsQ0FBNUIsQ0FBdkM7QUFDQTtBQUNGLGlCQUFLLHFCQUFMO0FBQ0UsZ0JBQUUsV0FBRixDQUFjLFlBQWQsQ0FBMkIsT0FBM0IsQ0FBbUMsVUFBQyxDQUFEO0FBQUEsdUJBQ2pDLHdCQUF3QixFQUFFLEVBQTFCLEVBQThCO0FBQUEseUJBQzVCLEVBQUUsU0FBRixDQUFZLEdBQVosQ0FBZ0IsR0FBRyxJQUFuQixFQUF5QixXQUFXLGVBQVgsRUFBNEIsQ0FBNUIsRUFBK0IsQ0FBL0IsQ0FBekIsQ0FENEI7QUFBQSxpQkFBOUIsQ0FEaUM7QUFBQSxlQUFuQztBQUdBO0FBVko7QUFZRDs7QUFFRCxVQUFFLFVBQUYsQ0FBYSxPQUFiLENBQXFCLFVBQUMsQ0FBRCxFQUFPO0FBQzFCLGNBQU0sYUFBYSxFQUFuQjtBQUNBLGNBQUksY0FBSjs7QUFFQSxrQkFBUSxFQUFFLElBQVY7QUFDRSxpQkFBSyx3QkFBTDtBQUNFLGtCQUFJLENBQUMsRUFBRSxNQUFQLEVBQWU7QUFDZixzQkFBUSxTQUFSO0FBQ0E7QUFDRixpQkFBSywwQkFBTDtBQUNFLGdCQUFFLFNBQUYsQ0FBWSxHQUFaLENBQWdCLEVBQUUsUUFBRixDQUFXLElBQTNCLEVBQWlDLE9BQU8sY0FBUCxDQUFzQixVQUF0QixFQUFrQyxXQUFsQyxFQUErQztBQUM5RSxtQkFEOEUsaUJBQ3hFO0FBQUUseUJBQU8sY0FBYyxDQUFkLENBQVA7QUFBeUI7QUFENkMsZUFBL0MsQ0FBakM7QUFHQTtBQUNGLGlCQUFLLGlCQUFMO0FBQ0Usa0JBQUksQ0FBQyxFQUFFLE1BQVAsRUFBZTtBQUNiLGtCQUFFLFNBQUYsQ0FBWSxHQUFaLENBQWdCLEVBQUUsUUFBRixDQUFXLElBQTNCLEVBQWlDLGFBQWEsVUFBYixFQUF5QixFQUFFLEtBQTNCLENBQWpDO0FBQ0E7QUFDRDs7QUFFSDtBQUNFLHNCQUFRLEVBQUUsS0FBRixDQUFRLElBQWhCO0FBQ0E7QUFsQko7OztBQXNCQSxZQUFFLFNBQUYsQ0FBWSxHQUFaLENBQWdCLEVBQUUsUUFBRixDQUFXLElBQTNCLEVBQWlDLEVBQUUsWUFBRixFQUFTLFdBQVc7QUFBQSxxQkFBTSxjQUFjLENBQWQsQ0FBTjtBQUFBLGFBQXBCLEVBQWpDO0FBQ0QsU0EzQkQ7QUE0QkQ7QUFDRixLQXpFRDs7QUEyRUEsV0FBTyxDQUFQO0FBQ0QsRzs7Ozs7Ozs7Ozs7c0JBU0QsRyxnQkFBSSxJLEVBQU07QUFDUixRQUFJLEtBQUssU0FBTCxDQUFlLEdBQWYsQ0FBbUIsSUFBbkIsQ0FBSixFQUE4QixPQUFPLElBQVA7QUFDOUIsUUFBSSxLQUFLLFNBQUwsQ0FBZSxHQUFmLENBQW1CLElBQW5CLENBQUosRUFBOEIsT0FBTyxJQUFQOzs7QUFHOUIsUUFBSSxvQkFBb0IsS0FBeEI7QUFDQSxRQUFJLFNBQVMsU0FBYixFQUF3QjtBQUN0QixXQUFLLFlBQUwsQ0FBa0IsT0FBbEIsQ0FBMEIsVUFBQyxHQUFELEVBQVM7QUFDakMsWUFBSSxDQUFDLGlCQUFMLEVBQXdCO0FBQ3RCLGNBQUksV0FBVyxLQUFmOzs7QUFHQSxjQUFJLFlBQVksU0FBUyxHQUFULENBQWEsSUFBYixDQUFoQixFQUFvQyxvQkFBb0IsSUFBcEI7QUFDckM7QUFDRixPQVBEO0FBUUQ7O0FBRUQsV0FBTyxpQkFBUDtBQUNELEc7Ozs7Ozs7OztzQkFPRCxPLG9CQUFRLEksRUFBTTtBQUFBOztBQUNaLFFBQUksS0FBSyxTQUFMLENBQWUsR0FBZixDQUFtQixJQUFuQixDQUFKLEVBQThCLE9BQU8sRUFBRSxPQUFPLElBQVQsRUFBZSxNQUFNLENBQUMsSUFBRCxDQUFyQixFQUFQOztBQUU5QixRQUFJLEtBQUssU0FBTCxDQUFlLEdBQWYsQ0FBbUIsSUFBbkIsQ0FBSixFQUE4QjtBQUFBLDJCQUNDLEtBQUssU0FBTCxDQUFlLEdBQWYsQ0FBbUIsSUFBbkIsQ0FERDs7QUFBQSxVQUNwQixLQURvQixrQkFDcEIsS0FEb0I7QUFDdEIsVUFBUyxTQUFULGtCQUFTLFNBQVQ7QUFDQSxxQkFBVyxXQUFYOzs7QUFHTixVQUFJLFlBQVksSUFBaEIsRUFBc0IsT0FBTyxFQUFFLE9BQU8sSUFBVCxFQUFlLE1BQU0sQ0FBQyxJQUFELENBQXJCLEVBQVA7OztBQUd0QixVQUFJLFNBQVMsSUFBVCxLQUFrQixLQUFLLElBQXZCLElBQStCLFVBQVUsSUFBN0MsRUFBbUQsT0FBTyxFQUFFLE9BQU8sS0FBVCxFQUFnQixNQUFNLENBQUMsSUFBRCxDQUF0QixFQUFQOztBQUVuRCxVQUFNLE9BQU8sU0FBUyxPQUFULENBQWlCLEtBQWpCLENBQWI7QUFDQSxXQUFLLElBQUwsQ0FBVSxPQUFWLENBQWtCLElBQWxCOztBQUVBLGFBQU8sSUFBUDtBQUNEOzs7QUFJRCxRQUFJLGNBQWMsRUFBRSxPQUFPLEtBQVQsRUFBZ0IsTUFBTSxDQUFDLElBQUQsQ0FBdEIsRUFBbEI7QUFDQSxRQUFJLFNBQVMsU0FBYixFQUF3QjtBQUN0QixXQUFLLFlBQUwsQ0FBa0IsT0FBbEIsQ0FBMEIsVUFBQyxHQUFELEVBQVM7QUFDakMsWUFBSSxDQUFDLFlBQVksS0FBakIsRUFBd0I7QUFDdEIsY0FBSSxXQUFXLEtBQWY7O0FBRUEsY0FBSSxRQUFKLEVBQWM7OztBQUdaLGdCQUFJLFNBQVMsSUFBVCxLQUFrQixNQUFLLElBQTNCLEVBQWlDOztBQUUvQixrQkFBSSxhQUFhLFNBQVMsT0FBVCxDQUFpQixJQUFqQixDQUFqQjtBQUNBLGtCQUFJLFdBQVcsS0FBZixFQUFzQjtBQUNwQiwyQkFBVyxJQUFYLENBQWdCLE9BQWhCO0FBQ0EsOEJBQWMsVUFBZDtBQUNEO0FBQ0Y7QUFDRjtBQUNGO0FBQ0YsT0FqQkQ7QUFrQkQ7O0FBRUQsV0FBTyxXQUFQO0FBQ0QsRzs7c0JBRUQsRyxnQkFBSSxJLEVBQU07QUFBQTs7QUFDUixRQUFJLEtBQUssU0FBTCxDQUFlLEdBQWYsQ0FBbUIsSUFBbkIsQ0FBSixFQUE4QixPQUFPLEtBQUssU0FBTCxDQUFlLEdBQWYsQ0FBbUIsSUFBbkIsQ0FBUDs7QUFFOUIsUUFBSSxLQUFLLFNBQUwsQ0FBZSxHQUFmLENBQW1CLElBQW5CLENBQUosRUFBOEI7QUFBQSw0QkFDQyxLQUFLLFNBQUwsQ0FBZSxHQUFmLENBQW1CLElBQW5CLENBREQ7O0FBQUEsVUFDcEIsS0FEb0IsbUJBQ3BCLEtBRG9CO0FBQ3RCLFVBQVMsU0FBVCxtQkFBUyxTQUFUO0FBQ0EscUJBQVcsV0FBWDs7O0FBR04sVUFBSSxZQUFZLElBQWhCLEVBQXNCLE9BQU8sSUFBUDs7O0FBR3RCLFVBQUksU0FBUyxJQUFULEtBQWtCLEtBQUssSUFBdkIsSUFBK0IsVUFBVSxJQUE3QyxFQUFtRCxPQUFPLFNBQVA7O0FBRW5ELGFBQU8sU0FBUyxHQUFULENBQWEsS0FBYixDQUFQO0FBQ0Q7OztBQUdELFFBQUksY0FBYyxTQUFsQjtBQUNBLFFBQUksU0FBUyxTQUFiLEVBQXdCO0FBQ3RCLFdBQUssWUFBTCxDQUFrQixPQUFsQixDQUEwQixVQUFDLEdBQUQsRUFBUztBQUNqQyxZQUFJLGdCQUFnQixTQUFwQixFQUErQjtBQUM3QixjQUFJLFdBQVcsS0FBZjs7QUFFQSxjQUFJLFFBQUosRUFBYzs7O0FBR1osZ0JBQUksU0FBUyxJQUFULEtBQWtCLE9BQUssSUFBM0IsRUFBaUM7O0FBRS9CLGtCQUFJLGFBQWEsU0FBUyxHQUFULENBQWEsSUFBYixDQUFqQjtBQUNBLGtCQUFJLGVBQWUsU0FBbkIsRUFBOEIsY0FBYyxVQUFkO0FBQy9CO0FBQ0Y7QUFDRjtBQUNGLE9BZEQ7QUFlRDs7QUFFRCxXQUFPLFdBQVA7QUFDRCxHOztzQkFFRCxPLG9CQUFRLFEsRUFBVSxPLEVBQVM7QUFBQTs7QUFDekIsU0FBSyxTQUFMLENBQWUsT0FBZixDQUF1QixVQUFDLENBQUQsRUFBSSxDQUFKO0FBQUEsYUFDckIsU0FBUyxJQUFULENBQWMsT0FBZCxFQUF1QixDQUF2QixFQUEwQixDQUExQixTQURxQjtBQUFBLEtBQXZCOztBQUdBLFNBQUssU0FBTCxDQUFlLE9BQWYsQ0FBdUIsZ0JBQXVCLElBQXZCLEVBQWdDO0FBQUEsVUFBN0IsU0FBNkIsUUFBN0IsU0FBNkI7QUFBQSxVQUFsQixLQUFrQixRQUFsQixLQUFrQjs7QUFDckQsVUFBTSxhQUFhLFdBQW5COztBQUVBLGVBQVMsSUFBVCxDQUFjLE9BQWQsRUFBdUIsY0FBYyxXQUFXLEdBQVgsQ0FBZSxLQUFmLENBQXJDLEVBQTRELElBQTVEO0FBQ0QsS0FKRDs7QUFNQSxTQUFLLFlBQUwsQ0FBa0IsT0FBbEIsQ0FBMEI7QUFBQSxhQUFPLE1BQU0sT0FBTixDQUFjLFVBQUMsQ0FBRCxFQUFJLENBQUo7QUFBQSxlQUM3QyxNQUFNLFNBQU4sSUFBbUIsU0FBUyxJQUFULENBQWMsT0FBZCxFQUF1QixDQUF2QixFQUEwQixDQUExQixTQUQwQjtBQUFBLE9BQWQsQ0FBUDtBQUFBLEtBQTFCO0FBRUQsRzs7OztzQkFJRCxZLHlCQUFhLE8sRUFBUyxXLEVBQWE7QUFDakMsWUFBUSxNQUFSLENBQWU7QUFDYixZQUFNLFlBQVksTUFETDtBQUViLGVBQVMsdUNBQW9DLFlBQVksTUFBWixDQUFtQixLQUF2RCxrQkFDTSxLQUFLLE1BQUwsQ0FDSSxHQURKLENBQ1E7QUFBQSxlQUFRLEVBQUUsT0FBVixVQUFzQixFQUFFLFVBQXhCLFNBQXNDLEVBQUUsTUFBeEM7QUFBQSxPQURSLEVBRUksSUFGSixDQUVTLElBRlQsQ0FETjtBQUZJLEtBQWY7QUFPRCxHOzs7O3dCQTdVZ0I7QUFBRSxhQUFPLEtBQUssR0FBTCxDQUFTLFNBQVQsS0FBdUIsSUFBOUI7QUFBb0MsSzs7Ozt3QkFFNUM7QUFDVCxVQUFJLE9BQU8sS0FBSyxTQUFMLENBQWUsSUFBZixHQUFzQixLQUFLLFNBQUwsQ0FBZSxJQUFoRDtBQUNBLFdBQUssWUFBTCxDQUFrQixPQUFsQixDQUEwQjtBQUFBLGVBQU8sUUFBUSxNQUFNLElBQXJCO0FBQUEsT0FBMUI7QUFDQSxhQUFPLElBQVA7QUFDRDs7Ozs7Ozs7Ozs7OztrQkFoQmtCLFM7QUErVnJCLFNBQVMsVUFBVCxDQUFvQixlQUFwQixFQUErQztBQUM3QyxNQUFNLFdBQVcsRUFBakI7Ozs7QUFENkMsb0NBQVAsS0FBTztBQUFQLFNBQU87QUFBQTs7QUFJN0MsUUFBTSxJQUFOLENBQVcsYUFBSztBQUNkLFFBQUksQ0FBQyxFQUFFLGVBQVAsRUFBd0IsT0FBTyxLQUFQOztBQUV4QixTQUFLLElBQUksSUFBVCxJQUFpQixlQUFqQixFQUFrQztBQUNoQyxVQUFNLE1BQU0sZ0JBQWdCLElBQWhCLEVBQXNCLEVBQUUsZUFBeEIsQ0FBWjtBQUNBLFVBQUksR0FBSixFQUFTO0FBQ1AsaUJBQVMsR0FBVCxHQUFlLEdBQWY7QUFDRDtBQUNGOztBQUVELFdBQU8sSUFBUDtBQUNELEdBWEQ7O0FBYUEsU0FBTyxRQUFQO0FBQ0Q7O0FBRUQsSUFBTSwyQkFBMkI7QUFDL0IsU0FBTyxZQUR3QjtBQUUvQixVQUFRO0FBRnVCLENBQWpDOzs7Ozs7O0FBVUEsU0FBUyxZQUFULENBQXNCLFFBQXRCLEVBQWdDO0FBQzlCLE1BQUksWUFBSjs7O0FBR0EsV0FBUyxPQUFULENBQWlCLG1CQUFXOztBQUUxQixRQUFJLFFBQVEsS0FBUixDQUFjLEtBQWQsQ0FBb0IsQ0FBcEIsRUFBdUIsQ0FBdkIsTUFBOEIsT0FBbEMsRUFBMkM7QUFDM0MsUUFBSTtBQUNGLFlBQU0sU0FBUyxLQUFULENBQWUsUUFBUSxLQUF2QixFQUE4QixFQUFFLFFBQVEsSUFBVixFQUE5QixDQUFOO0FBQ0QsS0FGRCxDQUVFLE9BQU8sR0FBUCxFQUFZOztBQUViO0FBQ0YsR0FSRDs7QUFVQSxTQUFPLEdBQVA7QUFDRDs7Ozs7QUFLRCxTQUFTLGFBQVQsQ0FBdUIsUUFBdkIsRUFBaUM7O0FBRS9CLE1BQU0sUUFBUSxFQUFkO0FBQ0EsT0FBSyxJQUFJLElBQUksQ0FBYixFQUFnQixJQUFJLFNBQVMsTUFBN0IsRUFBcUMsR0FBckMsRUFBMEM7QUFDeEMsUUFBTSxVQUFVLFNBQVMsQ0FBVCxDQUFoQjtBQUNBLFFBQUksUUFBUSxLQUFSLENBQWMsS0FBZCxDQUFvQixPQUFwQixDQUFKLEVBQWtDO0FBQ2xDLFVBQU0sSUFBTixDQUFXLFFBQVEsS0FBUixDQUFjLElBQWQsRUFBWDtBQUNEOzs7QUFHRCxNQUFNLGNBQWMsTUFBTSxJQUFOLENBQVcsR0FBWCxFQUFnQixLQUFoQixDQUFzQix1Q0FBdEIsQ0FBcEI7QUFDQSxNQUFJLFdBQUosRUFBaUI7QUFDZixXQUFPO0FBQ0wsbUJBQWEsWUFBWSxDQUFaLENBRFI7QUFFTCxZQUFNLENBQUM7QUFDTCxlQUFPLFlBQVksQ0FBWixFQUFlLFdBQWYsRUFERjtBQUVMLHFCQUFhLFlBQVksQ0FBWjtBQUZSLE9BQUQ7QUFGRCxLQUFQO0FBT0Q7QUFDRjs7Ozs7Ozs7O0FBU00sU0FBUyx1QkFBVCxDQUFpQyxPQUFqQyxFQUEwQyxRQUExQyxFQUFvRDtBQUN6RCxVQUFRLFFBQVEsSUFBaEI7QUFDRSxTQUFLLFlBQUw7O0FBQ0UsZUFBUyxPQUFUO0FBQ0E7O0FBRUYsU0FBSyxlQUFMO0FBQ0UsY0FBUSxVQUFSLENBQW1CLE9BQW5CLENBQTJCLGlCQUFlO0FBQUEsWUFBWixLQUFZLFNBQVosS0FBWTs7QUFDeEMsZ0NBQXdCLEtBQXhCLEVBQStCLFFBQS9CO0FBQ0QsT0FGRDtBQUdBOztBQUVGLFNBQUssY0FBTDtBQUNFLGNBQVEsUUFBUixDQUFpQixPQUFqQixDQUF5QixVQUFDLE9BQUQsRUFBYTtBQUNwQyxZQUFJLFdBQVcsSUFBZixFQUFxQjtBQUNyQixnQ0FBd0IsT0FBeEIsRUFBaUMsUUFBakM7QUFDRCxPQUhEO0FBSUE7QUFoQko7QUFrQkQiLCJmaWxlIjoiY29yZS9nZXRFeHBvcnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1hcCBmcm9tICdlczYtbWFwJ1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcydcblxuaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gJ2NyeXB0bydcbmltcG9ydCAqIGFzIGRvY3RyaW5lIGZyb20gJ2RvY3RyaW5lJ1xuXG5pbXBvcnQgcGFyc2UgZnJvbSAnLi9wYXJzZSdcbmltcG9ydCByZXNvbHZlLCB7IHJlbGF0aXZlIGFzIHJlc29sdmVSZWxhdGl2ZSB9IGZyb20gJy4vcmVzb2x2ZSdcbmltcG9ydCBpc0lnbm9yZWQgZnJvbSAnLi9pZ25vcmUnXG5cbmltcG9ydCB7IGhhc2hPYmplY3QgfSBmcm9tICcuL2hhc2gnXG5cbmNvbnN0IGV4cG9ydENhY2hlID0gbmV3IE1hcCgpXG5cbi8qKlxuICogZGV0ZWN0IGV4cG9ydHMgd2l0aG91dCBhIGZ1bGwgcGFyc2UuXG4gKiB1c2VkIHByaW1hcmlseSB0byBpZ25vcmUgdGhlIGltcG9ydC9pZ25vcmUgc2V0dGluZywgaWlmIGl0IGxvb2tzIGxpa2VcbiAqIHRoZXJlIG1pZ2h0IGJlIHNvbWV0aGluZyB0aGVyZSAoaS5lLiwganNuZXh0Om1haW4gaXMgc2V0KS5cbiAqIEB0eXBlIHtSZWdFeHB9XG4gKi9cbmNvbnN0IGhhc0V4cG9ydHMgPSBuZXcgUmVnRXhwKCcoXnxbXFxcXG47XSlcXFxccypleHBvcnRcXFxcc1tcXFxcd3sqXScpXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV4cG9ydE1hcCB7XG4gIGNvbnN0cnVjdG9yKHBhdGgpIHtcbiAgICB0aGlzLnBhdGggPSBwYXRoXG4gICAgdGhpcy5uYW1lc3BhY2UgPSBuZXcgTWFwKClcbiAgICAvLyB0b2RvOiByZXN0cnVjdHVyZSB0byBrZXkgb24gcGF0aCwgdmFsdWUgaXMgcmVzb2x2ZXIgKyBtYXAgb2YgbmFtZXNcbiAgICB0aGlzLnJlZXhwb3J0cyA9IG5ldyBNYXAoKVxuICAgIHRoaXMuZGVwZW5kZW5jaWVzID0gbmV3IE1hcCgpXG4gICAgdGhpcy5lcnJvcnMgPSBbXVxuICB9XG5cbiAgZ2V0IGhhc0RlZmF1bHQoKSB7IHJldHVybiB0aGlzLmdldCgnZGVmYXVsdCcpICE9IG51bGwgfSAvLyBzdHJvbmdlciB0aGFuIHRoaXMuaGFzXG5cbiAgZ2V0IHNpemUoKSB7XG4gICAgbGV0IHNpemUgPSB0aGlzLm5hbWVzcGFjZS5zaXplICsgdGhpcy5yZWV4cG9ydHMuc2l6ZVxuICAgIHRoaXMuZGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IHNpemUgKz0gZGVwKCkuc2l6ZSlcbiAgICByZXR1cm4gc2l6ZVxuICB9XG5cbiAgc3RhdGljIGdldChzb3VyY2UsIGNvbnRleHQpIHtcblxuICAgIHZhciBwYXRoID0gcmVzb2x2ZShzb3VyY2UsIGNvbnRleHQpXG4gICAgaWYgKHBhdGggPT0gbnVsbCkgcmV0dXJuIG51bGxcblxuICAgIHJldHVybiBFeHBvcnRNYXAuZm9yKHBhdGgsIGNvbnRleHQpXG4gIH1cblxuICBzdGF0aWMgZm9yKHBhdGgsIGNvbnRleHQpIHtcbiAgICBsZXQgZXhwb3J0TWFwXG5cbiAgICBjb25zdCBjYWNoZUtleSA9IGhhc2hPYmplY3QoY3JlYXRlSGFzaCgnc2hhMjU2JyksIHtcbiAgICAgIHNldHRpbmdzOiBjb250ZXh0LnNldHRpbmdzLFxuICAgICAgcGFyc2VyUGF0aDogY29udGV4dC5wYXJzZXJQYXRoLFxuICAgICAgcGFyc2VyT3B0aW9uczogY29udGV4dC5wYXJzZXJPcHRpb25zLFxuICAgICAgcGF0aCxcbiAgICB9KS5kaWdlc3QoJ2hleCcpXG5cbiAgICBleHBvcnRNYXAgPSBleHBvcnRDYWNoZS5nZXQoY2FjaGVLZXkpXG5cbiAgICAvLyByZXR1cm4gY2FjaGVkIGlnbm9yZVxuICAgIGlmIChleHBvcnRNYXAgPT09IG51bGwpIHJldHVybiBudWxsXG5cbiAgICBjb25zdCBzdGF0cyA9IGZzLnN0YXRTeW5jKHBhdGgpXG4gICAgaWYgKGV4cG9ydE1hcCAhPSBudWxsKSB7XG4gICAgICAvLyBkYXRlIGVxdWFsaXR5IGNoZWNrXG4gICAgICBpZiAoZXhwb3J0TWFwLm10aW1lIC0gc3RhdHMubXRpbWUgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGV4cG9ydE1hcFxuICAgICAgfVxuICAgICAgLy8gZnV0dXJlOiBjaGVjayBjb250ZW50IGVxdWFsaXR5P1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMocGF0aCwgeyBlbmNvZGluZzogJ3V0ZjgnIH0pXG5cbiAgICAvLyBjaGVjayBmb3IgYW5kIGNhY2hlIGlnbm9yZVxuICAgIGlmIChpc0lnbm9yZWQocGF0aCwgY29udGV4dCkgJiYgIWhhc0V4cG9ydHMudGVzdChjb250ZW50KSkge1xuICAgICAgZXhwb3J0Q2FjaGUuc2V0KGNhY2hlS2V5LCBudWxsKVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBleHBvcnRNYXAgPSBFeHBvcnRNYXAucGFyc2UocGF0aCwgY29udGVudCwgY29udGV4dClcbiAgICBleHBvcnRNYXAubXRpbWUgPSBzdGF0cy5tdGltZVxuXG4gICAgZXhwb3J0Q2FjaGUuc2V0KGNhY2hlS2V5LCBleHBvcnRNYXApXG4gICAgcmV0dXJuIGV4cG9ydE1hcFxuICB9XG5cbiAgc3RhdGljIHBhcnNlKHBhdGgsIGNvbnRlbnQsIGNvbnRleHQpIHtcbiAgICB2YXIgbSA9IG5ldyBFeHBvcnRNYXAocGF0aClcblxuICAgIHRyeSB7XG4gICAgICB2YXIgYXN0ID0gcGFyc2UoY29udGVudCwgY29udGV4dClcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIG0uZXJyb3JzLnB1c2goZXJyKVxuICAgICAgcmV0dXJuIG0gLy8gY2FuJ3QgY29udGludWVcbiAgICB9XG5cbiAgICBjb25zdCBkb2NzdHlsZSA9IChjb250ZXh0LnNldHRpbmdzICYmIGNvbnRleHQuc2V0dGluZ3NbJ2ltcG9ydC9kb2NzdHlsZSddKSB8fCBbJ2pzZG9jJ11cbiAgICBjb25zdCBkb2NTdHlsZVBhcnNlcnMgPSB7fVxuICAgIGRvY3N0eWxlLmZvckVhY2goc3R5bGUgPT4ge1xuICAgICAgZG9jU3R5bGVQYXJzZXJzW3N0eWxlXSA9IGF2YWlsYWJsZURvY1N0eWxlUGFyc2Vyc1tzdHlsZV1cbiAgICB9KVxuXG4gICAgLy8gYXR0ZW1wdCB0byBjb2xsZWN0IG1vZHVsZSBkb2NcbiAgICBhc3QuY29tbWVudHMuc29tZShjID0+IHtcbiAgICAgIGlmIChjLnR5cGUgIT09ICdCbG9jaycpIHJldHVybiBmYWxzZVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZG9jID0gZG9jdHJpbmUucGFyc2UoYy52YWx1ZSwgeyB1bndyYXA6IHRydWUgfSlcbiAgICAgICAgaWYgKGRvYy50YWdzLnNvbWUodCA9PiB0LnRpdGxlID09PSAnbW9kdWxlJykpIHtcbiAgICAgICAgICBtLmRvYyA9IGRvY1xuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycikgeyAvKiBpZ25vcmUgKi8gfVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSlcblxuICAgIGNvbnN0IG5hbWVzcGFjZXMgPSBuZXcgTWFwKClcblxuICAgIGZ1bmN0aW9uIHJlbW90ZVBhdGgobm9kZSkge1xuICAgICAgcmV0dXJuIHJlc29sdmVSZWxhdGl2ZShub2RlLnNvdXJjZS52YWx1ZSwgcGF0aCwgY29udGV4dC5zZXR0aW5ncylcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZXNvbHZlSW1wb3J0KG5vZGUpIHtcbiAgICAgIGNvbnN0IHJwID0gcmVtb3RlUGF0aChub2RlKVxuICAgICAgaWYgKHJwID09IG51bGwpIHJldHVybiBudWxsXG4gICAgICByZXR1cm4gRXhwb3J0TWFwLmZvcihycCwgY29udGV4dClcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXROYW1lc3BhY2UoaWRlbnRpZmllcikge1xuICAgICAgaWYgKCFuYW1lc3BhY2VzLmhhcyhpZGVudGlmaWVyLm5hbWUpKSByZXR1cm5cblxuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVJbXBvcnQobmFtZXNwYWNlcy5nZXQoaWRlbnRpZmllci5uYW1lKSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGROYW1lc3BhY2Uob2JqZWN0LCBpZGVudGlmaWVyKSB7XG4gICAgICBjb25zdCBuc2ZuID0gZ2V0TmFtZXNwYWNlKGlkZW50aWZpZXIpXG4gICAgICBpZiAobnNmbikge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqZWN0LCAnbmFtZXNwYWNlJywgeyBnZXQ6IG5zZm4gfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9iamVjdFxuICAgIH1cblxuXG4gICAgYXN0LmJvZHkuZm9yRWFjaChmdW5jdGlvbiAobikge1xuXG4gICAgICBpZiAobi50eXBlID09PSAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJykge1xuICAgICAgICBjb25zdCBleHBvcnRNZXRhID0gY2FwdHVyZURvYyhkb2NTdHlsZVBhcnNlcnMsIG4pXG4gICAgICAgIGlmIChuLmRlY2xhcmF0aW9uLnR5cGUgPT09ICdJZGVudGlmaWVyJykge1xuICAgICAgICAgIGFkZE5hbWVzcGFjZShleHBvcnRNZXRhLCBuLmRlY2xhcmF0aW9uKVxuICAgICAgICB9XG4gICAgICAgIG0ubmFtZXNwYWNlLnNldCgnZGVmYXVsdCcsIGV4cG9ydE1ldGEpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAobi50eXBlID09PSAnRXhwb3J0QWxsRGVjbGFyYXRpb24nKSB7XG4gICAgICAgIGxldCByZW1vdGVNYXAgPSByZW1vdGVQYXRoKG4pXG4gICAgICAgIGlmIChyZW1vdGVNYXAgPT0gbnVsbCkgcmV0dXJuXG4gICAgICAgIG0uZGVwZW5kZW5jaWVzLnNldChyZW1vdGVNYXAsICgpID0+IEV4cG9ydE1hcC5mb3IocmVtb3RlTWFwLCBjb250ZXh0KSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIGNhcHR1cmUgbmFtZXNwYWNlcyBpbiBjYXNlIG9mIGxhdGVyIGV4cG9ydFxuICAgICAgaWYgKG4udHlwZSA9PT0gJ0ltcG9ydERlY2xhcmF0aW9uJykge1xuICAgICAgICBsZXQgbnNcbiAgICAgICAgaWYgKG4uc3BlY2lmaWVycy5zb21lKHMgPT4gcy50eXBlID09PSAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJyAmJiAobnMgPSBzKSkpIHtcbiAgICAgICAgICBuYW1lc3BhY2VzLnNldChucy5sb2NhbC5uYW1lLCBuKVxuICAgICAgICB9XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAobi50eXBlID09PSAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbicpe1xuICAgICAgICAvLyBjYXB0dXJlIGRlY2xhcmF0aW9uXG4gICAgICAgIGlmIChuLmRlY2xhcmF0aW9uICE9IG51bGwpIHtcbiAgICAgICAgICBzd2l0Y2ggKG4uZGVjbGFyYXRpb24udHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnRnVuY3Rpb25EZWNsYXJhdGlvbic6XG4gICAgICAgICAgICBjYXNlICdDbGFzc0RlY2xhcmF0aW9uJzpcbiAgICAgICAgICAgIGNhc2UgJ1R5cGVBbGlhcyc6IC8vIGZsb3d0eXBlIHdpdGggYmFiZWwtZXNsaW50IHBhcnNlclxuICAgICAgICAgICAgICBtLm5hbWVzcGFjZS5zZXQobi5kZWNsYXJhdGlvbi5pZC5uYW1lLCBjYXB0dXJlRG9jKGRvY1N0eWxlUGFyc2VycywgbikpXG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBjYXNlICdWYXJpYWJsZURlY2xhcmF0aW9uJzpcbiAgICAgICAgICAgICAgbi5kZWNsYXJhdGlvbi5kZWNsYXJhdGlvbnMuZm9yRWFjaCgoZCkgPT5cbiAgICAgICAgICAgICAgICByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZShkLmlkLCBpZCA9PlxuICAgICAgICAgICAgICAgICAgbS5uYW1lc3BhY2Uuc2V0KGlkLm5hbWUsIGNhcHR1cmVEb2MoZG9jU3R5bGVQYXJzZXJzLCBkLCBuKSkpKVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG4uc3BlY2lmaWVycy5mb3JFYWNoKChzKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXhwb3J0TWV0YSA9IHt9XG4gICAgICAgICAgbGV0IGxvY2FsXG5cbiAgICAgICAgICBzd2l0Y2ggKHMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnRXhwb3J0RGVmYXVsdFNwZWNpZmllcic6XG4gICAgICAgICAgICAgIGlmICghbi5zb3VyY2UpIHJldHVyblxuICAgICAgICAgICAgICBsb2NhbCA9ICdkZWZhdWx0J1xuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgY2FzZSAnRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyJzpcbiAgICAgICAgICAgICAgbS5uYW1lc3BhY2Uuc2V0KHMuZXhwb3J0ZWQubmFtZSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydE1ldGEsICduYW1lc3BhY2UnLCB7XG4gICAgICAgICAgICAgICAgZ2V0KCkgeyByZXR1cm4gcmVzb2x2ZUltcG9ydChuKSB9LFxuICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICBjYXNlICdFeHBvcnRTcGVjaWZpZXInOlxuICAgICAgICAgICAgICBpZiAoIW4uc291cmNlKSB7XG4gICAgICAgICAgICAgICAgbS5uYW1lc3BhY2Uuc2V0KHMuZXhwb3J0ZWQubmFtZSwgYWRkTmFtZXNwYWNlKGV4cG9ydE1ldGEsIHMubG9jYWwpKVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8vIGVsc2UgZmFsbHMgdGhyb3VnaFxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgbG9jYWwgPSBzLmxvY2FsLm5hbWVcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyB0b2RvOiBKU0RvY1xuICAgICAgICAgIG0ucmVleHBvcnRzLnNldChzLmV4cG9ydGVkLm5hbWUsIHsgbG9jYWwsIGdldEltcG9ydDogKCkgPT4gcmVzb2x2ZUltcG9ydChuKSB9KVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICByZXR1cm4gbVxuICB9XG5cbiAgLyoqXG4gICAqIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IGNoZWNrIGV4cGxpY2l0bHkgcmUtZXhwb3J0ZWQgbmFtZXMgZm9yIGV4aXN0ZW5jZVxuICAgKiBpbiB0aGUgYmFzZSBuYW1lc3BhY2UsIGJ1dCBpdCB3aWxsIGV4cGFuZCBhbGwgYGV4cG9ydCAqIGZyb20gJy4uLidgIGV4cG9ydHNcbiAgICogaWYgbm90IGZvdW5kIGluIHRoZSBleHBsaWNpdCBuYW1lc3BhY2UuXG4gICAqIEBwYXJhbSAge3N0cmluZ30gIG5hbWVcbiAgICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSBpZiBgbmFtZWAgaXMgZXhwb3J0ZWQgYnkgdGhpcyBtb2R1bGUuXG4gICAqL1xuICBoYXMobmFtZSkge1xuICAgIGlmICh0aGlzLm5hbWVzcGFjZS5oYXMobmFtZSkpIHJldHVybiB0cnVlXG4gICAgaWYgKHRoaXMucmVleHBvcnRzLmhhcyhuYW1lKSkgcmV0dXJuIHRydWVcblxuICAgIC8vIGRlZmF1bHQgZXhwb3J0cyBtdXN0IGJlIGV4cGxpY2l0bHkgcmUtZXhwb3J0ZWQgKCMzMjgpXG4gICAgbGV0IGZvdW5kSW5uZXJNYXBOYW1lID0gZmFsc2VcbiAgICBpZiAobmFtZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY2llcy5mb3JFYWNoKChkZXApID0+IHtcbiAgICAgICAgaWYgKCFmb3VuZElubmVyTWFwTmFtZSkge1xuICAgICAgICAgIGxldCBpbm5lck1hcCA9IGRlcCgpXG5cbiAgICAgICAgICAvLyB0b2RvOiByZXBvcnQgYXMgdW5yZXNvbHZlZD9cbiAgICAgICAgICBpZiAoaW5uZXJNYXAgJiYgaW5uZXJNYXAuaGFzKG5hbWUpKSBmb3VuZElubmVyTWFwTmFtZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gZm91bmRJbm5lck1hcE5hbWVcbiAgfVxuXG4gIC8qKlxuICAgKiBlbnN1cmUgdGhhdCBpbXBvcnRlZCBuYW1lIGZ1bGx5IHJlc29sdmVzLlxuICAgKiBAcGFyYW0gIHtbdHlwZV19ICBuYW1lIFtkZXNjcmlwdGlvbl1cbiAgICogQHJldHVybiB7Qm9vbGVhbn0gICAgICBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBoYXNEZWVwKG5hbWUpIHtcbiAgICBpZiAodGhpcy5uYW1lc3BhY2UuaGFzKG5hbWUpKSByZXR1cm4geyBmb3VuZDogdHJ1ZSwgcGF0aDogW3RoaXNdIH1cblxuICAgIGlmICh0aGlzLnJlZXhwb3J0cy5oYXMobmFtZSkpIHtcbiAgICAgIGNvbnN0IHsgbG9jYWwsIGdldEltcG9ydCB9ID0gdGhpcy5yZWV4cG9ydHMuZ2V0KG5hbWUpXG4gICAgICAgICAgLCBpbXBvcnRlZCA9IGdldEltcG9ydCgpXG5cbiAgICAgIC8vIGlmIGltcG9ydCBpcyBpZ25vcmVkLCByZXR1cm4gZXhwbGljaXQgJ251bGwnXG4gICAgICBpZiAoaW1wb3J0ZWQgPT0gbnVsbCkgcmV0dXJuIHsgZm91bmQ6IHRydWUsIHBhdGg6IFt0aGlzXSB9XG5cbiAgICAgIC8vIHNhZmVndWFyZCBhZ2FpbnN0IGN5Y2xlcywgb25seSBpZiBuYW1lIG1hdGNoZXNcbiAgICAgIGlmIChpbXBvcnRlZC5wYXRoID09PSB0aGlzLnBhdGggJiYgbG9jYWwgPT09IG5hbWUpIHJldHVybiB7IGZvdW5kOiBmYWxzZSwgcGF0aDogW3RoaXNdIH1cblxuICAgICAgY29uc3QgZGVlcCA9IGltcG9ydGVkLmhhc0RlZXAobG9jYWwpXG4gICAgICBkZWVwLnBhdGgudW5zaGlmdCh0aGlzKVxuXG4gICAgICByZXR1cm4gZGVlcFxuICAgIH1cblxuXG4gICAgLy8gZGVmYXVsdCBleHBvcnRzIG11c3QgYmUgZXhwbGljaXRseSByZS1leHBvcnRlZCAoIzMyOClcbiAgICBsZXQgcmV0dXJuVmFsdWUgPSB7IGZvdW5kOiBmYWxzZSwgcGF0aDogW3RoaXNdIH1cbiAgICBpZiAobmFtZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY2llcy5mb3JFYWNoKChkZXApID0+IHtcbiAgICAgICAgaWYgKCFyZXR1cm5WYWx1ZS5mb3VuZCkge1xuICAgICAgICAgIGxldCBpbm5lck1hcCA9IGRlcCgpXG4gICAgICAgICAgLy8gdG9kbzogcmVwb3J0IGFzIHVucmVzb2x2ZWQ/XG4gICAgICAgICAgaWYgKGlubmVyTWFwKSB7XG5cbiAgICAgICAgICAgIC8vIHNhZmVndWFyZCBhZ2FpbnN0IGN5Y2xlc1xuICAgICAgICAgICAgaWYgKGlubmVyTWFwLnBhdGggIT09IHRoaXMucGF0aCkge1xuXG4gICAgICAgICAgICAgIGxldCBpbm5lclZhbHVlID0gaW5uZXJNYXAuaGFzRGVlcChuYW1lKVxuICAgICAgICAgICAgICBpZiAoaW5uZXJWYWx1ZS5mb3VuZCkge1xuICAgICAgICAgICAgICAgIGlubmVyVmFsdWUucGF0aC51bnNoaWZ0KHRoaXMpXG4gICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBpbm5lclZhbHVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHJldHVyblZhbHVlXG4gIH1cblxuICBnZXQobmFtZSkge1xuICAgIGlmICh0aGlzLm5hbWVzcGFjZS5oYXMobmFtZSkpIHJldHVybiB0aGlzLm5hbWVzcGFjZS5nZXQobmFtZSlcblxuICAgIGlmICh0aGlzLnJlZXhwb3J0cy5oYXMobmFtZSkpIHtcbiAgICAgIGNvbnN0IHsgbG9jYWwsIGdldEltcG9ydCB9ID0gdGhpcy5yZWV4cG9ydHMuZ2V0KG5hbWUpXG4gICAgICAgICAgLCBpbXBvcnRlZCA9IGdldEltcG9ydCgpXG5cbiAgICAgIC8vIGlmIGltcG9ydCBpcyBpZ25vcmVkLCByZXR1cm4gZXhwbGljaXQgJ251bGwnXG4gICAgICBpZiAoaW1wb3J0ZWQgPT0gbnVsbCkgcmV0dXJuIG51bGxcblxuICAgICAgLy8gc2FmZWd1YXJkIGFnYWluc3QgY3ljbGVzLCBvbmx5IGlmIG5hbWUgbWF0Y2hlc1xuICAgICAgaWYgKGltcG9ydGVkLnBhdGggPT09IHRoaXMucGF0aCAmJiBsb2NhbCA9PT0gbmFtZSkgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgICByZXR1cm4gaW1wb3J0ZWQuZ2V0KGxvY2FsKVxuICAgIH1cblxuICAgIC8vIGRlZmF1bHQgZXhwb3J0cyBtdXN0IGJlIGV4cGxpY2l0bHkgcmUtZXhwb3J0ZWQgKCMzMjgpXG4gICAgbGV0IHJldHVyblZhbHVlID0gdW5kZWZpbmVkXG4gICAgaWYgKG5hbWUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgdGhpcy5kZXBlbmRlbmNpZXMuZm9yRWFjaCgoZGVwKSA9PiB7XG4gICAgICAgIGlmIChyZXR1cm5WYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgbGV0IGlubmVyTWFwID0gZGVwKClcbiAgICAgICAgICAvLyB0b2RvOiByZXBvcnQgYXMgdW5yZXNvbHZlZD9cbiAgICAgICAgICBpZiAoaW5uZXJNYXApIHtcblxuICAgICAgICAgICAgLy8gc2FmZWd1YXJkIGFnYWluc3QgY3ljbGVzXG4gICAgICAgICAgICBpZiAoaW5uZXJNYXAucGF0aCAhPT0gdGhpcy5wYXRoKSB7XG5cbiAgICAgICAgICAgICAgbGV0IGlubmVyVmFsdWUgPSBpbm5lck1hcC5nZXQobmFtZSlcbiAgICAgICAgICAgICAgaWYgKGlubmVyVmFsdWUgIT09IHVuZGVmaW5lZCkgcmV0dXJuVmFsdWUgPSBpbm5lclZhbHVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiByZXR1cm5WYWx1ZVxuICB9XG5cbiAgZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZykge1xuICAgIHRoaXMubmFtZXNwYWNlLmZvckVhY2goKHYsIG4pID0+XG4gICAgICBjYWxsYmFjay5jYWxsKHRoaXNBcmcsIHYsIG4sIHRoaXMpKVxuXG4gICAgdGhpcy5yZWV4cG9ydHMuZm9yRWFjaCgoeyBnZXRJbXBvcnQsIGxvY2FsIH0sIG5hbWUpID0+IHtcbiAgICAgIGNvbnN0IHJlZXhwb3J0ZWQgPSBnZXRJbXBvcnQoKVxuICAgICAgLy8gY2FuJ3QgbG9vayB1cCBtZXRhIGZvciBpZ25vcmVkIHJlLWV4cG9ydHMgKCMzNDgpXG4gICAgICBjYWxsYmFjay5jYWxsKHRoaXNBcmcsIHJlZXhwb3J0ZWQgJiYgcmVleHBvcnRlZC5nZXQobG9jYWwpLCBuYW1lLCB0aGlzKVxuICAgIH0pXG5cbiAgICB0aGlzLmRlcGVuZGVuY2llcy5mb3JFYWNoKGRlcCA9PiBkZXAoKS5mb3JFYWNoKCh2LCBuKSA9PlxuICAgICAgbiAhPT0gJ2RlZmF1bHQnICYmIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdiwgbiwgdGhpcykpKVxuICB9XG5cbiAgLy8gdG9kbzoga2V5cywgdmFsdWVzLCBlbnRyaWVzP1xuXG4gIHJlcG9ydEVycm9ycyhjb250ZXh0LCBkZWNsYXJhdGlvbikge1xuICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgIG5vZGU6IGRlY2xhcmF0aW9uLnNvdXJjZSxcbiAgICAgIG1lc3NhZ2U6IGBQYXJzZSBlcnJvcnMgaW4gaW1wb3J0ZWQgbW9kdWxlICcke2RlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZX0nOiBgICtcbiAgICAgICAgICAgICAgICAgIGAke3RoaXMuZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKGUgPT4gYCR7ZS5tZXNzYWdlfSAoJHtlLmxpbmVOdW1iZXJ9OiR7ZS5jb2x1bW59KWApXG4gICAgICAgICAgICAgICAgICAgICAgICAuam9pbignLCAnKX1gLFxuICAgIH0pXG4gIH1cbn1cblxuLyoqXG4gKiBwYXJzZSBkb2NzIGZyb20gdGhlIGZpcnN0IG5vZGUgdGhhdCBoYXMgbGVhZGluZyBjb21tZW50c1xuICogQHBhcmFtICB7Li4uW3R5cGVdfSBub2RlcyBbZGVzY3JpcHRpb25dXG4gKiBAcmV0dXJuIHt7ZG9jOiBvYmplY3R9fVxuICovXG5mdW5jdGlvbiBjYXB0dXJlRG9jKGRvY1N0eWxlUGFyc2VycywgLi4ubm9kZXMpIHtcbiAgY29uc3QgbWV0YWRhdGEgPSB7fVxuXG4gIC8vICdzb21lJyBzaG9ydC1jaXJjdWl0cyBvbiBmaXJzdCAndHJ1ZSdcbiAgbm9kZXMuc29tZShuID0+IHtcbiAgICBpZiAoIW4ubGVhZGluZ0NvbW1lbnRzKSByZXR1cm4gZmFsc2VcblxuICAgIGZvciAobGV0IG5hbWUgaW4gZG9jU3R5bGVQYXJzZXJzKSB7XG4gICAgICBjb25zdCBkb2MgPSBkb2NTdHlsZVBhcnNlcnNbbmFtZV0obi5sZWFkaW5nQ29tbWVudHMpXG4gICAgICBpZiAoZG9jKSB7XG4gICAgICAgIG1ldGFkYXRhLmRvYyA9IGRvY1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH0pXG5cbiAgcmV0dXJuIG1ldGFkYXRhXG59XG5cbmNvbnN0IGF2YWlsYWJsZURvY1N0eWxlUGFyc2VycyA9IHtcbiAganNkb2M6IGNhcHR1cmVKc0RvYyxcbiAgdG9tZG9jOiBjYXB0dXJlVG9tRG9jLFxufVxuXG4vKipcbiAqIHBhcnNlIEpTRG9jIGZyb20gbGVhZGluZyBjb21tZW50c1xuICogQHBhcmFtICB7Li4uW3R5cGVdfSBjb21tZW50cyBbZGVzY3JpcHRpb25dXG4gKiBAcmV0dXJuIHt7ZG9jOiBvYmplY3R9fVxuICovXG5mdW5jdGlvbiBjYXB0dXJlSnNEb2MoY29tbWVudHMpIHtcbiAgbGV0IGRvY1xuXG4gIC8vIGNhcHR1cmUgWFNEb2NcbiAgY29tbWVudHMuZm9yRWFjaChjb21tZW50ID0+IHtcbiAgICAvLyBza2lwIG5vbi1ibG9jayBjb21tZW50c1xuICAgIGlmIChjb21tZW50LnZhbHVlLnNsaWNlKDAsIDQpICE9PSAnKlxcbiAqJykgcmV0dXJuXG4gICAgdHJ5IHtcbiAgICAgIGRvYyA9IGRvY3RyaW5lLnBhcnNlKGNvbW1lbnQudmFsdWUsIHsgdW53cmFwOiB0cnVlIH0pXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvKiBkb24ndCBjYXJlLCBmb3Igbm93PyBtYXliZSBhZGQgdG8gYGVycm9ycz9gICovXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBkb2Ncbn1cblxuLyoqXG4gICogcGFyc2UgVG9tRG9jIHNlY3Rpb24gZnJvbSBjb21tZW50c1xuICAqL1xuZnVuY3Rpb24gY2FwdHVyZVRvbURvYyhjb21tZW50cykge1xuICAvLyBjb2xsZWN0IGxpbmVzIHVwIHRvIGZpcnN0IHBhcmFncmFwaCBicmVha1xuICBjb25zdCBsaW5lcyA9IFtdXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY29tbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjb21tZW50ID0gY29tbWVudHNbaV1cbiAgICBpZiAoY29tbWVudC52YWx1ZS5tYXRjaCgvXlxccyokLykpIGJyZWFrXG4gICAgbGluZXMucHVzaChjb21tZW50LnZhbHVlLnRyaW0oKSlcbiAgfVxuXG4gIC8vIHJldHVybiBkb2N0cmluZS1saWtlIG9iamVjdFxuICBjb25zdCBzdGF0dXNNYXRjaCA9IGxpbmVzLmpvaW4oJyAnKS5tYXRjaCgvXihQdWJsaWN8SW50ZXJuYWx8RGVwcmVjYXRlZCk6XFxzKiguKykvKVxuICBpZiAoc3RhdHVzTWF0Y2gpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGVzY3JpcHRpb246IHN0YXR1c01hdGNoWzJdLFxuICAgICAgdGFnczogW3tcbiAgICAgICAgdGl0bGU6IHN0YXR1c01hdGNoWzFdLnRvTG93ZXJDYXNlKCksXG4gICAgICAgIGRlc2NyaXB0aW9uOiBzdGF0dXNNYXRjaFsyXSxcbiAgICAgIH1dLFxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRyYXZlcnNlIGEgcGF0dGVybi9pZGVudGlmaWVyIG5vZGUsIGNhbGxpbmcgJ2NhbGxiYWNrJ1xuICogZm9yIGVhY2ggbGVhZiBpZGVudGlmaWVyLlxuICogQHBhcmFtICB7bm9kZX0gICBwYXR0ZXJuXG4gKiBAcGFyYW0gIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEByZXR1cm4ge3ZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZShwYXR0ZXJuLCBjYWxsYmFjaykge1xuICBzd2l0Y2ggKHBhdHRlcm4udHlwZSkge1xuICAgIGNhc2UgJ0lkZW50aWZpZXInOiAvLyBiYXNlIGNhc2VcbiAgICAgIGNhbGxiYWNrKHBhdHRlcm4pXG4gICAgICBicmVha1xuXG4gICAgY2FzZSAnT2JqZWN0UGF0dGVybic6XG4gICAgICBwYXR0ZXJuLnByb3BlcnRpZXMuZm9yRWFjaCgoeyB2YWx1ZSB9KSA9PiB7XG4gICAgICAgIHJlY3Vyc2l2ZVBhdHRlcm5DYXB0dXJlKHZhbHVlLCBjYWxsYmFjaylcbiAgICAgIH0pXG4gICAgICBicmVha1xuXG4gICAgY2FzZSAnQXJyYXlQYXR0ZXJuJzpcbiAgICAgIHBhdHRlcm4uZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudCA9PSBudWxsKSByZXR1cm5cbiAgICAgICAgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUoZWxlbWVudCwgY2FsbGJhY2spXG4gICAgICB9KVxuICAgICAgYnJlYWtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,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QztBQUNELE9BSEQ7QUFJQTtBQWhCSjtBQWtCRCIsImZpbGUiOiJjb3JlL2dldEV4cG9ydHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTWFwIGZyb20gJ2VzNi1tYXAnXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJ1xuXG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSAnY3J5cHRvJ1xuaW1wb3J0ICogYXMgZG9jdHJpbmUgZnJvbSAnZG9jdHJpbmUnXG5cbmltcG9ydCBwYXJzZSBmcm9tICcuL3BhcnNlJ1xuaW1wb3J0IHJlc29sdmUsIHsgcmVsYXRpdmUgYXMgcmVzb2x2ZVJlbGF0aXZlIH0gZnJvbSAnLi9yZXNvbHZlJ1xuaW1wb3J0IGlzSWdub3JlZCBmcm9tICcuL2lnbm9yZSdcblxuaW1wb3J0IHsgaGFzaE9iamVjdCB9IGZyb20gJy4vaGFzaCdcblxuY29uc3QgZXhwb3J0Q2FjaGUgPSBuZXcgTWFwKClcblxuLyoqXG4gKiBkZXRlY3QgZXhwb3J0cyB3aXRob3V0IGEgZnVsbCBwYXJzZS5cbiAqIHVzZWQgcHJpbWFyaWx5IHRvIGlnbm9yZSB0aGUgaW1wb3J0L2lnbm9yZSBzZXR0aW5nLCBpaWYgaXQgbG9va3MgbGlrZVxuICogdGhlcmUgbWlnaHQgYmUgc29tZXRoaW5nIHRoZXJlIChpLmUuLCBqc25leHQ6bWFpbiBpcyBzZXQpLlxuICogQHR5cGUge1JlZ0V4cH1cbiAqL1xuY29uc3QgaGFzRXhwb3J0cyA9IG5ldyBSZWdFeHAoJyhefFtcXFxcbjtdKVxcXFxzKmV4cG9ydFxcXFxzW1xcXFx3eypdJylcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXhwb3J0TWFwIHtcbiAgY29uc3RydWN0b3IocGF0aCkge1xuICAgIHRoaXMucGF0aCA9IHBhdGhcbiAgICB0aGlzLm5hbWVzcGFjZSA9IG5ldyBNYXAoKVxuICAgIC8vIHRvZG86IHJlc3RydWN0dXJlIHRvIGtleSBvbiBwYXRoLCB2YWx1ZSBpcyByZXNvbHZlciArIG1hcCBvZiBuYW1lc1xuICAgIHRoaXMucmVleHBvcnRzID0gbmV3IE1hcCgpXG4gICAgdGhpcy5kZXBlbmRlbmNpZXMgPSBuZXcgTWFwKClcbiAgICB0aGlzLmVycm9ycyA9IFtdXG4gIH1cblxuICBnZXQgaGFzRGVmYXVsdCgpIHsgcmV0dXJuIHRoaXMuZ2V0KCdkZWZhdWx0JykgIT0gbnVsbCB9IC8vIHN0cm9uZ2VyIHRoYW4gdGhpcy5oYXNcblxuICBnZXQgc2l6ZSgpIHtcbiAgICBsZXQgc2l6ZSA9IHRoaXMubmFtZXNwYWNlLnNpemUgKyB0aGlzLnJlZXhwb3J0cy5zaXplXG4gICAgdGhpcy5kZXBlbmRlbmNpZXMuZm9yRWFjaChkZXAgPT4gc2l6ZSArPSBkZXAoKS5zaXplKVxuICAgIHJldHVybiBzaXplXG4gIH1cblxuICBzdGF0aWMgZ2V0KHNvdXJjZSwgY29udGV4dCkge1xuXG4gICAgdmFyIHBhdGggPSByZXNvbHZlKHNvdXJjZSwgY29udGV4dClcbiAgICBpZiAocGF0aCA9PSBudWxsKSByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIEV4cG9ydE1hcC5mb3IocGF0aCwgY29udGV4dClcbiAgfVxuXG4gIHN0YXRpYyBmb3IocGF0aCwgY29udGV4dCkge1xuICAgIGxldCBleHBvcnRNYXBcblxuICAgIGNvbnN0IGNhY2hlS2V5ID0gaGFzaE9iamVjdChjcmVhdGVIYXNoKCdzaGEyNTYnKSwge1xuICAgICAgc2V0dGluZ3M6IGNvbnRleHQuc2V0dGluZ3MsXG4gICAgICBwYXJzZXJQYXRoOiBjb250ZXh0LnBhcnNlclBhdGgsXG4gICAgICBwYXJzZXJPcHRpb25zOiBjb250ZXh0LnBhcnNlck9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgIH0pLmRpZ2VzdCgnaGV4JylcblxuICAgIGV4cG9ydE1hcCA9IGV4cG9ydENhY2hlLmdldChjYWNoZUtleSlcblxuICAgIC8vIHJldHVybiBjYWNoZWQgaWdub3JlXG4gICAgaWYgKGV4cG9ydE1hcCA9PT0gbnVsbCkgcmV0dXJuIG51bGxcblxuICAgIGNvbnN0IHN0YXRzID0gZnMuc3RhdFN5bmMocGF0aClcbiAgICBpZiAoZXhwb3J0TWFwICE9IG51bGwpIHtcbiAgICAgIC8vIGRhdGUgZXF1YWxpdHkgY2hlY2tcbiAgICAgIGlmIChleHBvcnRNYXAubXRpbWUgLSBzdGF0cy5tdGltZSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZXhwb3J0TWFwXG4gICAgICB9XG4gICAgICAvLyBmdXR1cmU6IGNoZWNrIGNvbnRlbnQgZXF1YWxpdHk/XG4gICAgfVxuXG4gICAgY29uc3QgY29udGVudCA9IGZzLnJlYWRGaWxlU3luYyhwYXRoLCB7IGVuY29kaW5nOiAndXRmOCcgfSlcblxuICAgIC8vIGNoZWNrIGZvciBhbmQgY2FjaGUgaWdub3JlXG4gICAgaWYgKGlzSWdub3JlZChwYXRoLCBjb250ZXh0KSAmJiAhaGFzRXhwb3J0cy50ZXN0KGNvbnRlbnQpKSB7XG4gICAgICBleHBvcnRDYWNoZS5zZXQoY2FjaGVLZXksIG51bGwpXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGV4cG9ydE1hcCA9IEV4cG9ydE1hcC5wYXJzZShwYXRoLCBjb250ZW50LCBjb250ZXh0KVxuICAgIGV4cG9ydE1hcC5tdGltZSA9IHN0YXRzLm10aW1lXG5cbiAgICBleHBvcnRDYWNoZS5zZXQoY2FjaGVLZXksIGV4cG9ydE1hcClcbiAgICByZXR1cm4gZXhwb3J0TWFwXG4gIH1cblxuICBzdGF0aWMgcGFyc2UocGF0aCwgY29udGVudCwgY29udGV4dCkge1xuICAgIHZhciBtID0gbmV3IEV4cG9ydE1hcChwYXRoKVxuXG4gICAgdHJ5IHtcbiAgICAgIHZhciBhc3QgPSBwYXJzZShjb250ZW50LCBjb250ZXh0KVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbS5lcnJvcnMucHVzaChlcnIpXG4gICAgICByZXR1cm4gbSAvLyBjYW4ndCBjb250aW51ZVxuICAgIH1cblxuICAgIGNvbnN0IGRvY3N0eWxlID0gKGNvbnRleHQuc2V0dGluZ3MgJiYgY29udGV4dC5zZXR0aW5nc1snaW1wb3J0L2RvY3N0eWxlJ10pIHx8IFsnanNkb2MnXVxuICAgIGNvbnN0IGRvY1N0eWxlUGFyc2VycyA9IHt9XG4gICAgZG9jc3R5bGUuZm9yRWFjaChzdHlsZSA9PiB7XG4gICAgICBkb2NTdHlsZVBhcnNlcnNbc3R5bGVdID0gYXZhaWxhYmxlRG9jU3R5bGVQYXJzZXJzW3N0eWxlXVxuICAgIH0pXG5cbiAgICAvLyBhdHRlbXB0IHRvIGNvbGxlY3QgbW9kdWxlIGRvY1xuICAgIGFzdC5jb21tZW50cy5zb21lKGMgPT4ge1xuICAgICAgaWYgKGMudHlwZSAhPT0gJ0Jsb2NrJykgcmV0dXJuIGZhbHNlXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBkb2MgPSBkb2N0cmluZS5wYXJzZShjLnZhbHVlLCB7IHVud3JhcDogdHJ1ZSB9KVxuICAgICAgICBpZiAoZG9jLnRhZ3Muc29tZSh0ID0+IHQudGl0bGUgPT09ICdtb2R1bGUnKSkge1xuICAgICAgICAgIG0uZG9jID0gZG9jXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyKSB7IC8qIGlnbm9yZSAqLyB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9KVxuXG4gICAgY29uc3QgbmFtZXNwYWNlcyA9IG5ldyBNYXAoKVxuXG4gICAgZnVuY3Rpb24gcmVtb3RlUGF0aChub2RlKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZVJlbGF0aXZlKG5vZGUuc291cmNlLnZhbHVlLCBwYXRoLCBjb250ZXh0LnNldHRpbmdzKVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlc29sdmVJbXBvcnQobm9kZSkge1xuICAgICAgY29uc3QgcnAgPSByZW1vdGVQYXRoKG5vZGUpXG4gICAgICBpZiAocnAgPT0gbnVsbCkgcmV0dXJuIG51bGxcbiAgICAgIHJldHVybiBFeHBvcnRNYXAuZm9yKHJwLCBjb250ZXh0KVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldE5hbWVzcGFjZShpZGVudGlmaWVyKSB7XG4gICAgICBpZiAoIW5hbWVzcGFjZXMuaGFzKGlkZW50aWZpZXIubmFtZSkpIHJldHVyblxuXG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUltcG9ydChuYW1lc3BhY2VzLmdldChpZGVudGlmaWVyLm5hbWUpKVxuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZE5hbWVzcGFjZShvYmplY3QsIGlkZW50aWZpZXIpIHtcbiAgICAgIGNvbnN0IG5zZm4gPSBnZXROYW1lc3BhY2UoaWRlbnRpZmllcilcbiAgICAgIGlmIChuc2ZuKSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmplY3QsICduYW1lc3BhY2UnLCB7IGdldDogbnNmbiB9KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gb2JqZWN0XG4gICAgfVxuXG5cbiAgICBhc3QuYm9keS5mb3JFYWNoKGZ1bmN0aW9uIChuKSB7XG5cbiAgICAgIGlmIChuLnR5cGUgPT09ICdFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24nKSB7XG4gICAgICAgIGNvbnN0IGV4cG9ydE1ldGEgPSBjYXB0dXJlRG9jKGRvY1N0eWxlUGFyc2VycywgbilcbiAgICAgICAgaWYgKG4uZGVjbGFyYXRpb24udHlwZSA9PT0gJ0lkZW50aWZpZXInKSB7XG4gICAgICAgICAgYWRkTmFtZXNwYWNlKGV4cG9ydE1ldGEsIG4uZGVjbGFyYXRpb24pXG4gICAgICAgIH1cbiAgICAgICAgbS5uYW1lc3BhY2Uuc2V0KCdkZWZhdWx0JywgZXhwb3J0TWV0YSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChuLnR5cGUgPT09ICdFeHBvcnRBbGxEZWNsYXJhdGlvbicpIHtcbiAgICAgICAgbGV0IHJlbW90ZU1hcCA9IHJlbW90ZVBhdGgobilcbiAgICAgICAgaWYgKHJlbW90ZU1hcCA9PSBudWxsKSByZXR1cm5cbiAgICAgICAgbS5kZXBlbmRlbmNpZXMuc2V0KHJlbW90ZU1hcCwgKCkgPT4gRXhwb3J0TWFwLmZvcihyZW1vdGVNYXAsIGNvbnRleHQpKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gY2FwdHVyZSBuYW1lc3BhY2VzIGluIGNhc2Ugb2YgbGF0ZXIgZXhwb3J0XG4gICAgICBpZiAobi50eXBlID09PSAnSW1wb3J0RGVjbGFyYXRpb24nKSB7XG4gICAgICAgIGxldCBuc1xuICAgICAgICBpZiAobi5zcGVjaWZpZXJzLnNvbWUocyA9PiBzLnR5cGUgPT09ICdJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXInICYmIChucyA9IHMpKSkge1xuICAgICAgICAgIG5hbWVzcGFjZXMuc2V0KG5zLmxvY2FsLm5hbWUsIG4pXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChuLnR5cGUgPT09ICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJyl7XG4gICAgICAgIC8vIGNhcHR1cmUgZGVjbGFyYXRpb25cbiAgICAgICAgaWYgKG4uZGVjbGFyYXRpb24gIT0gbnVsbCkge1xuICAgICAgICAgIHN3aXRjaCAobi5kZWNsYXJhdGlvbi50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdGdW5jdGlvbkRlY2xhcmF0aW9uJzpcbiAgICAgICAgICAgIGNhc2UgJ0NsYXNzRGVjbGFyYXRpb24nOlxuICAgICAgICAgICAgY2FzZSAnVHlwZUFsaWFzJzogLy8gZmxvd3R5cGUgd2l0aCBiYWJlbC1lc2xpbnQgcGFyc2VyXG4gICAgICAgICAgICAgIG0ubmFtZXNwYWNlLnNldChuLmRlY2xhcmF0aW9uLmlkLm5hbWUsIGNhcHR1cmVEb2MoZG9jU3R5bGVQYXJzZXJzLCBuKSlcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIGNhc2UgJ1ZhcmlhYmxlRGVjbGFyYXRpb24nOlxuICAgICAgICAgICAgICBuLmRlY2xhcmF0aW9uLmRlY2xhcmF0aW9ucy5mb3JFYWNoKChkKSA9PlxuICAgICAgICAgICAgICAgIHJlY3Vyc2l2ZVBhdHRlcm5DYXB0dXJlKGQuaWQsIGlkID0+XG4gICAgICAgICAgICAgICAgICBtLm5hbWVzcGFjZS5zZXQoaWQubmFtZSwgY2FwdHVyZURvYyhkb2NTdHlsZVBhcnNlcnMsIGQsIG4pKSkpXG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbi5zcGVjaWZpZXJzLmZvckVhY2goKHMpID0+IHtcbiAgICAgICAgICBjb25zdCBleHBvcnRNZXRhID0ge31cbiAgICAgICAgICBsZXQgbG9jYWxcblxuICAgICAgICAgIHN3aXRjaCAocy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdFeHBvcnREZWZhdWx0U3BlY2lmaWVyJzpcbiAgICAgICAgICAgICAgaWYgKCFuLnNvdXJjZSkgcmV0dXJuXG4gICAgICAgICAgICAgIGxvY2FsID0gJ2RlZmF1bHQnXG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBjYXNlICdFeHBvcnROYW1lc3BhY2VTcGVjaWZpZXInOlxuICAgICAgICAgICAgICBtLm5hbWVzcGFjZS5zZXQocy5leHBvcnRlZC5uYW1lLCBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0TWV0YSwgJ25hbWVzcGFjZScsIHtcbiAgICAgICAgICAgICAgICBnZXQoKSB7IHJldHVybiByZXNvbHZlSW1wb3J0KG4pIH0sXG4gICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIGNhc2UgJ0V4cG9ydFNwZWNpZmllcic6XG4gICAgICAgICAgICAgIGlmICghbi5zb3VyY2UpIHtcbiAgICAgICAgICAgICAgICBtLm5hbWVzcGFjZS5zZXQocy5leHBvcnRlZC5uYW1lLCBhZGROYW1lc3BhY2UoZXhwb3J0TWV0YSwgcy5sb2NhbCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLy8gZWxzZSBmYWxscyB0aHJvdWdoXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBsb2NhbCA9IHMubG9jYWwubmFtZVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIHRvZG86IEpTRG9jXG4gICAgICAgICAgbS5yZWV4cG9ydHMuc2V0KHMuZXhwb3J0ZWQubmFtZSwgeyBsb2NhbCwgZ2V0SW1wb3J0OiAoKSA9PiByZXNvbHZlSW1wb3J0KG4pIH0pXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcblxuICAgIHJldHVybiBtXG4gIH1cblxuICAvKipcbiAgICogTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgY2hlY2sgZXhwbGljaXRseSByZS1leHBvcnRlZCBuYW1lcyBmb3IgZXhpc3RlbmNlXG4gICAqIGluIHRoZSBiYXNlIG5hbWVzcGFjZSwgYnV0IGl0IHdpbGwgZXhwYW5kIGFsbCBgZXhwb3J0ICogZnJvbSAnLi4uJ2AgZXhwb3J0c1xuICAgKiBpZiBub3QgZm91bmQgaW4gdGhlIGV4cGxpY2l0IG5hbWVzcGFjZS5cbiAgICogQHBhcmFtICB7c3RyaW5nfSAgbmFtZVxuICAgKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIGlmIGBuYW1lYCBpcyBleHBvcnRlZCBieSB0aGlzIG1vZHVsZS5cbiAgICovXG4gIGhhcyhuYW1lKSB7XG4gICAgaWYgKHRoaXMubmFtZXNwYWNlLmhhcyhuYW1lKSkgcmV0dXJuIHRydWVcbiAgICBpZiAodGhpcy5yZWV4cG9ydHMuaGFzKG5hbWUpKSByZXR1cm4gdHJ1ZVxuXG4gICAgLy8gZGVmYXVsdCBleHBvcnRzIG11c3QgYmUgZXhwbGljaXRseSByZS1leHBvcnRlZCAoIzMyOClcbiAgICBsZXQgZm91bmRJbm5lck1hcE5hbWUgPSBmYWxzZVxuICAgIGlmIChuYW1lICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jaWVzLmZvckVhY2goKGRlcCkgPT4ge1xuICAgICAgICBpZiAoIWZvdW5kSW5uZXJNYXBOYW1lKSB7XG4gICAgICAgICAgbGV0IGlubmVyTWFwID0gZGVwKClcblxuICAgICAgICAgIC8vIHRvZG86IHJlcG9ydCBhcyB1bnJlc29sdmVkP1xuICAgICAgICAgIGlmIChpbm5lck1hcCAmJiBpbm5lck1hcC5oYXMobmFtZSkpIGZvdW5kSW5uZXJNYXBOYW1lID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBmb3VuZElubmVyTWFwTmFtZVxuICB9XG5cbiAgLyoqXG4gICAqIGVuc3VyZSB0aGF0IGltcG9ydGVkIG5hbWUgZnVsbHkgcmVzb2x2ZXMuXG4gICAqIEBwYXJhbSAge1t0eXBlXX0gIG5hbWUgW2Rlc2NyaXB0aW9uXVxuICAgKiBAcmV0dXJuIHtCb29sZWFufSAgICAgIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIGhhc0RlZXAobmFtZSkge1xuICAgIGlmICh0aGlzLm5hbWVzcGFjZS5oYXMobmFtZSkpIHJldHVybiB7IGZvdW5kOiB0cnVlLCBwYXRoOiBbdGhpc10gfVxuXG4gICAgaWYgKHRoaXMucmVleHBvcnRzLmhhcyhuYW1lKSkge1xuICAgICAgY29uc3QgeyBsb2NhbCwgZ2V0SW1wb3J0IH0gPSB0aGlzLnJlZXhwb3J0cy5nZXQobmFtZSlcbiAgICAgICAgICAsIGltcG9ydGVkID0gZ2V0SW1wb3J0KClcblxuICAgICAgLy8gaWYgaW1wb3J0IGlzIGlnbm9yZWQsIHJldHVybiBleHBsaWNpdCAnbnVsbCdcbiAgICAgIGlmIChpbXBvcnRlZCA9PSBudWxsKSByZXR1cm4geyBmb3VuZDogdHJ1ZSwgcGF0aDogW3RoaXNdIH1cblxuICAgICAgLy8gc2FmZWd1YXJkIGFnYWluc3QgY3ljbGVzLCBvbmx5IGlmIG5hbWUgbWF0Y2hlc1xuICAgICAgaWYgKGltcG9ydGVkLnBhdGggPT09IHRoaXMucGF0aCAmJiBsb2NhbCA9PT0gbmFtZSkgcmV0dXJuIHsgZm91bmQ6IGZhbHNlLCBwYXRoOiBbdGhpc10gfVxuXG4gICAgICBjb25zdCBkZWVwID0gaW1wb3J0ZWQuaGFzRGVlcChsb2NhbClcbiAgICAgIGRlZXAucGF0aC51bnNoaWZ0KHRoaXMpXG5cbiAgICAgIHJldHVybiBkZWVwXG4gICAgfVxuXG5cbiAgICAvLyBkZWZhdWx0IGV4cG9ydHMgbXVzdCBiZSBleHBsaWNpdGx5IHJlLWV4cG9ydGVkICgjMzI4KVxuICAgIGxldCByZXR1cm5WYWx1ZSA9IHsgZm91bmQ6IGZhbHNlLCBwYXRoOiBbdGhpc10gfVxuICAgIGlmIChuYW1lICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgIHRoaXMuZGVwZW5kZW5jaWVzLmZvckVhY2goKGRlcCkgPT4ge1xuICAgICAgICBpZiAoIXJldHVyblZhbHVlLmZvdW5kKSB7XG4gICAgICAgICAgbGV0IGlubmVyTWFwID0gZGVwKClcbiAgICAgICAgICAvLyB0b2RvOiByZXBvcnQgYXMgdW5yZXNvbHZlZD9cbiAgICAgICAgICBpZiAoaW5uZXJNYXApIHtcblxuICAgICAgICAgICAgLy8gc2FmZWd1YXJkIGFnYWluc3QgY3ljbGVzXG4gICAgICAgICAgICBpZiAoaW5uZXJNYXAucGF0aCAhPT0gdGhpcy5wYXRoKSB7XG5cbiAgICAgICAgICAgICAgbGV0IGlubmVyVmFsdWUgPSBpbm5lck1hcC5oYXNEZWVwKG5hbWUpXG4gICAgICAgICAgICAgIGlmIChpbm5lclZhbHVlLmZvdW5kKSB7XG4gICAgICAgICAgICAgICAgaW5uZXJWYWx1ZS5wYXRoLnVuc2hpZnQodGhpcylcbiAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IGlubmVyVmFsdWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0dXJuVmFsdWVcbiAgfVxuXG4gIGdldChuYW1lKSB7XG4gICAgaWYgKHRoaXMubmFtZXNwYWNlLmhhcyhuYW1lKSkgcmV0dXJuIHRoaXMubmFtZXNwYWNlLmdldChuYW1lKVxuXG4gICAgaWYgKHRoaXMucmVleHBvcnRzLmhhcyhuYW1lKSkge1xuICAgICAgY29uc3QgeyBsb2NhbCwgZ2V0SW1wb3J0IH0gPSB0aGlzLnJlZXhwb3J0cy5nZXQobmFtZSlcbiAgICAgICAgICAsIGltcG9ydGVkID0gZ2V0SW1wb3J0KClcblxuICAgICAgLy8gaWYgaW1wb3J0IGlzIGlnbm9yZWQsIHJldHVybiBleHBsaWNpdCAnbnVsbCdcbiAgICAgIGlmIChpbXBvcnRlZCA9PSBudWxsKSByZXR1cm4gbnVsbFxuXG4gICAgICAvLyBzYWZlZ3VhcmQgYWdhaW5zdCBjeWNsZXMsIG9ubHkgaWYgbmFtZSBtYXRjaGVzXG4gICAgICBpZiAoaW1wb3J0ZWQucGF0aCA9PT0gdGhpcy5wYXRoICYmIGxvY2FsID09PSBuYW1lKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICAgIHJldHVybiBpbXBvcnRlZC5nZXQobG9jYWwpXG4gICAgfVxuXG4gICAgLy8gZGVmYXVsdCBleHBvcnRzIG11c3QgYmUgZXhwbGljaXRseSByZS1leHBvcnRlZCAoIzMyOClcbiAgICBsZXQgcmV0dXJuVmFsdWUgPSB1bmRlZmluZWRcbiAgICBpZiAobmFtZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICB0aGlzLmRlcGVuZGVuY2llcy5mb3JFYWNoKChkZXApID0+IHtcbiAgICAgICAgaWYgKHJldHVyblZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBsZXQgaW5uZXJNYXAgPSBkZXAoKVxuICAgICAgICAgIC8vIHRvZG86IHJlcG9ydCBhcyB1bnJlc29sdmVkP1xuICAgICAgICAgIGlmIChpbm5lck1hcCkge1xuXG4gICAgICAgICAgICAvLyBzYWZlZ3VhcmQgYWdhaW5zdCBjeWNsZXNcbiAgICAgICAgICAgIGlmIChpbm5lck1hcC5wYXRoICE9PSB0aGlzLnBhdGgpIHtcblxuICAgICAgICAgICAgICBsZXQgaW5uZXJWYWx1ZSA9IGlubmVyTWFwLmdldChuYW1lKVxuICAgICAgICAgICAgICBpZiAoaW5uZXJWYWx1ZSAhPT0gdW5kZWZpbmVkKSByZXR1cm5WYWx1ZSA9IGlubmVyVmFsdWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHJldHVyblZhbHVlXG4gIH1cblxuICBmb3JFYWNoKGNhbGxiYWNrLCB0aGlzQXJnKSB7XG4gICAgdGhpcy5uYW1lc3BhY2UuZm9yRWFjaCgodiwgbikgPT5cbiAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdiwgbiwgdGhpcykpXG5cbiAgICB0aGlzLnJlZXhwb3J0cy5mb3JFYWNoKCh7IGdldEltcG9ydCwgbG9jYWwgfSwgbmFtZSkgPT4ge1xuICAgICAgY29uc3QgcmVleHBvcnRlZCA9IGdldEltcG9ydCgpXG4gICAgICAvLyBjYW4ndCBsb29rIHVwIG1ldGEgZm9yIGlnbm9yZWQgcmUtZXhwb3J0cyAoIzM0OClcbiAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgcmVleHBvcnRlZCAmJiByZWV4cG9ydGVkLmdldChsb2NhbCksIG5hbWUsIHRoaXMpXG4gICAgfSlcblxuICAgIHRoaXMuZGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IGRlcCgpLmZvckVhY2goKHYsIG4pID0+XG4gICAgICBuICE9PSAnZGVmYXVsdCcgJiYgY2FsbGJhY2suY2FsbCh0aGlzQXJnLCB2LCBuLCB0aGlzKSkpXG4gIH1cblxuICAvLyB0b2RvOiBrZXlzLCB2YWx1ZXMsIGVudHJpZXM/XG5cbiAgcmVwb3J0RXJyb3JzKGNvbnRleHQsIGRlY2xhcmF0aW9uKSB7XG4gICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgbm9kZTogZGVjbGFyYXRpb24uc291cmNlLFxuICAgICAgbWVzc2FnZTogYFBhcnNlIGVycm9ycyBpbiBpbXBvcnRlZCBtb2R1bGUgJyR7ZGVjbGFyYXRpb24uc291cmNlLnZhbHVlfSc6IGAgK1xuICAgICAgICAgICAgICAgICAgYCR7dGhpcy5lcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoZSA9PiBgJHtlLm1lc3NhZ2V9ICgke2UubGluZU51bWJlcn06JHtlLmNvbHVtbn0pYClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcsICcpfWAsXG4gICAgfSlcbiAgfVxufVxuXG4vKipcbiAqIHBhcnNlIGRvY3MgZnJvbSB0aGUgZmlyc3Qgbm9kZSB0aGF0IGhhcyBsZWFkaW5nIGNvbW1lbnRzXG4gKiBAcGFyYW0gIHsuLi5bdHlwZV19IG5vZGVzIFtkZXNjcmlwdGlvbl1cbiAqIEByZXR1cm4ge3tkb2M6IG9iamVjdH19XG4gKi9cbmZ1bmN0aW9uIGNhcHR1cmVEb2MoZG9jU3R5bGVQYXJzZXJzLCAuLi5ub2Rlcykge1xuICBjb25zdCBtZXRhZGF0YSA9IHt9XG5cbiAgLy8gJ3NvbWUnIHNob3J0LWNpcmN1aXRzIG9uIGZpcnN0ICd0cnVlJ1xuICBub2Rlcy5zb21lKG4gPT4ge1xuICAgIGlmICghbi5sZWFkaW5nQ29tbWVudHMpIHJldHVybiBmYWxzZVxuXG4gICAgZm9yIChsZXQgbmFtZSBpbiBkb2NTdHlsZVBhcnNlcnMpIHtcbiAgICAgIGNvbnN0IGRvYyA9IGRvY1N0eWxlUGFyc2Vyc1tuYW1lXShuLmxlYWRpbmdDb21tZW50cylcbiAgICAgIGlmIChkb2MpIHtcbiAgICAgICAgbWV0YWRhdGEuZG9jID0gZG9jXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfSlcblxuICByZXR1cm4gbWV0YWRhdGFcbn1cblxuY29uc3QgYXZhaWxhYmxlRG9jU3R5bGVQYXJzZXJzID0ge1xuICBqc2RvYzogY2FwdHVyZUpzRG9jLFxuICB0b21kb2M6IGNhcHR1cmVUb21Eb2MsXG59XG5cbi8qKlxuICogcGFyc2UgSlNEb2MgZnJvbSBsZWFkaW5nIGNvbW1lbnRzXG4gKiBAcGFyYW0gIHsuLi5bdHlwZV19IGNvbW1lbnRzIFtkZXNjcmlwdGlvbl1cbiAqIEByZXR1cm4ge3tkb2M6IG9iamVjdH19XG4gKi9cbmZ1bmN0aW9uIGNhcHR1cmVKc0RvYyhjb21tZW50cykge1xuICBsZXQgZG9jXG5cbiAgLy8gY2FwdHVyZSBYU0RvY1xuICBjb21tZW50cy5mb3JFYWNoKGNvbW1lbnQgPT4ge1xuICAgIC8vIHNraXAgbm9uLWJsb2NrIGNvbW1lbnRzXG4gICAgaWYgKGNvbW1lbnQudmFsdWUuc2xpY2UoMCwgNCkgIT09ICcqXFxuIConKSByZXR1cm5cbiAgICB0cnkge1xuICAgICAgZG9jID0gZG9jdHJpbmUucGFyc2UoY29tbWVudC52YWx1ZSwgeyB1bndyYXA6IHRydWUgfSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8qIGRvbid0IGNhcmUsIGZvciBub3c/IG1heWJlIGFkZCB0byBgZXJyb3JzP2AgKi9cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIGRvY1xufVxuXG4vKipcbiAgKiBwYXJzZSBUb21Eb2Mgc2VjdGlvbiBmcm9tIGNvbW1lbnRzXG4gICovXG5mdW5jdGlvbiBjYXB0dXJlVG9tRG9jKGNvbW1lbnRzKSB7XG4gIC8vIGNvbGxlY3QgbGluZXMgdXAgdG8gZmlyc3QgcGFyYWdyYXBoIGJyZWFrXG4gIGNvbnN0IGxpbmVzID0gW11cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb21tZW50cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNvbW1lbnQgPSBjb21tZW50c1tpXVxuICAgIGlmIChjb21tZW50LnZhbHVlLm1hdGNoKC9eXFxzKiQvKSkgYnJlYWtcbiAgICBsaW5lcy5wdXNoKGNvbW1lbnQudmFsdWUudHJpbSgpKVxuICB9XG5cbiAgLy8gcmV0dXJuIGRvY3RyaW5lLWxpa2Ugb2JqZWN0XG4gIGNvbnN0IHN0YXR1c01hdGNoID0gbGluZXMuam9pbignICcpLm1hdGNoKC9eKFB1YmxpY3xJbnRlcm5hbHxEZXByZWNhdGVkKTpcXHMqKC4rKS8pXG4gIGlmIChzdGF0dXNNYXRjaCkge1xuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmlwdGlvbjogc3RhdHVzTWF0Y2hbMl0sXG4gICAgICB0YWdzOiBbe1xuICAgICAgICB0aXRsZTogc3RhdHVzTWF0Y2hbMV0udG9Mb3dlckNhc2UoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHN0YXR1c01hdGNoWzJdLFxuICAgICAgfV0sXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVHJhdmVyc2UgYSBwYXR0ZXJuL2lkZW50aWZpZXIgbm9kZSwgY2FsbGluZyAnY2FsbGJhY2snXG4gKiBmb3IgZWFjaCBsZWFmIGlkZW50aWZpZXIuXG4gKiBAcGFyYW0gIHtub2RlfSAgIHBhdHRlcm5cbiAqIEBwYXJhbSAge0Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHJldHVybiB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlY3Vyc2l2ZVBhdHRlcm5DYXB0dXJlKHBhdHRlcm4sIGNhbGxiYWNrKSB7XG4gIHN3aXRjaCAocGF0dGVybi50eXBlKSB7XG4gICAgY2FzZSAnSWRlbnRpZmllcic6IC8vIGJhc2UgY2FzZVxuICAgICAgY2FsbGJhY2socGF0dGVybilcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlICdPYmplY3RQYXR0ZXJuJzpcbiAgICAgIHBhdHRlcm4ucHJvcGVydGllcy5mb3JFYWNoKCh7IHZhbHVlIH0pID0+IHtcbiAgICAgICAgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUodmFsdWUsIGNhbGxiYWNrKVxuICAgICAgfSlcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlICdBcnJheVBhdHRlcm4nOlxuICAgICAgcGF0dGVybi5lbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50ID09IG51bGwpIHJldHVyblxuICAgICAgICByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZShlbGVtZW50LCBjYWxsYmFjaylcbiAgICAgIH0pXG4gICAgICBicmVha1xuICB9XG59XG4iXX0=

@@ -49,2 +49,2 @@ 'use strict';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvaGFzaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7a0JBT3dCLE87UUFZUixTLEdBQUEsUztRQVdBLFUsR0FBQSxVOzs7Ozs7QUF6QmhCLElBQU0sWUFBWSxLQUFLLFNBQXZCOztBQUVlLFNBQVMsT0FBVCxDQUFpQixJQUFqQixFQUF1QixLQUF2QixFQUE4QjtBQUMzQyxNQUFJLGlCQUFpQixLQUFyQixFQUE0QjtBQUMxQixjQUFVLElBQVYsRUFBZ0IsS0FBaEI7QUFDRCxHQUZELE1BRU8sSUFBSSxpQkFBaUIsTUFBckIsRUFBNkI7QUFDbEMsZUFBVyxJQUFYLEVBQWlCLEtBQWpCO0FBQ0QsR0FGTSxNQUVBO0FBQ0wsU0FBSyxNQUFMLENBQVksVUFBVSxLQUFWLEtBQW9CLFdBQWhDO0FBQ0Q7O0FBRUQsU0FBTyxJQUFQO0FBQ0Q7O0FBRU0sU0FBUyxTQUFULENBQW1CLElBQW5CLEVBQXlCLEtBQXpCLEVBQWdDO0FBQ3JDLE9BQUssTUFBTCxDQUFZLEdBQVo7QUFDQSxPQUFLLElBQUksSUFBSSxDQUFiLEVBQWdCLElBQUksTUFBTSxNQUExQixFQUFrQyxHQUFsQyxFQUF1QztBQUNyQyxZQUFRLElBQVIsRUFBYyxNQUFNLENBQU4sQ0FBZDtBQUNBLFNBQUssTUFBTCxDQUFZLEdBQVo7QUFDRDtBQUNELE9BQUssTUFBTCxDQUFZLEdBQVo7O0FBRUEsU0FBTyxJQUFQO0FBQ0Q7O0FBRU0sU0FBUyxVQUFULENBQW9CLElBQXBCLEVBQTBCLE1BQTFCLEVBQWtDO0FBQ3ZDLE9BQUssTUFBTCxDQUFZLEdBQVo7QUFDQSxTQUFPLElBQVAsQ0FBWSxNQUFaLEVBQW9CLElBQXBCLEdBQTJCLE9BQTNCLENBQW1DLGVBQU87QUFDeEMsU0FBSyxNQUFMLENBQVksVUFBVSxHQUFWLENBQVo7QUFDQSxTQUFLLE1BQUwsQ0FBWSxHQUFaO0FBQ0EsWUFBUSxJQUFSLEVBQWMsT0FBTyxHQUFQLENBQWQ7QUFDQSxTQUFLLE1BQUwsQ0FBWSxHQUFaO0FBQ0QsR0FMRDtBQU1BLE9BQUssTUFBTCxDQUFZLEdBQVo7O0FBRUEsU0FBTyxJQUFQO0FBQ0QiLCJmaWxlIjoiY29yZS9oYXNoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiB1dGlsaXRpZXMgZm9yIGhhc2hpbmcgY29uZmlnIG9iamVjdHMuXG4gKiBiYXNpY2FsbHkgaXRlcmF0aXZlbHkgdXBkYXRlcyBoYXNoIHdpdGggYSBKU09OLWxpa2UgZm9ybWF0XG4gKi9cblxuY29uc3Qgc3RyaW5naWZ5ID0gSlNPTi5zdHJpbmdpZnlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaGFzaGlmeShoYXNoLCB2YWx1ZSkge1xuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIGhhc2hBcnJheShoYXNoLCB2YWx1ZSlcbiAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgIGhhc2hPYmplY3QoaGFzaCwgdmFsdWUpXG4gIH0gZWxzZSB7XG4gICAgaGFzaC51cGRhdGUoc3RyaW5naWZ5KHZhbHVlKSB8fCAndW5kZWZpbmVkJylcbiAgfVxuXG4gIHJldHVybiBoYXNoXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNoQXJyYXkoaGFzaCwgYXJyYXkpIHtcbiAgaGFzaC51cGRhdGUoJ1snKVxuICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgaGFzaGlmeShoYXNoLCBhcnJheVtpXSlcbiAgICBoYXNoLnVwZGF0ZSgnLCcpXG4gIH1cbiAgaGFzaC51cGRhdGUoJ10nKVxuXG4gIHJldHVybiBoYXNoXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNoT2JqZWN0KGhhc2gsIG9iamVjdCkge1xuICBoYXNoLnVwZGF0ZSgneycpXG4gIE9iamVjdC5rZXlzKG9iamVjdCkuc29ydCgpLmZvckVhY2goa2V5ID0+IHtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdpZnkoa2V5KSlcbiAgICBoYXNoLnVwZGF0ZSgnOicpXG4gICAgaGFzaGlmeShoYXNoLCBvYmplY3Rba2V5XSlcbiAgICBoYXNoLnVwZGF0ZSgnLCcpXG4gIH0pXG4gIGhhc2gudXBkYXRlKCd9JylcblxuICByZXR1cm4gaGFzaFxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvaGFzaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7a0JBT3dCLE87UUFZUixTLEdBQUEsUztRQVdBLFUsR0FBQSxVO0FBOUJoQjs7Ozs7QUFLQSxJQUFNLFlBQVksS0FBSyxTQUF2Qjs7QUFFZSxTQUFTLE9BQVQsQ0FBaUIsSUFBakIsRUFBdUIsS0FBdkIsRUFBOEI7QUFDM0MsTUFBSSxpQkFBaUIsS0FBckIsRUFBNEI7QUFDMUIsY0FBVSxJQUFWLEVBQWdCLEtBQWhCO0FBQ0QsR0FGRCxNQUVPLElBQUksaUJBQWlCLE1BQXJCLEVBQTZCO0FBQ2xDLGVBQVcsSUFBWCxFQUFpQixLQUFqQjtBQUNELEdBRk0sTUFFQTtBQUNMLFNBQUssTUFBTCxDQUFZLFVBQVUsS0FBVixLQUFvQixXQUFoQztBQUNEOztBQUVELFNBQU8sSUFBUDtBQUNEOztBQUVNLFNBQVMsU0FBVCxDQUFtQixJQUFuQixFQUF5QixLQUF6QixFQUFnQztBQUNyQyxPQUFLLE1BQUwsQ0FBWSxHQUFaO0FBQ0EsT0FBSyxJQUFJLElBQUksQ0FBYixFQUFnQixJQUFJLE1BQU0sTUFBMUIsRUFBa0MsR0FBbEMsRUFBdUM7QUFDckMsWUFBUSxJQUFSLEVBQWMsTUFBTSxDQUFOLENBQWQ7QUFDQSxTQUFLLE1BQUwsQ0FBWSxHQUFaO0FBQ0Q7QUFDRCxPQUFLLE1BQUwsQ0FBWSxHQUFaOztBQUVBLFNBQU8sSUFBUDtBQUNEOztBQUVNLFNBQVMsVUFBVCxDQUFvQixJQUFwQixFQUEwQixNQUExQixFQUFrQztBQUN2QyxPQUFLLE1BQUwsQ0FBWSxHQUFaO0FBQ0EsU0FBTyxJQUFQLENBQVksTUFBWixFQUFvQixJQUFwQixHQUEyQixPQUEzQixDQUFtQyxlQUFPO0FBQ3hDLFNBQUssTUFBTCxDQUFZLFVBQVUsR0FBVixDQUFaO0FBQ0EsU0FBSyxNQUFMLENBQVksR0FBWjtBQUNBLFlBQVEsSUFBUixFQUFjLE9BQU8sR0FBUCxDQUFkO0FBQ0EsU0FBSyxNQUFMLENBQVksR0FBWjtBQUNELEdBTEQ7QUFNQSxPQUFLLE1BQUwsQ0FBWSxHQUFaOztBQUVBLFNBQU8sSUFBUDtBQUNEIiwiZmlsZSI6ImNvcmUvaGFzaC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogdXRpbGl0aWVzIGZvciBoYXNoaW5nIGNvbmZpZyBvYmplY3RzLlxuICogYmFzaWNhbGx5IGl0ZXJhdGl2ZWx5IHVwZGF0ZXMgaGFzaCB3aXRoIGEgSlNPTi1saWtlIGZvcm1hdFxuICovXG5cbmNvbnN0IHN0cmluZ2lmeSA9IEpTT04uc3RyaW5naWZ5XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGhhc2hpZnkoaGFzaCwgdmFsdWUpIHtcbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICBoYXNoQXJyYXkoaGFzaCwgdmFsdWUpXG4gIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICBoYXNoT2JqZWN0KGhhc2gsIHZhbHVlKVxuICB9IGVsc2Uge1xuICAgIGhhc2gudXBkYXRlKHN0cmluZ2lmeSh2YWx1ZSkgfHwgJ3VuZGVmaW5lZCcpXG4gIH1cblxuICByZXR1cm4gaGFzaFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzaEFycmF5KGhhc2gsIGFycmF5KSB7XG4gIGhhc2gudXBkYXRlKCdbJylcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgIGhhc2hpZnkoaGFzaCwgYXJyYXlbaV0pXG4gICAgaGFzaC51cGRhdGUoJywnKVxuICB9XG4gIGhhc2gudXBkYXRlKCddJylcblxuICByZXR1cm4gaGFzaFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzaE9iamVjdChoYXNoLCBvYmplY3QpIHtcbiAgaGFzaC51cGRhdGUoJ3snKVxuICBPYmplY3Qua2V5cyhvYmplY3QpLnNvcnQoKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgaGFzaC51cGRhdGUoc3RyaW5naWZ5KGtleSkpXG4gICAgaGFzaC51cGRhdGUoJzonKVxuICAgIGhhc2hpZnkoaGFzaCwgb2JqZWN0W2tleV0pXG4gICAgaGFzaC51cGRhdGUoJywnKVxuICB9KVxuICBoYXNoLnVwZGF0ZSgnfScpXG5cbiAgcmV0dXJuIGhhc2hcbn1cbiJdfQ==

@@ -51,2 +51,2 @@ 'use strict';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvaWdub3JlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztrQkFxQndCLE07O0FBckJ4Qjs7QUFDQTs7Ozs7OztBQUdBLElBQUksa0JBQUo7QUFBQSxJQUFlLHFCQUFmO0FBQ0EsU0FBUyxlQUFULE9BQXVDO0FBQUEsTUFBWixRQUFZLFFBQVosUUFBWTs7QUFDckMsTUFBSSxhQUFhLGFBQWEsWUFBOUIsRUFBNEM7QUFDMUMsV0FBTyxTQUFQO0FBQ0Q7OztBQUdELGlCQUFlLFFBQWY7OztBQUdBLGNBQVksdUJBQXVCLFFBQXZCLEdBQ1IscUJBQVEsU0FBUyxtQkFBVCxDQUFSLENBRFEsR0FFUixFQUFFLEtBQUs7QUFBQSxhQUFNLElBQU47QUFBQSxLQUFQLEVBRkosQzs7QUFJQSxTQUFPLFNBQVA7QUFDRDs7QUFFYyxTQUFTLE1BQVQsQ0FBZ0IsSUFBaEIsRUFBc0IsT0FBdEIsRUFBK0I7O0FBRTVDLE1BQU0sZ0JBQWdCLFFBQVEsUUFBUixDQUFpQixlQUFqQixJQUNsQixHQUFHLE1BQUgsQ0FBVSxRQUFRLFFBQVIsQ0FBaUIsZUFBakIsQ0FBVixDQURrQixHQUVsQixDQUFDLGNBQUQsQ0FGSjs7O0FBS0EsTUFBSSxDQUFDLGdCQUFnQixPQUFoQixFQUF5QixHQUF6QixDQUE2QixtQkFBUSxJQUFSLENBQTdCLENBQUwsRUFBa0QsT0FBTyxJQUFQOztBQUVsRCxNQUFJLGNBQWMsTUFBZCxLQUF5QixDQUE3QixFQUFnQyxPQUFPLEtBQVA7O0FBRWhDLE9BQUssSUFBSSxJQUFJLENBQWIsRUFBZ0IsSUFBSSxjQUFjLE1BQWxDLEVBQTBDLEdBQTFDLEVBQStDO0FBQzdDLFFBQUksUUFBUSxJQUFJLE1BQUosQ0FBVyxjQUFjLENBQWQsQ0FBWCxDQUFaO0FBQ0EsUUFBSSxNQUFNLElBQU4sQ0FBVyxJQUFYLENBQUosRUFBc0IsT0FBTyxJQUFQO0FBQ3ZCOztBQUVELFNBQU8sS0FBUDtBQUNEIiwiZmlsZSI6ImNvcmUvaWdub3JlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0bmFtZSB9IGZyb20gJ3BhdGgnXG5pbXBvcnQgU2V0IGZyb20gJ2VzNi1zZXQnXG5cbi8vIG9uZS1zaG90IG1lbW9pemVkXG5sZXQgY2FjaGVkU2V0LCBsYXN0U2V0dGluZ3NcbmZ1bmN0aW9uIHZhbGlkRXh0ZW5zaW9ucyh7IHNldHRpbmdzIH0pIHtcbiAgaWYgKGNhY2hlZFNldCAmJiBzZXR0aW5ncyA9PT0gbGFzdFNldHRpbmdzKSB7XG4gICAgcmV0dXJuIGNhY2hlZFNldFxuICB9XG5cbiAgLy8gdG9kbzogYWRkICdtanMnP1xuICBsYXN0U2V0dGluZ3MgPSBzZXR0aW5nc1xuICAvLyBicmVha2luZzogZGVmYXVsdCB0byAnLmpzJ1xuICAvLyBjYWNoZWRTZXQgPSBuZXcgU2V0KHNldHRpbmdzWydpbXBvcnQvZXh0ZW5zaW9ucyddIHx8IFsgJy5qcycgXSlcbiAgY2FjaGVkU2V0ID0gJ2ltcG9ydC9leHRlbnNpb25zJyBpbiBzZXR0aW5nc1xuICAgID8gbmV3IFNldChzZXR0aW5nc1snaW1wb3J0L2V4dGVuc2lvbnMnXSlcbiAgICA6IHsgaGFzOiAoKSA9PiB0cnVlIH0gLy8gdGhlIHNldCBvZiBhbGwgZWxlbWVudHNcblxuICByZXR1cm4gY2FjaGVkU2V0XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlnbm9yZShwYXRoLCBjb250ZXh0KSB7XG4gIC8vIGlnbm9yZSBub2RlX21vZHVsZXMgYnkgZGVmYXVsdFxuICBjb25zdCBpZ25vcmVTdHJpbmdzID0gY29udGV4dC5zZXR0aW5nc1snaW1wb3J0L2lnbm9yZSddXG4gICAgPyBbXS5jb25jYXQoY29udGV4dC5zZXR0aW5nc1snaW1wb3J0L2lnbm9yZSddKVxuICAgIDogWydub2RlX21vZHVsZXMnXVxuXG4gIC8vIGNoZWNrIGV4dGVuc2lvbiB3aGl0ZWxpc3QgZmlyc3QgKGNoZWFwKVxuICBpZiAoIXZhbGlkRXh0ZW5zaW9ucyhjb250ZXh0KS5oYXMoZXh0bmFtZShwYXRoKSkpIHJldHVybiB0cnVlXG5cbiAgaWYgKGlnbm9yZVN0cmluZ3MubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2VcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGlnbm9yZVN0cmluZ3MubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcmVnZXggPSBuZXcgUmVnRXhwKGlnbm9yZVN0cmluZ3NbaV0pXG4gICAgaWYgKHJlZ2V4LnRlc3QocGF0aCkpIHJldHVybiB0cnVlXG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvaWdub3JlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztrQkFxQndCLE07O0FBckJ4Qjs7QUFDQTs7Ozs7O0FBRUE7QUFDQSxJQUFJLGtCQUFKO0FBQUEsSUFBZSxxQkFBZjtBQUNBLFNBQVMsZUFBVCxPQUF1QztBQUFBLE1BQVosUUFBWSxRQUFaLFFBQVk7O0FBQ3JDLE1BQUksYUFBYSxhQUFhLFlBQTlCLEVBQTRDO0FBQzFDLFdBQU8sU0FBUDtBQUNEOztBQUVEO0FBQ0EsaUJBQWUsUUFBZjtBQUNBO0FBQ0E7QUFDQSxjQUFZLHVCQUF1QixRQUF2QixHQUNSLHFCQUFRLFNBQVMsbUJBQVQsQ0FBUixDQURRLEdBRVIsRUFBRSxLQUFLO0FBQUEsYUFBTSxJQUFOO0FBQUEsS0FBUCxFQUZKLENBVHFDLENBV2I7O0FBRXhCLFNBQU8sU0FBUDtBQUNEOztBQUVjLFNBQVMsTUFBVCxDQUFnQixJQUFoQixFQUFzQixPQUF0QixFQUErQjtBQUM1QztBQUNBLE1BQU0sZ0JBQWdCLFFBQVEsUUFBUixDQUFpQixlQUFqQixJQUNsQixHQUFHLE1BQUgsQ0FBVSxRQUFRLFFBQVIsQ0FBaUIsZUFBakIsQ0FBVixDQURrQixHQUVsQixDQUFDLGNBQUQsQ0FGSjs7QUFJQTtBQUNBLE1BQUksQ0FBQyxnQkFBZ0IsT0FBaEIsRUFBeUIsR0FBekIsQ0FBNkIsbUJBQVEsSUFBUixDQUE3QixDQUFMLEVBQWtELE9BQU8sSUFBUDs7QUFFbEQsTUFBSSxjQUFjLE1BQWQsS0FBeUIsQ0FBN0IsRUFBZ0MsT0FBTyxLQUFQOztBQUVoQyxPQUFLLElBQUksSUFBSSxDQUFiLEVBQWdCLElBQUksY0FBYyxNQUFsQyxFQUEwQyxHQUExQyxFQUErQztBQUM3QyxRQUFJLFFBQVEsSUFBSSxNQUFKLENBQVcsY0FBYyxDQUFkLENBQVgsQ0FBWjtBQUNBLFFBQUksTUFBTSxJQUFOLENBQVcsSUFBWCxDQUFKLEVBQXNCLE9BQU8sSUFBUDtBQUN2Qjs7QUFFRCxTQUFPLEtBQVA7QUFDRCIsImZpbGUiOiJjb3JlL2lnbm9yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4dG5hbWUgfSBmcm9tICdwYXRoJ1xuaW1wb3J0IFNldCBmcm9tICdlczYtc2V0J1xuXG4vLyBvbmUtc2hvdCBtZW1vaXplZFxubGV0IGNhY2hlZFNldCwgbGFzdFNldHRpbmdzXG5mdW5jdGlvbiB2YWxpZEV4dGVuc2lvbnMoeyBzZXR0aW5ncyB9KSB7XG4gIGlmIChjYWNoZWRTZXQgJiYgc2V0dGluZ3MgPT09IGxhc3RTZXR0aW5ncykge1xuICAgIHJldHVybiBjYWNoZWRTZXRcbiAgfVxuXG4gIC8vIHRvZG86IGFkZCAnbWpzJz9cbiAgbGFzdFNldHRpbmdzID0gc2V0dGluZ3NcbiAgLy8gYnJlYWtpbmc6IGRlZmF1bHQgdG8gJy5qcydcbiAgLy8gY2FjaGVkU2V0ID0gbmV3IFNldChzZXR0aW5nc1snaW1wb3J0L2V4dGVuc2lvbnMnXSB8fCBbICcuanMnIF0pXG4gIGNhY2hlZFNldCA9ICdpbXBvcnQvZXh0ZW5zaW9ucycgaW4gc2V0dGluZ3NcbiAgICA/IG5ldyBTZXQoc2V0dGluZ3NbJ2ltcG9ydC9leHRlbnNpb25zJ10pXG4gICAgOiB7IGhhczogKCkgPT4gdHJ1ZSB9IC8vIHRoZSBzZXQgb2YgYWxsIGVsZW1lbnRzXG5cbiAgcmV0dXJuIGNhY2hlZFNldFxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpZ25vcmUocGF0aCwgY29udGV4dCkge1xuICAvLyBpZ25vcmUgbm9kZV9tb2R1bGVzIGJ5IGRlZmF1bHRcbiAgY29uc3QgaWdub3JlU3RyaW5ncyA9IGNvbnRleHQuc2V0dGluZ3NbJ2ltcG9ydC9pZ25vcmUnXVxuICAgID8gW10uY29uY2F0KGNvbnRleHQuc2V0dGluZ3NbJ2ltcG9ydC9pZ25vcmUnXSlcbiAgICA6IFsnbm9kZV9tb2R1bGVzJ11cblxuICAvLyBjaGVjayBleHRlbnNpb24gd2hpdGVsaXN0IGZpcnN0IChjaGVhcClcbiAgaWYgKCF2YWxpZEV4dGVuc2lvbnMoY29udGV4dCkuaGFzKGV4dG5hbWUocGF0aCkpKSByZXR1cm4gdHJ1ZVxuXG4gIGlmIChpZ25vcmVTdHJpbmdzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpZ25vcmVTdHJpbmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cChpZ25vcmVTdHJpbmdzW2ldKVxuICAgIGlmIChyZWdleC50ZXN0KHBhdGgpKSByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG4iXX0=

@@ -34,6 +34,12 @@ 'use strict';

function isExternalPath(path, name, settings) {
var folders = settings && settings['import/external-module-folders'] || ['node_modules'];
return !path || folders.some(function (folder) {
return -1 < path.indexOf((0, _path.join)(folder, name));
});
}
var externalModuleRegExp = /^\w/;
function isExternalModule(name, settings, path) {
if (!externalModuleRegExp.test(name)) return false;
return !path || -1 < path.indexOf((0, _path.join)('node_modules', name));
return externalModuleRegExp.test(name) && isExternalPath(path, name, settings);
}

@@ -47,4 +53,3 @@

function isInternalModule(name, settings, path) {
if (!externalModuleRegExp.test(name)) return false;
return path && -1 === path.indexOf((0, _path.join)('node_modules', name));
return externalModuleRegExp.test(name) && !isExternalPath(path, name, settings);
}

@@ -70,2 +75,2 @@

}
//# sourceMappingURL=data:application/json;base64,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VHlwZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb25kIGZyb20gJ2xvZGFzaC5jb25kJ1xuaW1wb3J0IGJ1aWx0aW5Nb2R1bGVzIGZyb20gJ2J1aWx0aW4tbW9kdWxlcydcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICcuL3Jlc29sdmUnXG5cbmZ1bmN0aW9uIGNvbnN0YW50KHZhbHVlKSB7XG4gIHJldHVybiAoKSA9PiB2YWx1ZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCdWlsdEluKG5hbWUsIHNldHRpbmdzKSB7XG4gIGNvbnN0IGV4dHJhcyA9IChzZXR0aW5ncyAmJiBzZXR0aW5nc1snaW1wb3J0L2NvcmUtbW9kdWxlcyddKSB8fCBbXVxuICByZXR1cm4gYnVpbHRpbk1vZHVsZXMuaW5kZXhPZihuYW1lKSAhPT0gLTEgfHwgZXh0cmFzLmluZGV4T2YobmFtZSkgPiAtMVxufVxuXG5jb25zdCBleHRlcm5hbE1vZHVsZVJlZ0V4cCA9IC9eXFx3L1xuZnVuY3Rpb24gaXNFeHRlcm5hbE1vZHVsZShuYW1lLCBzZXR0aW5ncywgcGF0aCkge1xuICBpZiAoIWV4dGVybmFsTW9kdWxlUmVnRXhwLnRlc3QobmFtZSkpIHJldHVybiBmYWxzZVxuICByZXR1cm4gKCFwYXRoIHx8IC0xIDwgcGF0aC5pbmRleE9mKGpvaW4oJ25vZGVfbW9kdWxlcycsIG5hbWUpKSlcbn1cblxuY29uc3Qgc2NvcGVkUmVnRXhwID0gL15AXFx3K1xcL1xcdysvXG5mdW5jdGlvbiBpc1Njb3BlZChuYW1lKSB7XG4gIHJldHVybiBzY29wZWRSZWdFeHAudGVzdChuYW1lKVxufVxuXG5mdW5jdGlvbiBpc0ludGVybmFsTW9kdWxlKG5hbWUsIHNldHRpbmdzLCBwYXRoKSB7XG4gIGlmICghZXh0ZXJuYWxNb2R1bGVSZWdFeHAudGVzdChuYW1lKSkgcmV0dXJuIGZhbHNlXG4gIHJldHVybiAocGF0aCAmJiAtMSA9PT0gcGF0aC5pbmRleE9mKGpvaW4oJ25vZGVfbW9kdWxlcycsIG5hbWUpKSlcbn1cblxuZnVuY3Rpb24gaXNSZWxhdGl2ZVRvUGFyZW50KG5hbWUpIHtcbiAgcmV0dXJuIG5hbWUuaW5kZXhPZignLi4vJykgPT09IDBcbn1cblxuY29uc3QgaW5kZXhGaWxlcyA9IFsnLicsICcuLycsICcuL2luZGV4JywgJy4vaW5kZXguanMnXVxuZnVuY3Rpb24gaXNJbmRleChuYW1lKSB7XG4gIHJldHVybiBpbmRleEZpbGVzLmluZGV4T2YobmFtZSkgIT09IC0xXG59XG5cbmZ1bmN0aW9uIGlzUmVsYXRpdmVUb1NpYmxpbmcobmFtZSkge1xuICByZXR1cm4gbmFtZS5pbmRleE9mKCcuLycpID09PSAwXG59XG5cbmNvbnN0IHR5cGVUZXN0ID0gY29uZChbXG4gIFtpc0J1aWx0SW4sIGNvbnN0YW50KCdidWlsdGluJyldLFxuICBbaXNFeHRlcm5hbE1vZHVsZSwgY29uc3RhbnQoJ2V4dGVybmFsJyldLFxuICBbaXNTY29wZWQsIGNvbnN0YW50KCdleHRlcm5hbCcpXSxcbiAgW2lzSW50ZXJuYWxNb2R1bGUsIGNvbnN0YW50KCdpbnRlcm5hbCcpXSxcbiAgW2lzUmVsYXRpdmVUb1BhcmVudCwgY29uc3RhbnQoJ3BhcmVudCcpXSxcbiAgW2lzSW5kZXgsIGNvbnN0YW50KCdpbmRleCcpXSxcbiAgW2lzUmVsYXRpdmVUb1NpYmxpbmcsIGNvbnN0YW50KCdzaWJsaW5nJyldLFxuICBbY29uc3RhbnQodHJ1ZSksIGNvbnN0YW50KCd1bmtub3duJyldLFxuXSlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVzb2x2ZUltcG9ydFR5cGUobmFtZSwgY29udGV4dCkge1xuICByZXR1cm4gdHlwZVRlc3QobmFtZSwgY29udGV4dC5zZXR0aW5ncywgcmVzb2x2ZShuYW1lLCBjb250ZXh0KSlcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,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SUFBM0IsRUFBaUMsT0FBakMsRUFBMEM7QUFDdkQsU0FBTyxTQUFTLElBQVQsRUFBZSxRQUFRLFFBQXZCLEVBQWlDLHVCQUFRLElBQVIsRUFBYyxPQUFkLENBQWpDLENBQVA7QUFDRCIsImZpbGUiOiJjb3JlL2ltcG9ydFR5cGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29uZCBmcm9tICdsb2Rhc2guY29uZCdcbmltcG9ydCBidWlsdGluTW9kdWxlcyBmcm9tICdidWlsdGluLW1vZHVsZXMnXG5pbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCdcblxuaW1wb3J0IHJlc29sdmUgZnJvbSAnLi9yZXNvbHZlJ1xuXG5mdW5jdGlvbiBjb25zdGFudCh2YWx1ZSkge1xuICByZXR1cm4gKCkgPT4gdmFsdWVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQnVpbHRJbihuYW1lLCBzZXR0aW5ncykge1xuICBjb25zdCBleHRyYXMgPSAoc2V0dGluZ3MgJiYgc2V0dGluZ3NbJ2ltcG9ydC9jb3JlLW1vZHVsZXMnXSkgfHwgW11cbiAgcmV0dXJuIGJ1aWx0aW5Nb2R1bGVzLmluZGV4T2YobmFtZSkgIT09IC0xIHx8IGV4dHJhcy5pbmRleE9mKG5hbWUpID4gLTFcbn1cblxuZnVuY3Rpb24gaXNFeHRlcm5hbFBhdGgocGF0aCwgbmFtZSwgc2V0dGluZ3MpIHtcbiAgY29uc3QgZm9sZGVycyA9IChzZXR0aW5ncyAmJiBzZXR0aW5nc1snaW1wb3J0L2V4dGVybmFsLW1vZHVsZS1mb2xkZXJzJ10pIHx8IFsnbm9kZV9tb2R1bGVzJ11cbiAgcmV0dXJuICFwYXRoIHx8IGZvbGRlcnMuc29tZShmb2xkZXIgPT4gLTEgPCBwYXRoLmluZGV4T2Yoam9pbihmb2xkZXIsIG5hbWUpKSlcbn1cblxuY29uc3QgZXh0ZXJuYWxNb2R1bGVSZWdFeHAgPSAvXlxcdy9cbmZ1bmN0aW9uIGlzRXh0ZXJuYWxNb2R1bGUobmFtZSwgc2V0dGluZ3MsIHBhdGgpIHtcbiAgcmV0dXJuIGV4dGVybmFsTW9kdWxlUmVnRXhwLnRlc3QobmFtZSkgJiYgaXNFeHRlcm5hbFBhdGgocGF0aCwgbmFtZSwgc2V0dGluZ3MpXG59XG5cbmNvbnN0IHNjb3BlZFJlZ0V4cCA9IC9eQFxcdytcXC9cXHcrL1xuZnVuY3Rpb24gaXNTY29wZWQobmFtZSkge1xuICByZXR1cm4gc2NvcGVkUmVnRXhwLnRlc3QobmFtZSlcbn1cblxuZnVuY3Rpb24gaXNJbnRlcm5hbE1vZHVsZShuYW1lLCBzZXR0aW5ncywgcGF0aCkge1xuICByZXR1cm4gZXh0ZXJuYWxNb2R1bGVSZWdFeHAudGVzdChuYW1lKSAmJiAhaXNFeHRlcm5hbFBhdGgocGF0aCwgbmFtZSwgc2V0dGluZ3MpXG59XG5cbmZ1bmN0aW9uIGlzUmVsYXRpdmVUb1BhcmVudChuYW1lKSB7XG4gIHJldHVybiBuYW1lLmluZGV4T2YoJy4uLycpID09PSAwXG59XG5cbmNvbnN0IGluZGV4RmlsZXMgPSBbJy4nLCAnLi8nLCAnLi9pbmRleCcsICcuL2luZGV4LmpzJ11cbmZ1bmN0aW9uIGlzSW5kZXgobmFtZSkge1xuICByZXR1cm4gaW5kZXhGaWxlcy5pbmRleE9mKG5hbWUpICE9PSAtMVxufVxuXG5mdW5jdGlvbiBpc1JlbGF0aXZlVG9TaWJsaW5nKG5hbWUpIHtcbiAgcmV0dXJuIG5hbWUuaW5kZXhPZignLi8nKSA9PT0gMFxufVxuXG5jb25zdCB0eXBlVGVzdCA9IGNvbmQoW1xuICBbaXNCdWlsdEluLCBjb25zdGFudCgnYnVpbHRpbicpXSxcbiAgW2lzRXh0ZXJuYWxNb2R1bGUsIGNvbnN0YW50KCdleHRlcm5hbCcpXSxcbiAgW2lzU2NvcGVkLCBjb25zdGFudCgnZXh0ZXJuYWwnKV0sXG4gIFtpc0ludGVybmFsTW9kdWxlLCBjb25zdGFudCgnaW50ZXJuYWwnKV0sXG4gIFtpc1JlbGF0aXZlVG9QYXJlbnQsIGNvbnN0YW50KCdwYXJlbnQnKV0sXG4gIFtpc0luZGV4LCBjb25zdGFudCgnaW5kZXgnKV0sXG4gIFtpc1JlbGF0aXZlVG9TaWJsaW5nLCBjb25zdGFudCgnc2libGluZycpXSxcbiAgW2NvbnN0YW50KHRydWUpLCBjb25zdGFudCgndW5rbm93bicpXSxcbl0pXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlc29sdmVJbXBvcnRUeXBlKG5hbWUsIGNvbnRleHQpIHtcbiAgcmV0dXJuIHR5cGVUZXN0KG5hbWUsIGNvbnRleHQuc2V0dGluZ3MsIHJlc29sdmUobmFtZSwgY29udGV4dCkpXG59XG4iXX0=

@@ -42,2 +42,2 @@ 'use strict';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvbW9kdWxlLXJlcXVpcmUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O2tCQVd3QixhOztBQVh4Qjs7OztBQUNBOztJQUFZLEk7Ozs7Ozs7QUFHWixTQUFTLFlBQVQsQ0FBc0IsUUFBdEIsRUFBZ0M7QUFDOUIsTUFBSSxNQUFNLHFCQUFXLFFBQVgsQ0FBVjtBQUNBLE1BQUksUUFBSixHQUFlLFFBQWY7QUFDQSxNQUFJLEtBQUosR0FBWSxpQkFBTyxnQkFBUCxDQUF3QixLQUFLLE9BQUwsQ0FBYSxRQUFiLENBQXhCLENBQVo7QUFDQSxTQUFPLEdBQVA7QUFDRDs7QUFFYyxTQUFTLGFBQVQsQ0FBdUIsQ0FBdkIsRUFBMEI7QUFDdkMsTUFBSTs7QUFFRixRQUFNLGFBQWEsUUFBUSxPQUFSLENBQWdCLFFBQWhCLENBQW5CO0FBQ0EsUUFBTSxlQUFlLGFBQWEsVUFBYixDQUFyQjtBQUNBLFdBQU8sUUFBUSxpQkFBTyxnQkFBUCxDQUF3QixDQUF4QixFQUEyQixZQUEzQixDQUFSLENBQVA7QUFDRCxHQUxELENBS0UsT0FBTSxHQUFOLEVBQVcsQyxZQUFnQjs7QUFFN0IsTUFBSTs7QUFFRixXQUFPLFFBQVEsSUFBUixDQUFhLE9BQWIsQ0FBcUIsQ0FBckIsQ0FBUDtBQUNELEdBSEQsQ0FHRSxPQUFNLEdBQU4sRUFBVyxDQUFnQixDOzs7QUFHN0IsU0FBTyxRQUFRLENBQVIsQ0FBUDtBQUNEIiwiZmlsZSI6ImNvcmUvbW9kdWxlLXJlcXVpcmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTW9kdWxlIGZyb20gJ21vZHVsZSdcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCdcblxuLy8gYm9ycm93ZWQgZnJvbSBiYWJlbC1lc2xpbnRcbmZ1bmN0aW9uIGNyZWF0ZU1vZHVsZShmaWxlbmFtZSkge1xuICB2YXIgbW9kID0gbmV3IE1vZHVsZShmaWxlbmFtZSlcbiAgbW9kLmZpbGVuYW1lID0gZmlsZW5hbWVcbiAgbW9kLnBhdGhzID0gTW9kdWxlLl9ub2RlTW9kdWxlUGF0aHMocGF0aC5kaXJuYW1lKGZpbGVuYW1lKSlcbiAgcmV0dXJuIG1vZFxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtb2R1bGVSZXF1aXJlKHApIHtcbiAgdHJ5IHtcbiAgICAvLyBhdHRlbXB0IHRvIGdldCBlc3ByZWUgcmVsYXRpdmUgdG8gZXNsaW50XG4gICAgY29uc3QgZXNsaW50UGF0aCA9IHJlcXVpcmUucmVzb2x2ZSgnZXNsaW50JylcbiAgICBjb25zdCBlc2xpbnRNb2R1bGUgPSBjcmVhdGVNb2R1bGUoZXNsaW50UGF0aClcbiAgICByZXR1cm4gcmVxdWlyZShNb2R1bGUuX3Jlc29sdmVGaWxlbmFtZShwLCBlc2xpbnRNb2R1bGUpKVxuICB9IGNhdGNoKGVycikgeyAvKiBpZ25vcmUgKi8gfVxuXG4gIHRyeSB7XG4gICAgLy8gdHJ5IHJlbGF0aXZlIHRvIGVudHJ5IHBvaW50XG4gICAgcmV0dXJuIHJlcXVpcmUubWFpbi5yZXF1aXJlKHApXG4gIH0gY2F0Y2goZXJyKSB7IC8qIGlnbm9yZSAqLyB9XG5cbiAgLy8gZmluYWxseSwgdHJ5IGZyb20gaGVyZVxuICByZXR1cm4gcmVxdWlyZShwKVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvbW9kdWxlLXJlcXVpcmUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O2tCQVd3QixhOztBQVh4Qjs7OztBQUNBOztJQUFZLEk7Ozs7OztBQUVaO0FBQ0EsU0FBUyxZQUFULENBQXNCLFFBQXRCLEVBQWdDO0FBQzlCLE1BQUksTUFBTSxxQkFBVyxRQUFYLENBQVY7QUFDQSxNQUFJLFFBQUosR0FBZSxRQUFmO0FBQ0EsTUFBSSxLQUFKLEdBQVksaUJBQU8sZ0JBQVAsQ0FBd0IsS0FBSyxPQUFMLENBQWEsUUFBYixDQUF4QixDQUFaO0FBQ0EsU0FBTyxHQUFQO0FBQ0Q7O0FBRWMsU0FBUyxhQUFULENBQXVCLENBQXZCLEVBQTBCO0FBQ3ZDLE1BQUk7QUFDRjtBQUNBLFFBQU0sYUFBYSxRQUFRLE9BQVIsQ0FBZ0IsUUFBaEIsQ0FBbkI7QUFDQSxRQUFNLGVBQWUsYUFBYSxVQUFiLENBQXJCO0FBQ0EsV0FBTyxRQUFRLGlCQUFPLGdCQUFQLENBQXdCLENBQXhCLEVBQTJCLFlBQTNCLENBQVIsQ0FBUDtBQUNELEdBTEQsQ0FLRSxPQUFNLEdBQU4sRUFBVyxDQUFFLFlBQWM7O0FBRTdCLE1BQUk7QUFDRjtBQUNBLFdBQU8sUUFBUSxJQUFSLENBQWEsT0FBYixDQUFxQixDQUFyQixDQUFQO0FBQ0QsR0FIRCxDQUdFLE9BQU0sR0FBTixFQUFXLENBQWdCLENBQTNCLENBQWE7O0FBRWY7QUFDQSxTQUFPLFFBQVEsQ0FBUixDQUFQO0FBQ0QiLCJmaWxlIjoiY29yZS9tb2R1bGUtcmVxdWlyZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNb2R1bGUgZnJvbSAnbW9kdWxlJ1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJ1xuXG4vLyBib3Jyb3dlZCBmcm9tIGJhYmVsLWVzbGludFxuZnVuY3Rpb24gY3JlYXRlTW9kdWxlKGZpbGVuYW1lKSB7XG4gIHZhciBtb2QgPSBuZXcgTW9kdWxlKGZpbGVuYW1lKVxuICBtb2QuZmlsZW5hbWUgPSBmaWxlbmFtZVxuICBtb2QucGF0aHMgPSBNb2R1bGUuX25vZGVNb2R1bGVQYXRocyhwYXRoLmRpcm5hbWUoZmlsZW5hbWUpKVxuICByZXR1cm4gbW9kXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1vZHVsZVJlcXVpcmUocCkge1xuICB0cnkge1xuICAgIC8vIGF0dGVtcHQgdG8gZ2V0IGVzcHJlZSByZWxhdGl2ZSB0byBlc2xpbnRcbiAgICBjb25zdCBlc2xpbnRQYXRoID0gcmVxdWlyZS5yZXNvbHZlKCdlc2xpbnQnKVxuICAgIGNvbnN0IGVzbGludE1vZHVsZSA9IGNyZWF0ZU1vZHVsZShlc2xpbnRQYXRoKVxuICAgIHJldHVybiByZXF1aXJlKE1vZHVsZS5fcmVzb2x2ZUZpbGVuYW1lKHAsIGVzbGludE1vZHVsZSkpXG4gIH0gY2F0Y2goZXJyKSB7IC8qIGlnbm9yZSAqLyB9XG5cbiAgdHJ5IHtcbiAgICAvLyB0cnkgcmVsYXRpdmUgdG8gZW50cnkgcG9pbnRcbiAgICByZXR1cm4gcmVxdWlyZS5tYWluLnJlcXVpcmUocClcbiAgfSBjYXRjaChlcnIpIHsgLyogaWdub3JlICovIH1cblxuICAvLyBmaW5hbGx5LCB0cnkgZnJvbSBoZXJlXG4gIHJldHVybiByZXF1aXJlKHApXG59XG4iXX0=

@@ -37,2 +37,2 @@ 'use strict';

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvcGFyc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztrQkFHZSxVQUFVLE9BQVYsRUFBbUIsT0FBbkIsRUFBNEI7O0FBRXpDLE1BQUksV0FBVyxJQUFmLEVBQXFCLE1BQU0sSUFBSSxLQUFKLENBQVUsZ0NBQVYsQ0FBTjs7QUFGb0IsTUFJbkMsYUFKbUMsR0FJTCxPQUpLLENBSW5DLGFBSm1DO0FBQUEsTUFJcEIsVUFKb0IsR0FJTCxPQUpLLENBSXBCLFVBSm9COzs7QUFNekMsTUFBSSxDQUFDLFVBQUwsRUFBaUIsTUFBTSxJQUFJLEtBQUosQ0FBVSx5QkFBVixDQUFOOzs7QUFHakIsa0JBQWdCLDRCQUFPLEVBQVAsRUFBVyxhQUFYLENBQWhCO0FBQ0EsZ0JBQWMsWUFBZCxHQUE2Qiw0QkFBTyxFQUFQLEVBQVcsY0FBYyxZQUF6QixDQUE3Qjs7O0FBR0EsZ0JBQWMsYUFBZCxHQUE4QixJQUE5Qjs7O0FBR0EsTUFBTSxTQUFTLDZCQUFjLFVBQWQsQ0FBZjs7QUFFQSxTQUFPLE9BQU8sS0FBUCxDQUFhLE9BQWIsRUFBc0IsYUFBdEIsQ0FBUDtBQUNELEM7O0FBdEJEOzs7O0FBQ0EiLCJmaWxlIjoiY29yZS9wYXJzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2R1bGVSZXF1aXJlIGZyb20gJy4vbW9kdWxlLXJlcXVpcmUnXG5pbXBvcnQgYXNzaWduIGZyb20gJ29iamVjdC1hc3NpZ24nXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChjb250ZW50LCBjb250ZXh0KSB7XG5cbiAgaWYgKGNvbnRleHQgPT0gbnVsbCkgdGhyb3cgbmV3IEVycm9yKCduZWVkIGNvbnRleHQgdG8gcGFyc2UgcHJvcGVybHknKVxuXG4gIGxldCB7IHBhcnNlck9wdGlvbnMsIHBhcnNlclBhdGggfSA9IGNvbnRleHRcblxuICBpZiAoIXBhcnNlclBhdGgpIHRocm93IG5ldyBFcnJvcigncGFyc2VyUGF0aCBpcyByZXF1aXJlZCEnKVxuXG4gIC8vIGhhY2s6IGVzcHJlZSBibG93cyB1cCB3aXRoIGZyb3plbiBvcHRpb25zXG4gIHBhcnNlck9wdGlvbnMgPSBhc3NpZ24oe30sIHBhcnNlck9wdGlvbnMpXG4gIHBhcnNlck9wdGlvbnMuZWNtYUZlYXR1cmVzID0gYXNzaWduKHt9LCBwYXJzZXJPcHRpb25zLmVjbWFGZWF0dXJlcylcblxuICAvLyBhbHdheXMgYXR0YWNoIGNvbW1lbnRzXG4gIHBhcnNlck9wdGlvbnMuYXR0YWNoQ29tbWVudCA9IHRydWVcblxuICAvLyByZXF1aXJlIHRoZSBwYXJzZXIgcmVsYXRpdmUgdG8gdGhlIG1haW4gbW9kdWxlIChpLmUuLCBFU0xpbnQpXG4gIGNvbnN0IHBhcnNlciA9IG1vZHVsZVJlcXVpcmUocGFyc2VyUGF0aClcblxuICByZXR1cm4gcGFyc2VyLnBhcnNlKGNvbnRlbnQsIHBhcnNlck9wdGlvbnMpXG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvcGFyc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztrQkFHZSxVQUFVLE9BQVYsRUFBbUIsT0FBbkIsRUFBNEI7O0FBRXpDLE1BQUksV0FBVyxJQUFmLEVBQXFCLE1BQU0sSUFBSSxLQUFKLENBQVUsZ0NBQVYsQ0FBTjs7QUFGb0IsTUFJbkMsYUFKbUMsR0FJTCxPQUpLLENBSW5DLGFBSm1DO0FBQUEsTUFJcEIsVUFKb0IsR0FJTCxPQUpLLENBSXBCLFVBSm9COzs7QUFNekMsTUFBSSxDQUFDLFVBQUwsRUFBaUIsTUFBTSxJQUFJLEtBQUosQ0FBVSx5QkFBVixDQUFOOztBQUVqQjtBQUNBLGtCQUFnQiw0QkFBTyxFQUFQLEVBQVcsYUFBWCxDQUFoQjtBQUNBLGdCQUFjLFlBQWQsR0FBNkIsNEJBQU8sRUFBUCxFQUFXLGNBQWMsWUFBekIsQ0FBN0I7O0FBRUE7QUFDQSxnQkFBYyxhQUFkLEdBQThCLElBQTlCOztBQUVBO0FBQ0EsTUFBTSxTQUFTLDZCQUFjLFVBQWQsQ0FBZjs7QUFFQSxTQUFPLE9BQU8sS0FBUCxDQUFhLE9BQWIsRUFBc0IsYUFBdEIsQ0FBUDtBQUNELEM7O0FBdEJEOzs7O0FBQ0EiLCJmaWxlIjoiY29yZS9wYXJzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2R1bGVSZXF1aXJlIGZyb20gJy4vbW9kdWxlLXJlcXVpcmUnXG5pbXBvcnQgYXNzaWduIGZyb20gJ29iamVjdC1hc3NpZ24nXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChjb250ZW50LCBjb250ZXh0KSB7XG5cbiAgaWYgKGNvbnRleHQgPT0gbnVsbCkgdGhyb3cgbmV3IEVycm9yKCduZWVkIGNvbnRleHQgdG8gcGFyc2UgcHJvcGVybHknKVxuXG4gIGxldCB7IHBhcnNlck9wdGlvbnMsIHBhcnNlclBhdGggfSA9IGNvbnRleHRcblxuICBpZiAoIXBhcnNlclBhdGgpIHRocm93IG5ldyBFcnJvcigncGFyc2VyUGF0aCBpcyByZXF1aXJlZCEnKVxuXG4gIC8vIGhhY2s6IGVzcHJlZSBibG93cyB1cCB3aXRoIGZyb3plbiBvcHRpb25zXG4gIHBhcnNlck9wdGlvbnMgPSBhc3NpZ24oe30sIHBhcnNlck9wdGlvbnMpXG4gIHBhcnNlck9wdGlvbnMuZWNtYUZlYXR1cmVzID0gYXNzaWduKHt9LCBwYXJzZXJPcHRpb25zLmVjbWFGZWF0dXJlcylcblxuICAvLyBhbHdheXMgYXR0YWNoIGNvbW1lbnRzXG4gIHBhcnNlck9wdGlvbnMuYXR0YWNoQ29tbWVudCA9IHRydWVcblxuICAvLyByZXF1aXJlIHRoZSBwYXJzZXIgcmVsYXRpdmUgdG8gdGhlIG1haW4gbW9kdWxlIChpLmUuLCBFU0xpbnQpXG4gIGNvbnN0IHBhcnNlciA9IG1vZHVsZVJlcXVpcmUocGFyc2VyUGF0aClcblxuICByZXR1cm4gcGFyc2VyLnBhcnNlKGNvbnRlbnQsIHBhcnNlck9wdGlvbnMpXG59XG4iXX0=

@@ -246,2 +246,2 @@ 'use strict';

}
//# sourceMappingURL=data:application/json;base64,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QXNCLEtBQXRCLENBQVA7QUFDRCIsImZpbGUiOiJjb3JlL3Jlc29sdmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTWFwIGZyb20gJ2VzNi1tYXAnXG5pbXBvcnQgU2V0IGZyb20gJ2VzNi1zZXQnXG5pbXBvcnQgYXNzaWduIGZyb20gJ29iamVjdC1hc3NpZ24nXG5pbXBvcnQgcGtnRGlyIGZyb20gJ3BrZy1kaXInXG5cbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCdcblxuZXhwb3J0IGNvbnN0IENBU0VfU0VOU0lUSVZFX0ZTID0gIWZzLmV4aXN0c1N5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJ3JlU09MVkUuanMnKSlcblxuY29uc3QgZmlsZUV4aXN0c0NhY2hlID0gbmV3IE1hcCgpXG5cbmZ1bmN0aW9uIGNhY2hlUGF0aChjYWNoZUtleSwgcmVzdWx0KSB7XG4gIGZpbGVFeGlzdHNDYWNoZS5zZXQoY2FjaGVLZXksIHsgcmVzdWx0LCBsYXN0U2VlbjogRGF0ZS5ub3coKSB9KVxufVxuXG5mdW5jdGlvbiBjaGVja0NhY2hlKGNhY2hlS2V5LCB7IGxpZmV0aW1lIH0pIHtcbiAgaWYgKGZpbGVFeGlzdHNDYWNoZS5oYXMoY2FjaGVLZXkpKSB7XG4gICAgY29uc3QgeyByZXN1bHQsIGxhc3RTZWVuIH0gPSBmaWxlRXhpc3RzQ2FjaGUuZ2V0KGNhY2hlS2V5KVxuICAgIC8vIGNoZWNrIGZyZXNuZXNzXG4gICAgaWYgKERhdGUubm93KCkgLSBsYXN0U2VlbiA8IChsaWZldGltZSAqIDEwMDApKSByZXR1cm4gcmVzdWx0XG4gIH1cbiAgLy8gY2FjaGUgbWlzc1xuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbi8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzI3MzgyODM4XG5mdW5jdGlvbiBmaWxlRXhpc3RzV2l0aENhc2VTeW5jKGZpbGVwYXRoLCBjYWNoZVNldHRpbmdzKSB7XG4gIC8vIGRvbid0IGNhcmUgaWYgdGhlIEZTIGlzIGNhc2Utc2Vuc2l0aXZlXG4gIGlmIChDQVNFX1NFTlNJVElWRV9GUykgcmV0dXJuIHRydWVcblxuICAvLyBudWxsIG1lYW5zIGl0IHJlc29sdmVkIHRvIGEgYnVpbHRpblxuICBpZiAoZmlsZXBhdGggPT09IG51bGwpIHJldHVybiB0cnVlXG5cbiAgY29uc3QgZGlyID0gcGF0aC5kaXJuYW1lKGZpbGVwYXRoKVxuXG4gIGxldCByZXN1bHQgPSBjaGVja0NhY2hlKGZpbGVwYXRoLCBjYWNoZVNldHRpbmdzKVxuICBpZiAocmVzdWx0ICE9IG51bGwpIHJldHVybiByZXN1bHRcblxuICAvLyBiYXNlIGNhc2VcbiAgaWYgKGRpciA9PT0gJy8nIHx8IGRpciA9PT0gJy4nIHx8IC9eW0EtWl06XFxcXCQvaS50ZXN0KGRpcikpIHtcbiAgICByZXN1bHQgPSB0cnVlXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZmlsZW5hbWVzID0gZnMucmVhZGRpclN5bmMoZGlyKVxuICAgIGlmIChmaWxlbmFtZXMuaW5kZXhPZihwYXRoLmJhc2VuYW1lKGZpbGVwYXRoKSkgPT09IC0xKSB7XG4gICAgICByZXN1bHQgPSBmYWxzZVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBmaWxlRXhpc3RzV2l0aENhc2VTeW5jKGRpciwgY2FjaGVTZXR0aW5ncylcbiAgICB9XG4gIH1cbiAgY2FjaGVQYXRoKGZpbGVwYXRoLCByZXN1bHQpXG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbGF0aXZlKG1vZHVsZVBhdGgsIHNvdXJjZUZpbGUsIHNldHRpbmdzKSB7XG4gIHJldHVybiBmdWxsUmVzb2x2ZShtb2R1bGVQYXRoLCBzb3VyY2VGaWxlLCBzZXR0aW5ncykucGF0aFxufVxuXG5mdW5jdGlvbiBmdWxsUmVzb2x2ZShtb2R1bGVQYXRoLCBzb3VyY2VGaWxlLCBzZXR0aW5ncykge1xuICAvLyBjaGVjayBpZiB0aGlzIGlzIGEgYm9udXMgY29yZSBtb2R1bGVcbiAgY29uc3QgY29yZVNldCA9IG5ldyBTZXQoc2V0dGluZ3NbJ2ltcG9ydC9jb3JlLW1vZHVsZXMnXSlcbiAgaWYgKGNvcmVTZXQgIT0gbnVsbCAmJiBjb3JlU2V0Lmhhcyhtb2R1bGVQYXRoKSkgcmV0dXJuIHsgZm91bmQ6IHRydWUsIHBhdGg6IG51bGwgfVxuXG4gIGNvbnN0IHNvdXJjZURpciA9IHBhdGguZGlybmFtZShzb3VyY2VGaWxlKVxuICAgICAgLCBjYWNoZUtleSA9IHNvdXJjZURpciArIGhhc2hPYmplY3Qoc2V0dGluZ3MpICsgbW9kdWxlUGF0aFxuXG4gIGNvbnN0IGNhY2hlU2V0dGluZ3MgPSBhc3NpZ24oe1xuICAgIGxpZmV0aW1lOiAzMCwgIC8vIHNlY29uZHNcbiAgfSwgc2V0dGluZ3NbJ2ltcG9ydC9jYWNoZSddKVxuXG4gIC8vIHBhcnNlIGluZmluaXR5XG4gIGlmIChjYWNoZVNldHRpbmdzLmxpZmV0aW1lID09PSAn4oieJyB8fCBjYWNoZVNldHRpbmdzLmxpZmV0aW1lID09PSAnSW5maW5pdHknKSB7XG4gICAgY2FjaGVTZXR0aW5ncy5saWZldGltZSA9IEluZmluaXR5XG4gIH1cblxuICBjb25zdCBjYWNoZWRQYXRoID0gY2hlY2tDYWNoZShjYWNoZUtleSwgY2FjaGVTZXR0aW5ncylcbiAgaWYgKGNhY2hlZFBhdGggIT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgZm91bmQ6IHRydWUsIHBhdGg6IGNhY2hlZFBhdGggfVxuXG4gIGZ1bmN0aW9uIGNhY2hlKHJlc29sdmVkUGF0aCkge1xuICAgIGNhY2hlUGF0aChjYWNoZUtleSwgcmVzb2x2ZWRQYXRoKVxuICB9XG5cbiAgZnVuY3Rpb24gd2l0aFJlc29sdmVyKHJlc29sdmVyLCBjb25maWcpIHtcblxuICAgIGZ1bmN0aW9uIHYxKCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlci5yZXNvbHZlSW1wb3J0KG1vZHVsZVBhdGgsIHNvdXJjZUZpbGUsIGNvbmZpZylcbiAgICAgICAgaWYgKHJlc29sdmVkID09PSB1bmRlZmluZWQpIHJldHVybiB7IGZvdW5kOiBmYWxzZSB9XG4gICAgICAgIHJldHVybiB7IGZvdW5kOiB0cnVlLCBwYXRoOiByZXNvbHZlZCB9XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIHsgZm91bmQ6IGZhbHNlIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2MigpIHtcbiAgICAgIHJldHVybiByZXNvbHZlci5yZXNvbHZlKG1vZHVsZVBhdGgsIHNvdXJjZUZpbGUsIGNvbmZpZylcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHJlc29sdmVyLmludGVyZmFjZVZlcnNpb24pIHtcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgcmV0dXJuIHYyKClcblxuICAgICAgZGVmYXVsdDpcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgcmV0dXJuIHYxKClcbiAgICB9XG4gIH1cblxuICBjb25zdCBjb25maWdSZXNvbHZlcnMgPSAoc2V0dGluZ3NbJ2ltcG9ydC9yZXNvbHZlciddXG4gICAgfHwgeyAnbm9kZSc6IHNldHRpbmdzWydpbXBvcnQvcmVzb2x2ZSddIH0pIC8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcblxuICBjb25zdCByZXNvbHZlcnMgPSByZXNvbHZlclJlZHVjZXIoY29uZmlnUmVzb2x2ZXJzLCBuZXcgTWFwKCkpXG5cbiAgbGV0IHJlc29sdmVkID0geyBmb3VuZDogZmFsc2UgfVxuICByZXNvbHZlcnMuZm9yRWFjaChmdW5jdGlvbiAoY29uZmlnLCBuYW1lKSAge1xuICAgIGlmICghcmVzb2x2ZWQuZm91bmQpIHtcbiAgICAgIGNvbnN0IHJlc29sdmVyID0gcmVxdWlyZVJlc29sdmVyKG5hbWUsIHNvdXJjZUZpbGUpXG4gICAgICByZXNvbHZlZCA9IHdpdGhSZXNvbHZlcihyZXNvbHZlciwgY29uZmlnKVxuICAgICAgaWYgKHJlc29sdmVkLmZvdW5kKSB7XG4gICAgICAgIC8vIHJlc29sdmVycyBpbXBseSBmaWxlIGV4aXN0ZW5jZSwgdGhpcyBkb3VibGUtY2hlY2sganVzdCBlbnN1cmVzIHRoZSBjYXNlIG1hdGNoZXNcbiAgICAgICAgaWYgKGZpbGVFeGlzdHNXaXRoQ2FzZVN5bmMocmVzb2x2ZWQucGF0aCwgY2FjaGVTZXR0aW5ncykpIHtcbiAgICAgICAgICAvLyBlbHNlLCBjb3VudHNcbiAgICAgICAgICBjYWNoZShyZXNvbHZlZC5wYXRoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc29sdmVkID0geyBmb3VuZDogZmFsc2UgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHJldHVybiByZXNvbHZlZFxufVxuXG5mdW5jdGlvbiByZXNvbHZlclJlZHVjZXIocmVzb2x2ZXJzLCBtYXApIHtcbiAgaWYgKHJlc29sdmVycyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgcmVzb2x2ZXJzLmZvckVhY2gociA9PiByZXNvbHZlclJlZHVjZXIociwgbWFwKSlcbiAgICByZXR1cm4gbWFwXG4gIH1cblxuICBpZiAodHlwZW9mIHJlc29sdmVycyA9PT0gJ3N0cmluZycpIHtcbiAgICBtYXAuc2V0KHJlc29sdmVycywgbnVsbClcbiAgICByZXR1cm4gbWFwXG4gIH1cblxuICBpZiAodHlwZW9mIHJlc29sdmVycyA9PT0gJ29iamVjdCcpIHtcbiAgICBmb3IgKGxldCBrZXkgaW4gcmVzb2x2ZXJzKSB7XG4gICAgICBtYXAuc2V0KGtleSwgcmVzb2x2ZXJzW2tleV0pXG4gICAgfVxuICAgIHJldHVybiBtYXBcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcignaW52YWxpZCByZXNvbHZlciBjb25maWcnKVxufVxuXG5mdW5jdGlvbiByZXF1aXJlUmVzb2x2ZXIobmFtZSwgc291cmNlRmlsZSkge1xuICAvLyBUcnkgdG8gcmVzb2x2ZSBwYWNrYWdlIHdpdGggY29udmVudGlvbmFsIG5hbWVcbiAgdHJ5IHtcbiAgICByZXR1cm4gcmVxdWlyZShgZXNsaW50LWltcG9ydC1yZXNvbHZlci0ke25hbWV9YClcbiAgfSBjYXRjaCAoZXJyKSB7IC8qIGNvbnRpbnVlICovIH1cblxuICAvLyBUcnkgdG8gcmVzb2x2ZSBwYWNrYWdlIHdpdGggY3VzdG9tIG5hbWUgKEBteW9yZy9yZXNvbHZlci1uYW1lKVxuICB0cnkge1xuICAgIHJldHVybiByZXF1aXJlKG5hbWUpXG4gIH0gY2F0Y2ggKGVycikgeyAvKiBjb250aW51ZSAqLyB9XG5cbiAgLy8gVHJ5IHRvIHJlc29sdmUgcGFja2FnZSB3aXRoIHBhdGgsIHJlbGF0aXZlIHRvIGNsb3Nlc3QgcGFja2FnZS5qc29uXG4gIC8vIG9yIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnlcbiAgdHJ5IHtcbiAgICBjb25zdCBiYXNlRGlyID0gcGtnRGlyLnN5bmMoc291cmNlRmlsZSkgfHwgcHJvY2Vzcy5jd2QoKVxuICAgIC8vIGFic29sdXRlIHBhdGhzIGlnbm9yZSBiYXNlLCBzbyB0aGlzIGNvdmVycyBib3RoXG4gICAgcmV0dXJuIHJlcXVpcmUocGF0aC5yZXNvbHZlKGJhc2VEaXIsIG5hbWUpKVxuICB9IGNhdGNoIChlcnIpIHsgLyogY29udGludWUgKi8gfVxuXG4gIC8vIGFsbCBlbHNlIGZhaWxlZFxuICB0aHJvdyBuZXcgRXJyb3IoYHVuYWJsZSB0byBsb2FkIHJlc29sdmVyIFwiJHtuYW1lfVwiLmApXG59XG5cbmNvbnN0IGVycm9yZWRDb250ZXh0cyA9IG5ldyBTZXQoKVxuXG4vKipcbiAqIEdpdmVuXG4gKiBAcGFyYW0gIHtzdHJpbmd9IHAgLSBtb2R1bGUgcGF0aFxuICogQHBhcmFtICB7b2JqZWN0fSBjb250ZXh0IC0gRVNMaW50IGNvbnRleHRcbiAqIEByZXR1cm4ge3N0cmluZ30gLSB0aGUgZnVsbCBtb2R1bGUgZmlsZXN5c3RlbSBwYXRoO1xuICogICAgICAgICAgICAgICAgICAgIG51bGwgaWYgcGFja2FnZSBpcyBjb3JlO1xuICogICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCBpZiBub3QgZm91bmRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVzb2x2ZShwLCBjb250ZXh0KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHJlbGF0aXZlKCBwXG4gICAgICAgICAgICAgICAgICAgLCBjb250ZXh0LmdldEZpbGVuYW1lKClcbiAgICAgICAgICAgICAgICAgICAsIGNvbnRleHQuc2V0dGluZ3NcbiAgICAgICAgICAgICAgICAgICApXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmICghZXJyb3JlZENvbnRleHRzLmhhcyhjb250ZXh0KSkge1xuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBtZXNzYWdlOiBgUmVzb2x2ZSBlcnJvcjogJHtlcnIubWVzc2FnZX1gLFxuICAgICAgICBsb2M6IHsgbGluZTogMSwgY29sOiAwIH0sXG4gICAgICB9KVxuICAgICAgZXJyb3JlZENvbnRleHRzLmFkZChjb250ZXh0KVxuICAgIH1cbiAgfVxufVxucmVzb2x2ZS5yZWxhdGl2ZSA9IHJlbGF0aXZlXG5cblxuaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gJ2NyeXB0bydcbmZ1bmN0aW9uIGhhc2hPYmplY3Qob2JqZWN0KSB7XG4gIGNvbnN0IHNldHRpbmdzU2hhc3VtID0gY3JlYXRlSGFzaCgnc2hhMScpXG4gIHNldHRpbmdzU2hhc3VtLnVwZGF0ZShKU09OLnN0cmluZ2lmeShvYmplY3QpKVxuICByZXR1cm4gc2V0dGluZ3NTaGFzdW0uZGlnZXN0KCdoZXgnKVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,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QjtBQUMxQixNQUFNLGlCQUFpQix3QkFBVyxNQUFYLENBQXZCO0FBQ0EsaUJBQWUsTUFBZixDQUFzQixLQUFLLFNBQUwsQ0FBZSxNQUFmLENBQXRCO0FBQ0EsU0FBTyxlQUFlLE1BQWYsQ0FBc0IsS0FBdEIsQ0FBUDtBQUNEIiwiZmlsZSI6ImNvcmUvcmVzb2x2ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNYXAgZnJvbSAnZXM2LW1hcCdcbmltcG9ydCBTZXQgZnJvbSAnZXM2LXNldCdcbmltcG9ydCBhc3NpZ24gZnJvbSAnb2JqZWN0LWFzc2lnbidcbmltcG9ydCBwa2dEaXIgZnJvbSAncGtnLWRpcidcblxuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJ1xuXG5leHBvcnQgY29uc3QgQ0FTRV9TRU5TSVRJVkVfRlMgPSAhZnMuZXhpc3RzU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAncmVTT0xWRS5qcycpKVxuXG5jb25zdCBmaWxlRXhpc3RzQ2FjaGUgPSBuZXcgTWFwKClcblxuZnVuY3Rpb24gY2FjaGVQYXRoKGNhY2hlS2V5LCByZXN1bHQpIHtcbiAgZmlsZUV4aXN0c0NhY2hlLnNldChjYWNoZUtleSwgeyByZXN1bHQsIGxhc3RTZWVuOiBEYXRlLm5vdygpIH0pXG59XG5cbmZ1bmN0aW9uIGNoZWNrQ2FjaGUoY2FjaGVLZXksIHsgbGlmZXRpbWUgfSkge1xuICBpZiAoZmlsZUV4aXN0c0NhY2hlLmhhcyhjYWNoZUtleSkpIHtcbiAgICBjb25zdCB7IHJlc3VsdCwgbGFzdFNlZW4gfSA9IGZpbGVFeGlzdHNDYWNoZS5nZXQoY2FjaGVLZXkpXG4gICAgLy8gY2hlY2sgZnJlc25lc3NcbiAgICBpZiAoRGF0ZS5ub3coKSAtIGxhc3RTZWVuIDwgKGxpZmV0aW1lICogMTAwMCkpIHJldHVybiByZXN1bHRcbiAgfVxuICAvLyBjYWNoZSBtaXNzXG4gIHJldHVybiB1bmRlZmluZWRcbn1cblxuLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjczODI4MzhcbmZ1bmN0aW9uIGZpbGVFeGlzdHNXaXRoQ2FzZVN5bmMoZmlsZXBhdGgsIGNhY2hlU2V0dGluZ3MpIHtcbiAgLy8gZG9uJ3QgY2FyZSBpZiB0aGUgRlMgaXMgY2FzZS1zZW5zaXRpdmVcbiAgaWYgKENBU0VfU0VOU0lUSVZFX0ZTKSByZXR1cm4gdHJ1ZVxuXG4gIC8vIG51bGwgbWVhbnMgaXQgcmVzb2x2ZWQgdG8gYSBidWlsdGluXG4gIGlmIChmaWxlcGF0aCA9PT0gbnVsbCkgcmV0dXJuIHRydWVcblxuICBjb25zdCBkaXIgPSBwYXRoLmRpcm5hbWUoZmlsZXBhdGgpXG5cbiAgbGV0IHJlc3VsdCA9IGNoZWNrQ2FjaGUoZmlsZXBhdGgsIGNhY2hlU2V0dGluZ3MpXG4gIGlmIChyZXN1bHQgIT0gbnVsbCkgcmV0dXJuIHJlc3VsdFxuXG4gIC8vIGJhc2UgY2FzZVxuICBpZiAoZGlyID09PSAnLycgfHwgZGlyID09PSAnLicgfHwgL15bQS1aXTpcXFxcJC9pLnRlc3QoZGlyKSkge1xuICAgIHJlc3VsdCA9IHRydWVcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBmaWxlbmFtZXMgPSBmcy5yZWFkZGlyU3luYyhkaXIpXG4gICAgaWYgKGZpbGVuYW1lcy5pbmRleE9mKHBhdGguYmFzZW5hbWUoZmlsZXBhdGgpKSA9PT0gLTEpIHtcbiAgICAgIHJlc3VsdCA9IGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGZpbGVFeGlzdHNXaXRoQ2FzZVN5bmMoZGlyLCBjYWNoZVNldHRpbmdzKVxuICAgIH1cbiAgfVxuICBjYWNoZVBhdGgoZmlsZXBhdGgsIHJlc3VsdClcbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVsYXRpdmUobW9kdWxlUGF0aCwgc291cmNlRmlsZSwgc2V0dGluZ3MpIHtcbiAgcmV0dXJuIGZ1bGxSZXNvbHZlKG1vZHVsZVBhdGgsIHNvdXJjZUZpbGUsIHNldHRpbmdzKS5wYXRoXG59XG5cbmZ1bmN0aW9uIGZ1bGxSZXNvbHZlKG1vZHVsZVBhdGgsIHNvdXJjZUZpbGUsIHNldHRpbmdzKSB7XG4gIC8vIGNoZWNrIGlmIHRoaXMgaXMgYSBib251cyBjb3JlIG1vZHVsZVxuICBjb25zdCBjb3JlU2V0ID0gbmV3IFNldChzZXR0aW5nc1snaW1wb3J0L2NvcmUtbW9kdWxlcyddKVxuICBpZiAoY29yZVNldCAhPSBudWxsICYmIGNvcmVTZXQuaGFzKG1vZHVsZVBhdGgpKSByZXR1cm4geyBmb3VuZDogdHJ1ZSwgcGF0aDogbnVsbCB9XG5cbiAgY29uc3Qgc291cmNlRGlyID0gcGF0aC5kaXJuYW1lKHNvdXJjZUZpbGUpXG4gICAgICAsIGNhY2hlS2V5ID0gc291cmNlRGlyICsgaGFzaE9iamVjdChzZXR0aW5ncykgKyBtb2R1bGVQYXRoXG5cbiAgY29uc3QgY2FjaGVTZXR0aW5ncyA9IGFzc2lnbih7XG4gICAgbGlmZXRpbWU6IDMwLCAgLy8gc2Vjb25kc1xuICB9LCBzZXR0aW5nc1snaW1wb3J0L2NhY2hlJ10pXG5cbiAgLy8gcGFyc2UgaW5maW5pdHlcbiAgaWYgKGNhY2hlU2V0dGluZ3MubGlmZXRpbWUgPT09ICfiiJ4nIHx8IGNhY2hlU2V0dGluZ3MubGlmZXRpbWUgPT09ICdJbmZpbml0eScpIHtcbiAgICBjYWNoZVNldHRpbmdzLmxpZmV0aW1lID0gSW5maW5pdHlcbiAgfVxuXG4gIGNvbnN0IGNhY2hlZFBhdGggPSBjaGVja0NhY2hlKGNhY2hlS2V5LCBjYWNoZVNldHRpbmdzKVxuICBpZiAoY2FjaGVkUGF0aCAhPT0gdW5kZWZpbmVkKSByZXR1cm4geyBmb3VuZDogdHJ1ZSwgcGF0aDogY2FjaGVkUGF0aCB9XG5cbiAgZnVuY3Rpb24gY2FjaGUocmVzb2x2ZWRQYXRoKSB7XG4gICAgY2FjaGVQYXRoKGNhY2hlS2V5LCByZXNvbHZlZFBhdGgpXG4gIH1cblxuICBmdW5jdGlvbiB3aXRoUmVzb2x2ZXIocmVzb2x2ZXIsIGNvbmZpZykge1xuXG4gICAgZnVuY3Rpb24gdjEoKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVyLnJlc29sdmVJbXBvcnQobW9kdWxlUGF0aCwgc291cmNlRmlsZSwgY29uZmlnKVxuICAgICAgICBpZiAocmVzb2x2ZWQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHsgZm91bmQ6IGZhbHNlIH1cbiAgICAgICAgcmV0dXJuIHsgZm91bmQ6IHRydWUsIHBhdGg6IHJlc29sdmVkIH1cbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICByZXR1cm4geyBmb3VuZDogZmFsc2UgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHYyKCkge1xuICAgICAgcmV0dXJuIHJlc29sdmVyLnJlc29sdmUobW9kdWxlUGF0aCwgc291cmNlRmlsZSwgY29uZmlnKVxuICAgIH1cblxuICAgIHN3aXRjaCAocmVzb2x2ZXIuaW50ZXJmYWNlVmVyc2lvbikge1xuICAgICAgY2FzZSAyOlxuICAgICAgICByZXR1cm4gdjIoKVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgY2FzZSAxOlxuICAgICAgICByZXR1cm4gdjEoKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNvbmZpZ1Jlc29sdmVycyA9IChzZXR0aW5nc1snaW1wb3J0L3Jlc29sdmVyJ11cbiAgICB8fCB7ICdub2RlJzogc2V0dGluZ3NbJ2ltcG9ydC9yZXNvbHZlJ10gfSkgLy8gYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuXG4gIGNvbnN0IHJlc29sdmVycyA9IHJlc29sdmVyUmVkdWNlcihjb25maWdSZXNvbHZlcnMsIG5ldyBNYXAoKSlcblxuICBsZXQgcmVzb2x2ZWQgPSB7IGZvdW5kOiBmYWxzZSB9XG4gIHJlc29sdmVycy5mb3JFYWNoKGZ1bmN0aW9uIChjb25maWcsIG5hbWUpICB7XG4gICAgaWYgKCFyZXNvbHZlZC5mb3VuZCkge1xuICAgICAgY29uc3QgcmVzb2x2ZXIgPSByZXF1aXJlUmVzb2x2ZXIobmFtZSwgc291cmNlRmlsZSlcbiAgICAgIHJlc29sdmVkID0gd2l0aFJlc29sdmVyKHJlc29sdmVyLCBjb25maWcpXG4gICAgICBpZiAocmVzb2x2ZWQuZm91bmQpIHtcbiAgICAgICAgLy8gcmVzb2x2ZXJzIGltcGx5IGZpbGUgZXhpc3RlbmNlLCB0aGlzIGRvdWJsZS1jaGVjayBqdXN0IGVuc3VyZXMgdGhlIGNhc2UgbWF0Y2hlc1xuICAgICAgICBpZiAoZmlsZUV4aXN0c1dpdGhDYXNlU3luYyhyZXNvbHZlZC5wYXRoLCBjYWNoZVNldHRpbmdzKSkge1xuICAgICAgICAgIC8vIGVsc2UsIGNvdW50c1xuICAgICAgICAgIGNhY2hlKHJlc29sdmVkLnBhdGgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzb2x2ZWQgPSB7IGZvdW5kOiBmYWxzZSB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIHJlc29sdmVkXG59XG5cbmZ1bmN0aW9uIHJlc29sdmVyUmVkdWNlcihyZXNvbHZlcnMsIG1hcCkge1xuICBpZiAocmVzb2x2ZXJzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICByZXNvbHZlcnMuZm9yRWFjaChyID0+IHJlc29sdmVyUmVkdWNlcihyLCBtYXApKVxuICAgIHJldHVybiBtYXBcbiAgfVxuXG4gIGlmICh0eXBlb2YgcmVzb2x2ZXJzID09PSAnc3RyaW5nJykge1xuICAgIG1hcC5zZXQocmVzb2x2ZXJzLCBudWxsKVxuICAgIHJldHVybiBtYXBcbiAgfVxuXG4gIGlmICh0eXBlb2YgcmVzb2x2ZXJzID09PSAnb2JqZWN0Jykge1xuICAgIGZvciAobGV0IGtleSBpbiByZXNvbHZlcnMpIHtcbiAgICAgIG1hcC5zZXQoa2V5LCByZXNvbHZlcnNba2V5XSlcbiAgICB9XG4gICAgcmV0dXJuIG1hcFxuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHJlc29sdmVyIGNvbmZpZycpXG59XG5cbmZ1bmN0aW9uIHJlcXVpcmVSZXNvbHZlcihuYW1lLCBzb3VyY2VGaWxlKSB7XG4gIC8vIFRyeSB0byByZXNvbHZlIHBhY2thZ2Ugd2l0aCBjb252ZW50aW9uYWwgbmFtZVxuICB0cnkge1xuICAgIHJldHVybiByZXF1aXJlKGBlc2xpbnQtaW1wb3J0LXJlc29sdmVyLSR7bmFtZX1gKVxuICB9IGNhdGNoIChlcnIpIHsgLyogY29udGludWUgKi8gfVxuXG4gIC8vIFRyeSB0byByZXNvbHZlIHBhY2thZ2Ugd2l0aCBjdXN0b20gbmFtZSAoQG15b3JnL3Jlc29sdmVyLW5hbWUpXG4gIHRyeSB7XG4gICAgcmV0dXJuIHJlcXVpcmUobmFtZSlcbiAgfSBjYXRjaCAoZXJyKSB7IC8qIGNvbnRpbnVlICovIH1cblxuICAvLyBUcnkgdG8gcmVzb2x2ZSBwYWNrYWdlIHdpdGggcGF0aCwgcmVsYXRpdmUgdG8gY2xvc2VzdCBwYWNrYWdlLmpzb25cbiAgLy8gb3IgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeVxuICB0cnkge1xuICAgIGNvbnN0IGJhc2VEaXIgPSBwa2dEaXIuc3luYyhzb3VyY2VGaWxlKSB8fCBwcm9jZXNzLmN3ZCgpXG4gICAgLy8gYWJzb2x1dGUgcGF0aHMgaWdub3JlIGJhc2UsIHNvIHRoaXMgY292ZXJzIGJvdGhcbiAgICByZXR1cm4gcmVxdWlyZShwYXRoLnJlc29sdmUoYmFzZURpciwgbmFtZSkpXG4gIH0gY2F0Y2ggKGVycikgeyAvKiBjb250aW51ZSAqLyB9XG5cbiAgLy8gYWxsIGVsc2UgZmFpbGVkXG4gIHRocm93IG5ldyBFcnJvcihgdW5hYmxlIHRvIGxvYWQgcmVzb2x2ZXIgXCIke25hbWV9XCIuYClcbn1cblxuY29uc3QgZXJyb3JlZENvbnRleHRzID0gbmV3IFNldCgpXG5cbi8qKlxuICogR2l2ZW5cbiAqIEBwYXJhbSAge3N0cmluZ30gcCAtIG1vZHVsZSBwYXRoXG4gKiBAcGFyYW0gIHtvYmplY3R9IGNvbnRleHQgLSBFU0xpbnQgY29udGV4dFxuICogQHJldHVybiB7c3RyaW5nfSAtIHRoZSBmdWxsIG1vZHVsZSBmaWxlc3lzdGVtIHBhdGg7XG4gKiAgICAgICAgICAgICAgICAgICAgbnVsbCBpZiBwYWNrYWdlIGlzIGNvcmU7XG4gKiAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkIGlmIG5vdCBmb3VuZFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXNvbHZlKHAsIGNvbnRleHQpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcmVsYXRpdmUoIHBcbiAgICAgICAgICAgICAgICAgICAsIGNvbnRleHQuZ2V0RmlsZW5hbWUoKVxuICAgICAgICAgICAgICAgICAgICwgY29udGV4dC5zZXR0aW5nc1xuICAgICAgICAgICAgICAgICAgIClcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKCFlcnJvcmVkQ29udGV4dHMuaGFzKGNvbnRleHQpKSB7XG4gICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgIG1lc3NhZ2U6IGBSZXNvbHZlIGVycm9yOiAke2Vyci5tZXNzYWdlfWAsXG4gICAgICAgIGxvYzogeyBsaW5lOiAxLCBjb2w6IDAgfSxcbiAgICAgIH0pXG4gICAgICBlcnJvcmVkQ29udGV4dHMuYWRkKGNvbnRleHQpXG4gICAgfVxuICB9XG59XG5yZXNvbHZlLnJlbGF0aXZlID0gcmVsYXRpdmVcblxuXG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSAnY3J5cHRvJ1xuZnVuY3Rpb24gaGFzaE9iamVjdChvYmplY3QpIHtcbiAgY29uc3Qgc2V0dGluZ3NTaGFzdW0gPSBjcmVhdGVIYXNoKCdzaGExJylcbiAgc2V0dGluZ3NTaGFzdW0udXBkYXRlKEpTT04uc3RyaW5naWZ5KG9iamVjdCkpXG4gIHJldHVybiBzZXR0aW5nc1NoYXN1bS5kaWdlc3QoJ2hleCcpXG59XG4iXX0=

@@ -9,2 +9,2 @@ 'use strict';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvc3RhdGljUmVxdWlyZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7a0JBQ3dCLGU7O0FBQVQsU0FBUyxlQUFULENBQXlCLElBQXpCLEVBQStCO0FBQzVDLFNBQU8sUUFDTCxLQUFLLE1BREEsSUFFTCxLQUFLLE1BQUwsQ0FBWSxJQUFaLEtBQXFCLFlBRmhCLElBR0wsS0FBSyxNQUFMLENBQVksSUFBWixLQUFxQixTQUhoQixJQUlMLEtBQUssU0FBTCxDQUFlLE1BQWYsS0FBMEIsQ0FKckIsSUFLTCxLQUFLLFNBQUwsQ0FBZSxDQUFmLEVBQWtCLElBQWxCLEtBQTJCLFNBTDdCO0FBTUQiLCJmaWxlIjoiY29yZS9zdGF0aWNSZXF1aXJlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdG9kbzogbWVyZ2Ugd2l0aCBtb2R1bGUgdmlzaXRvclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNTdGF0aWNSZXF1aXJlKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUgJiZcbiAgICBub2RlLmNhbGxlZSAmJlxuICAgIG5vZGUuY2FsbGVlLnR5cGUgPT09ICdJZGVudGlmaWVyJyAmJlxuICAgIG5vZGUuY2FsbGVlLm5hbWUgPT09ICdyZXF1aXJlJyAmJlxuICAgIG5vZGUuYXJndW1lbnRzLmxlbmd0aCA9PT0gMSAmJlxuICAgIG5vZGUuYXJndW1lbnRzWzBdLnR5cGUgPT09ICdMaXRlcmFsJ1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvc3RhdGljUmVxdWlyZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7a0JBQ3dCLGU7QUFEeEI7QUFDZSxTQUFTLGVBQVQsQ0FBeUIsSUFBekIsRUFBK0I7QUFDNUMsU0FBTyxRQUNMLEtBQUssTUFEQSxJQUVMLEtBQUssTUFBTCxDQUFZLElBQVosS0FBcUIsWUFGaEIsSUFHTCxLQUFLLE1BQUwsQ0FBWSxJQUFaLEtBQXFCLFNBSGhCLElBSUwsS0FBSyxTQUFMLENBQWUsTUFBZixLQUEwQixDQUpyQixJQUtMLEtBQUssU0FBTCxDQUFlLENBQWYsRUFBa0IsSUFBbEIsS0FBMkIsU0FMN0I7QUFNRCIsImZpbGUiOiJjb3JlL3N0YXRpY1JlcXVpcmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0b2RvOiBtZXJnZSB3aXRoIG1vZHVsZSB2aXNpdG9yXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1N0YXRpY1JlcXVpcmUobm9kZSkge1xuICByZXR1cm4gbm9kZSAmJlxuICAgIG5vZGUuY2FsbGVlICYmXG4gICAgbm9kZS5jYWxsZWUudHlwZSA9PT0gJ0lkZW50aWZpZXInICYmXG4gICAgbm9kZS5jYWxsZWUubmFtZSA9PT0gJ3JlcXVpcmUnICYmXG4gICAgbm9kZS5hcmd1bWVudHMubGVuZ3RoID09PSAxICYmXG4gICAgbm9kZS5hcmd1bWVudHNbMF0udHlwZSA9PT0gJ0xpdGVyYWwnXG59XG4iXX0=

@@ -44,2 +44,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFPLElBQU0sd0JBQVE7QUFDbkIsbUJBQWlCLFFBQVEsdUJBQVIsQ0FERTtBQUVuQixXQUFTLFFBQVEsZUFBUixDQUZVO0FBR25CLGFBQVcsUUFBUSxpQkFBUixDQUhRO0FBSW5CLGVBQWEsUUFBUSxtQkFBUixDQUpNO0FBS25CLGtCQUFnQixRQUFRLHNCQUFSLENBTEc7QUFNbkIsWUFBVSxRQUFRLGdCQUFSLENBTlM7QUFPbkIsd0JBQXNCLFFBQVEsNEJBQVIsQ0FQSDtBQVFuQixnQkFBYyxRQUFRLG9CQUFSLENBUks7QUFTbkIseUJBQXVCLFFBQVEsNkJBQVIsQ0FUSjs7QUFXbkIseUJBQXVCLFFBQVEsNkJBQVIsQ0FYSjtBQVluQixnQ0FBOEIsUUFBUSxvQ0FBUixDQVpYOztBQWNuQixpQkFBZSxRQUFRLHFCQUFSLENBZEk7QUFlbkIsWUFBVSxRQUFRLGdCQUFSLENBZlM7QUFnQm5CLG1CQUFpQixRQUFRLHVCQUFSLENBaEJFO0FBaUJuQixtQkFBaUIsUUFBUSx1QkFBUixDQWpCRTtBQWtCbkIsZ0NBQThCLFFBQVEsb0NBQVIsQ0FsQlg7QUFtQm5CLHVCQUFxQixRQUFRLDJCQUFSLENBbkJGO0FBb0JuQixXQUFTLFFBQVEsZUFBUixDQXBCVTtBQXFCbkIsMEJBQXdCLFFBQVEsOEJBQVIsQ0FyQkw7QUFzQm5CLDJCQUF5QixRQUFRLCtCQUFSLENBdEJOOzs7QUF5Qm5CLG1CQUFpQixRQUFRLHVCQUFSO0FBekJFLENBQWQ7O0FBNEJBLElBQU0sNEJBQVU7QUFDckIsWUFBVSxRQUFRLGtCQUFSLENBRFc7QUFFckIsY0FBWSxRQUFRLG9CQUFSLENBRlM7OztBQUtyQixhQUFXLFFBQVEsbUJBQVIsQ0FMVTs7O0FBUXJCLFdBQVMsUUFBUSxpQkFBUixDQVJZO0FBU3JCLGtCQUFnQixRQUFRLHdCQUFSLENBVEs7QUFVckIsY0FBWSxRQUFRLG9CQUFSO0FBVlMsQ0FBaEIiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcnVsZXMgPSB7XG4gICduby11bnJlc29sdmVkJzogcmVxdWlyZSgnLi9ydWxlcy9uby11bnJlc29sdmVkJyksXG4gICduYW1lZCc6IHJlcXVpcmUoJy4vcnVsZXMvbmFtZWQnKSxcbiAgJ2RlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL2RlZmF1bHQnKSxcbiAgJ25hbWVzcGFjZSc6IHJlcXVpcmUoJy4vcnVsZXMvbmFtZXNwYWNlJyksXG4gICduby1uYW1lc3BhY2UnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVzcGFjZScpLFxuICAnZXhwb3J0JzogcmVxdWlyZSgnLi9ydWxlcy9leHBvcnQnKSxcbiAgJ25vLW11dGFibGUtZXhwb3J0cyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tbXV0YWJsZS1leHBvcnRzJyksXG4gICdleHRlbnNpb25zJzogcmVxdWlyZSgnLi9ydWxlcy9leHRlbnNpb25zJyksXG4gICduby1yZXN0cmljdGVkLXBhdGhzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1yZXN0cmljdGVkLXBhdGhzJyksXG5cbiAgJ25vLW5hbWVkLWFzLWRlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQnKSxcbiAgJ25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyJzogcmVxdWlyZSgnLi9ydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlcicpLFxuXG4gICduby1jb21tb25qcyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tY29tbW9uanMnKSxcbiAgJ25vLWFtZCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tYW1kJyksXG4gICduby1kdXBsaWNhdGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1kdXBsaWNhdGVzJyksXG4gICdpbXBvcnRzLWZpcnN0JzogcmVxdWlyZSgnLi9ydWxlcy9pbXBvcnRzLWZpcnN0JyksXG4gICduby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMnKSxcbiAgJ25vLW5vZGVqcy1tb2R1bGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1ub2RlanMtbW9kdWxlcycpLFxuICAnb3JkZXInOiByZXF1aXJlKCcuL3J1bGVzL29yZGVyJyksXG4gICduZXdsaW5lLWFmdGVyLWltcG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbmV3bGluZS1hZnRlci1pbXBvcnQnKSxcbiAgJ3ByZWZlci1kZWZhdWx0LWV4cG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvcHJlZmVyLWRlZmF1bHQtZXhwb3J0JyksXG5cbiAgLy8gbWV0YWRhdGEtYmFzZWRcbiAgJ25vLWRlcHJlY2F0ZWQnOiByZXF1aXJlKCcuL3J1bGVzL25vLWRlcHJlY2F0ZWQnKSxcbn1cblxuZXhwb3J0IGNvbnN0IGNvbmZpZ3MgPSB7XG4gICdlcnJvcnMnOiByZXF1aXJlKCcuLi9jb25maWcvZXJyb3JzJyksXG4gICd3YXJuaW5ncyc6IHJlcXVpcmUoJy4uL2NvbmZpZy93YXJuaW5ncycpLFxuXG4gIC8vIHNoaGhoLi4uIHdvcmsgaW4gcHJvZ3Jlc3MgXCJzZWNyZXRcIiBydWxlc1xuICAnc3RhZ2UtMCc6IHJlcXVpcmUoJy4uL2NvbmZpZy9zdGFnZS0wJyksXG5cbiAgLy8gdXNlZnVsIHN0dWZmIGZvciBmb2xrcyB1c2luZyB2YXJpb3VzIGVudmlyb25tZW50c1xuICAncmVhY3QnOiByZXF1aXJlKCcuLi9jb25maWcvcmVhY3QnKSxcbiAgJ3JlYWN0LW5hdGl2ZSc6IHJlcXVpcmUoJy4uL2NvbmZpZy9yZWFjdC1uYXRpdmUnKSxcbiAgJ2VsZWN0cm9uJzogcmVxdWlyZSgnLi4vY29uZmlnL2VsZWN0cm9uJyksXG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFPLElBQU0sd0JBQVE7QUFDbkIsbUJBQWlCLFFBQVEsdUJBQVIsQ0FERTtBQUVuQixXQUFTLFFBQVEsZUFBUixDQUZVO0FBR25CLGFBQVcsUUFBUSxpQkFBUixDQUhRO0FBSW5CLGVBQWEsUUFBUSxtQkFBUixDQUpNO0FBS25CLGtCQUFnQixRQUFRLHNCQUFSLENBTEc7QUFNbkIsWUFBVSxRQUFRLGdCQUFSLENBTlM7QUFPbkIsd0JBQXNCLFFBQVEsNEJBQVIsQ0FQSDtBQVFuQixnQkFBYyxRQUFRLG9CQUFSLENBUks7QUFTbkIseUJBQXVCLFFBQVEsNkJBQVIsQ0FUSjs7QUFXbkIseUJBQXVCLFFBQVEsNkJBQVIsQ0FYSjtBQVluQixnQ0FBOEIsUUFBUSxvQ0FBUixDQVpYOztBQWNuQixpQkFBZSxRQUFRLHFCQUFSLENBZEk7QUFlbkIsWUFBVSxRQUFRLGdCQUFSLENBZlM7QUFnQm5CLG1CQUFpQixRQUFRLHVCQUFSLENBaEJFO0FBaUJuQixtQkFBaUIsUUFBUSx1QkFBUixDQWpCRTtBQWtCbkIsZ0NBQThCLFFBQVEsb0NBQVIsQ0FsQlg7QUFtQm5CLHVCQUFxQixRQUFRLDJCQUFSLENBbkJGO0FBb0JuQixXQUFTLFFBQVEsZUFBUixDQXBCVTtBQXFCbkIsMEJBQXdCLFFBQVEsOEJBQVIsQ0FyQkw7QUFzQm5CLDJCQUF5QixRQUFRLCtCQUFSLENBdEJOOztBQXdCbkI7QUFDQSxtQkFBaUIsUUFBUSx1QkFBUjtBQXpCRSxDQUFkOztBQTRCQSxJQUFNLDRCQUFVO0FBQ3JCLFlBQVUsUUFBUSxrQkFBUixDQURXO0FBRXJCLGNBQVksUUFBUSxvQkFBUixDQUZTOztBQUlyQjtBQUNBLGFBQVcsUUFBUSxtQkFBUixDQUxVOztBQU9yQjtBQUNBLFdBQVMsUUFBUSxpQkFBUixDQVJZO0FBU3JCLGtCQUFnQixRQUFRLHdCQUFSLENBVEs7QUFVckIsY0FBWSxRQUFRLG9CQUFSO0FBVlMsQ0FBaEIiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcnVsZXMgPSB7XG4gICduby11bnJlc29sdmVkJzogcmVxdWlyZSgnLi9ydWxlcy9uby11bnJlc29sdmVkJyksXG4gICduYW1lZCc6IHJlcXVpcmUoJy4vcnVsZXMvbmFtZWQnKSxcbiAgJ2RlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL2RlZmF1bHQnKSxcbiAgJ25hbWVzcGFjZSc6IHJlcXVpcmUoJy4vcnVsZXMvbmFtZXNwYWNlJyksXG4gICduby1uYW1lc3BhY2UnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVzcGFjZScpLFxuICAnZXhwb3J0JzogcmVxdWlyZSgnLi9ydWxlcy9leHBvcnQnKSxcbiAgJ25vLW11dGFibGUtZXhwb3J0cyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tbXV0YWJsZS1leHBvcnRzJyksXG4gICdleHRlbnNpb25zJzogcmVxdWlyZSgnLi9ydWxlcy9leHRlbnNpb25zJyksXG4gICduby1yZXN0cmljdGVkLXBhdGhzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1yZXN0cmljdGVkLXBhdGhzJyksXG5cbiAgJ25vLW5hbWVkLWFzLWRlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQnKSxcbiAgJ25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyJzogcmVxdWlyZSgnLi9ydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlcicpLFxuXG4gICduby1jb21tb25qcyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tY29tbW9uanMnKSxcbiAgJ25vLWFtZCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tYW1kJyksXG4gICduby1kdXBsaWNhdGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1kdXBsaWNhdGVzJyksXG4gICdpbXBvcnRzLWZpcnN0JzogcmVxdWlyZSgnLi9ydWxlcy9pbXBvcnRzLWZpcnN0JyksXG4gICduby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMnKSxcbiAgJ25vLW5vZGVqcy1tb2R1bGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1ub2RlanMtbW9kdWxlcycpLFxuICAnb3JkZXInOiByZXF1aXJlKCcuL3J1bGVzL29yZGVyJyksXG4gICduZXdsaW5lLWFmdGVyLWltcG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbmV3bGluZS1hZnRlci1pbXBvcnQnKSxcbiAgJ3ByZWZlci1kZWZhdWx0LWV4cG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvcHJlZmVyLWRlZmF1bHQtZXhwb3J0JyksXG5cbiAgLy8gbWV0YWRhdGEtYmFzZWRcbiAgJ25vLWRlcHJlY2F0ZWQnOiByZXF1aXJlKCcuL3J1bGVzL25vLWRlcHJlY2F0ZWQnKSxcbn1cblxuZXhwb3J0IGNvbnN0IGNvbmZpZ3MgPSB7XG4gICdlcnJvcnMnOiByZXF1aXJlKCcuLi9jb25maWcvZXJyb3JzJyksXG4gICd3YXJuaW5ncyc6IHJlcXVpcmUoJy4uL2NvbmZpZy93YXJuaW5ncycpLFxuXG4gIC8vIHNoaGhoLi4uIHdvcmsgaW4gcHJvZ3Jlc3MgXCJzZWNyZXRcIiBydWxlc1xuICAnc3RhZ2UtMCc6IHJlcXVpcmUoJy4uL2NvbmZpZy9zdGFnZS0wJyksXG5cbiAgLy8gdXNlZnVsIHN0dWZmIGZvciBmb2xrcyB1c2luZyB2YXJpb3VzIGVudmlyb25tZW50c1xuICAncmVhY3QnOiByZXF1aXJlKCcuLi9jb25maWcvcmVhY3QnKSxcbiAgJ3JlYWN0LW5hdGl2ZSc6IHJlcXVpcmUoJy4uL2NvbmZpZy9yZWFjdC1uYXRpdmUnKSxcbiAgJ2VsZWN0cm9uJzogcmVxdWlyZSgnLi4vY29uZmlnL2VsZWN0cm9uJyksXG59XG4iXX0=

@@ -38,2 +38,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL2RlZmF1bHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0FBRUEsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjs7QUFFbEMsV0FBUyxZQUFULENBQXNCLGFBQXRCLEVBQXFDLElBQXJDLEVBQTJDOzs7QUFHekMsUUFBSSx5QkFBSjtBQUNBLFNBQUssVUFBTCxDQUFnQixJQUFoQixDQUFxQixVQUFDLENBQUQsRUFBTztBQUMxQixVQUFJLEVBQUUsSUFBRixLQUFXLGFBQWYsRUFBOEI7QUFDNUIsMkJBQW1CLENBQW5CO0FBQ0EsZUFBTyxJQUFQO0FBQ0Q7QUFDRixLQUxEOztBQU9BLFFBQUksQ0FBQyxnQkFBTCxFQUF1QjtBQUN2QixRQUFJLFVBQVUscUJBQVEsR0FBUixDQUFZLEtBQUssTUFBTCxDQUFZLEtBQXhCLEVBQStCLE9BQS9CLENBQWQ7QUFDQSxRQUFJLFdBQVcsSUFBZixFQUFxQjs7QUFFckIsUUFBSSxRQUFRLE1BQVIsQ0FBZSxNQUFuQixFQUEyQjtBQUN6QixjQUFRLFlBQVIsQ0FBcUIsT0FBckIsRUFBOEIsSUFBOUI7QUFDRCxLQUZELE1BRU8sSUFBSSxDQUFDLFFBQVEsR0FBUixDQUFZLFNBQVosQ0FBTCxFQUE2QjtBQUNsQyxjQUFRLE1BQVIsQ0FBZSxnQkFBZixFQUFpQyxvQ0FBakM7QUFDRDtBQUNGOztBQUVELFNBQU87QUFDTCx5QkFBcUIsYUFBYSxJQUFiLENBQWtCLElBQWxCLEVBQXdCLHdCQUF4QixDQURoQjtBQUVMLDhCQUEwQixhQUFhLElBQWIsQ0FBa0IsSUFBbEIsRUFBd0Isd0JBQXhCO0FBRnJCLEdBQVA7QUFJRCxDQTVCRCIsImZpbGUiOiJydWxlcy9kZWZhdWx0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEV4cG9ydHMgZnJvbSAnLi4vY29yZS9nZXRFeHBvcnRzJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG5cbiAgZnVuY3Rpb24gY2hlY2tEZWZhdWx0KHNwZWNpZmllclR5cGUsIG5vZGUpIHtcblxuICAgIC8vIHBvb3IgbWFuJ3MgQXJyYXkuZmluZFxuICAgIGxldCBkZWZhdWx0U3BlY2lmaWVyXG4gICAgbm9kZS5zcGVjaWZpZXJzLnNvbWUoKG4pID0+IHtcbiAgICAgIGlmIChuLnR5cGUgPT09IHNwZWNpZmllclR5cGUpIHtcbiAgICAgICAgZGVmYXVsdFNwZWNpZmllciA9IG5cbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgaWYgKCFkZWZhdWx0U3BlY2lmaWVyKSByZXR1cm5cbiAgICB2YXIgaW1wb3J0cyA9IEV4cG9ydHMuZ2V0KG5vZGUuc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgIGlmIChpbXBvcnRzID09IG51bGwpIHJldHVyblxuXG4gICAgaWYgKGltcG9ydHMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgaW1wb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgbm9kZSlcbiAgICB9IGVsc2UgaWYgKCFpbXBvcnRzLmdldCgnZGVmYXVsdCcpKSB7XG4gICAgICBjb250ZXh0LnJlcG9ydChkZWZhdWx0U3BlY2lmaWVyLCAnTm8gZGVmYXVsdCBleHBvcnQgZm91bmQgaW4gbW9kdWxlLicpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAnSW1wb3J0RGVjbGFyYXRpb24nOiBjaGVja0RlZmF1bHQuYmluZChudWxsLCAnSW1wb3J0RGVmYXVsdFNwZWNpZmllcicpLFxuICAgICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJzogY2hlY2tEZWZhdWx0LmJpbmQobnVsbCwgJ0V4cG9ydERlZmF1bHRTcGVjaWZpZXInKSxcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL2RlZmF1bHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0FBRUEsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjs7QUFFbEMsV0FBUyxZQUFULENBQXNCLGFBQXRCLEVBQXFDLElBQXJDLEVBQTJDOztBQUV6QztBQUNBLFFBQUkseUJBQUo7QUFDQSxTQUFLLFVBQUwsQ0FBZ0IsSUFBaEIsQ0FBcUIsVUFBQyxDQUFELEVBQU87QUFDMUIsVUFBSSxFQUFFLElBQUYsS0FBVyxhQUFmLEVBQThCO0FBQzVCLDJCQUFtQixDQUFuQjtBQUNBLGVBQU8sSUFBUDtBQUNEO0FBQ0YsS0FMRDs7QUFPQSxRQUFJLENBQUMsZ0JBQUwsRUFBdUI7QUFDdkIsUUFBSSxVQUFVLHFCQUFRLEdBQVIsQ0FBWSxLQUFLLE1BQUwsQ0FBWSxLQUF4QixFQUErQixPQUEvQixDQUFkO0FBQ0EsUUFBSSxXQUFXLElBQWYsRUFBcUI7O0FBRXJCLFFBQUksUUFBUSxNQUFSLENBQWUsTUFBbkIsRUFBMkI7QUFDekIsY0FBUSxZQUFSLENBQXFCLE9BQXJCLEVBQThCLElBQTlCO0FBQ0QsS0FGRCxNQUVPLElBQUksQ0FBQyxRQUFRLEdBQVIsQ0FBWSxTQUFaLENBQUwsRUFBNkI7QUFDbEMsY0FBUSxNQUFSLENBQWUsZ0JBQWYsRUFBaUMsb0NBQWpDO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPO0FBQ0wseUJBQXFCLGFBQWEsSUFBYixDQUFrQixJQUFsQixFQUF3Qix3QkFBeEIsQ0FEaEI7QUFFTCw4QkFBMEIsYUFBYSxJQUFiLENBQWtCLElBQWxCLEVBQXdCLHdCQUF4QjtBQUZyQixHQUFQO0FBSUQsQ0E1QkQiLCJmaWxlIjoicnVsZXMvZGVmYXVsdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeHBvcnRzIGZyb20gJy4uL2NvcmUvZ2V0RXhwb3J0cydcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuXG4gIGZ1bmN0aW9uIGNoZWNrRGVmYXVsdChzcGVjaWZpZXJUeXBlLCBub2RlKSB7XG5cbiAgICAvLyBwb29yIG1hbidzIEFycmF5LmZpbmRcbiAgICBsZXQgZGVmYXVsdFNwZWNpZmllclxuICAgIG5vZGUuc3BlY2lmaWVycy5zb21lKChuKSA9PiB7XG4gICAgICBpZiAobi50eXBlID09PSBzcGVjaWZpZXJUeXBlKSB7XG4gICAgICAgIGRlZmF1bHRTcGVjaWZpZXIgPSBuXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfSlcblxuICAgIGlmICghZGVmYXVsdFNwZWNpZmllcikgcmV0dXJuXG4gICAgdmFyIGltcG9ydHMgPSBFeHBvcnRzLmdldChub2RlLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm5cblxuICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIG5vZGUpXG4gICAgfSBlbHNlIGlmICghaW1wb3J0cy5nZXQoJ2RlZmF1bHQnKSkge1xuICAgICAgY29udGV4dC5yZXBvcnQoZGVmYXVsdFNwZWNpZmllciwgJ05vIGRlZmF1bHQgZXhwb3J0IGZvdW5kIGluIG1vZHVsZS4nKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJ0ltcG9ydERlY2xhcmF0aW9uJzogY2hlY2tEZWZhdWx0LmJpbmQobnVsbCwgJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInKSxcbiAgICAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbic6IGNoZWNrRGVmYXVsdC5iaW5kKG51bGwsICdFeHBvcnREZWZhdWx0U3BlY2lmaWVyJyksXG4gIH1cbn1cbiJdfQ==

@@ -90,2 +90,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,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cm9tICdlczYtbWFwJ1xuaW1wb3J0IFNldCBmcm9tICdlczYtc2V0J1xuXG5pbXBvcnQgRXhwb3J0TWFwLCB7IHJlY3Vyc2l2ZVBhdHRlcm5DYXB0dXJlIH0gZnJvbSAnLi4vY29yZS9nZXRFeHBvcnRzJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIGNvbnN0IG5hbWVkID0gbmV3IE1hcCgpXG5cbiAgZnVuY3Rpb24gYWRkTmFtZWQobmFtZSwgbm9kZSkge1xuICAgIGxldCBub2RlcyA9IG5hbWVkLmdldChuYW1lKVxuXG4gICAgaWYgKG5vZGVzID09IG51bGwpIHtcbiAgICAgIG5vZGVzID0gbmV3IFNldCgpXG4gICAgICBuYW1lZC5zZXQobmFtZSwgbm9kZXMpXG4gICAgfVxuXG4gICAgbm9kZXMuYWRkKG5vZGUpXG4gIH1cblxuICByZXR1cm4ge1xuICAgICdFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24nOiAobm9kZSkgPT4gYWRkTmFtZWQoJ2RlZmF1bHQnLCBub2RlKSxcblxuICAgICdFeHBvcnRTcGVjaWZpZXInOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgYWRkTmFtZWQobm9kZS5leHBvcnRlZC5uYW1lLCBub2RlLmV4cG9ydGVkKVxuICAgIH0sXG5cbiAgICAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBpZiAobm9kZS5kZWNsYXJhdGlvbiA9PSBudWxsKSByZXR1cm5cblxuICAgICAgaWYgKG5vZGUuZGVjbGFyYXRpb24uaWQgIT0gbnVsbCkge1xuICAgICAgICBhZGROYW1lZChub2RlLmRlY2xhcmF0aW9uLmlkLm5hbWUsIG5vZGUuZGVjbGFyYXRpb24uaWQpXG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uLmRlY2xhcmF0aW9ucyA9PSBudWxsKSByZXR1cm5cblxuICAgICAgbm9kZS5kZWNsYXJhdGlvbi5kZWNsYXJhdGlvbnMuZm9yRWFjaChkZWNsYXJhdGlvbiA9PiB7XG4gICAgICAgIHJlY3Vyc2l2ZVBhdHRlcm5DYXB0dXJlKGRlY2xhcmF0aW9uLmlkLCB2ID0+IGFkZE5hbWVkKHYubmFtZSwgdikpXG4gICAgICB9KVxuICAgIH0sXG5cbiAgICAnRXhwb3J0QWxsRGVjbGFyYXRpb24nOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgaWYgKG5vZGUuc291cmNlID09IG51bGwpIHJldHVybiAvLyBub3Qgc3VyZSBpZiB0aGlzIGlzIGV2ZXIgdHJ1ZVxuXG4gICAgICBjb25zdCByZW1vdGVFeHBvcnRzID0gRXhwb3J0TWFwLmdldChub2RlLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICAgIGlmIChyZW1vdGVFeHBvcnRzID09IG51bGwpIHJldHVyblxuXG4gICAgICBpZiAocmVtb3RlRXhwb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgIHJlbW90ZUV4cG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIG5vZGUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgbGV0IGFueSA9IGZhbHNlXG4gICAgICByZW1vdGVFeHBvcnRzLmZvckVhY2goKHYsIG5hbWUpID0+XG4gICAgICAgIG5hbWUgIT09ICdkZWZhdWx0JyAmJlxuICAgICAgICAoYW55ID0gdHJ1ZSkgJiYgLy8gcG9vciBtYW4ncyBmaWx0ZXJcbiAgICAgICAgYWRkTmFtZWQobmFtZSwgbm9kZSkpXG5cbiAgICAgIGlmICghYW55KSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KG5vZGUuc291cmNlLFxuICAgICAgICAgIGBObyBuYW1lZCBleHBvcnRzIGZvdW5kIGluIG1vZHVsZSAnJHtub2RlLnNvdXJjZS52YWx1ZX0nLmApXG4gICAgICB9XG4gICAgfSxcblxuICAgICdQcm9ncmFtOmV4aXQnOiBmdW5jdGlvbiAoKSB7XG4gICAgICBuYW1lZC5mb3JFYWNoKChub2RlcywgbmFtZSkgPT4ge1xuICAgICAgICBpZiAobm9kZXMuc2l6ZSA8PSAxKSByZXR1cm5cblxuICAgICAgICBub2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgIGlmIChuYW1lID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KG5vZGUsICdNdWx0aXBsZSBkZWZhdWx0IGV4cG9ydHMuJylcbiAgICAgICAgICB9IGVsc2UgY29udGV4dC5yZXBvcnQobm9kZSwgYE11bHRpcGxlIGV4cG9ydHMgb2YgbmFtZSAnJHtuYW1lfScuYClcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfSxcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,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ImltcG9ydCBNYXAgZnJvbSAnZXM2LW1hcCdcbmltcG9ydCBTZXQgZnJvbSAnZXM2LXNldCdcblxuaW1wb3J0IEV4cG9ydE1hcCwgeyByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZSB9IGZyb20gJy4uL2NvcmUvZ2V0RXhwb3J0cydcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICBjb25zdCBuYW1lZCA9IG5ldyBNYXAoKVxuXG4gIGZ1bmN0aW9uIGFkZE5hbWVkKG5hbWUsIG5vZGUpIHtcbiAgICBsZXQgbm9kZXMgPSBuYW1lZC5nZXQobmFtZSlcblxuICAgIGlmIChub2RlcyA9PSBudWxsKSB7XG4gICAgICBub2RlcyA9IG5ldyBTZXQoKVxuICAgICAgbmFtZWQuc2V0KG5hbWUsIG5vZGVzKVxuICAgIH1cblxuICAgIG5vZGVzLmFkZChub2RlKVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJzogKG5vZGUpID0+IGFkZE5hbWVkKCdkZWZhdWx0Jywgbm9kZSksXG5cbiAgICAnRXhwb3J0U3BlY2lmaWVyJzogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIGFkZE5hbWVkKG5vZGUuZXhwb3J0ZWQubmFtZSwgbm9kZS5leHBvcnRlZClcbiAgICB9LFxuXG4gICAgJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgaWYgKG5vZGUuZGVjbGFyYXRpb24gPT0gbnVsbCkgcmV0dXJuXG5cbiAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uLmlkICE9IG51bGwpIHtcbiAgICAgICAgYWRkTmFtZWQobm9kZS5kZWNsYXJhdGlvbi5pZC5uYW1lLCBub2RlLmRlY2xhcmF0aW9uLmlkKVxuICAgICAgfVxuXG4gICAgICBpZiAobm9kZS5kZWNsYXJhdGlvbi5kZWNsYXJhdGlvbnMgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICAgIG5vZGUuZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zLmZvckVhY2goZGVjbGFyYXRpb24gPT4ge1xuICAgICAgICByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZShkZWNsYXJhdGlvbi5pZCwgdiA9PiBhZGROYW1lZCh2Lm5hbWUsIHYpKVxuICAgICAgfSlcbiAgICB9LFxuXG4gICAgJ0V4cG9ydEFsbERlY2xhcmF0aW9uJzogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLnNvdXJjZSA9PSBudWxsKSByZXR1cm4gLy8gbm90IHN1cmUgaWYgdGhpcyBpcyBldmVyIHRydWVcblxuICAgICAgY29uc3QgcmVtb3RlRXhwb3J0cyA9IEV4cG9ydE1hcC5nZXQobm9kZS5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgICBpZiAocmVtb3RlRXhwb3J0cyA9PSBudWxsKSByZXR1cm5cblxuICAgICAgaWYgKHJlbW90ZUV4cG9ydHMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICByZW1vdGVFeHBvcnRzLnJlcG9ydEVycm9ycyhjb250ZXh0LCBub2RlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGxldCBhbnkgPSBmYWxzZVxuICAgICAgcmVtb3RlRXhwb3J0cy5mb3JFYWNoKCh2LCBuYW1lKSA9PlxuICAgICAgICBuYW1lICE9PSAnZGVmYXVsdCcgJiZcbiAgICAgICAgKGFueSA9IHRydWUpICYmIC8vIHBvb3IgbWFuJ3MgZmlsdGVyXG4gICAgICAgIGFkZE5hbWVkKG5hbWUsIG5vZGUpKVxuXG4gICAgICBpZiAoIWFueSkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChub2RlLnNvdXJjZSxcbiAgICAgICAgICBgTm8gbmFtZWQgZXhwb3J0cyBmb3VuZCBpbiBtb2R1bGUgJyR7bm9kZS5zb3VyY2UudmFsdWV9Jy5gKVxuICAgICAgfVxuICAgIH0sXG5cbiAgICAnUHJvZ3JhbTpleGl0JzogZnVuY3Rpb24gKCkge1xuICAgICAgbmFtZWQuZm9yRWFjaCgobm9kZXMsIG5hbWUpID0+IHtcbiAgICAgICAgaWYgKG5vZGVzLnNpemUgPD0gMSkgcmV0dXJuXG5cbiAgICAgICAgbm9kZXMuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgICBpZiAobmFtZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydChub2RlLCAnTXVsdGlwbGUgZGVmYXVsdCBleHBvcnRzLicpXG4gICAgICAgICAgfSBlbHNlIGNvbnRleHQucmVwb3J0KG5vZGUsIGBNdWx0aXBsZSBleHBvcnRzIG9mIG5hbWUgJyR7bmFtZX0nLmApXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH0sXG4gIH1cbn1cbiJdfQ==

@@ -86,2 +86,2 @@ 'use strict';

}];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL2V4dGVuc2lvbnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7O0FBRUEsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjtBQUNsQyxNQUFNLGdCQUFnQixRQUFRLE9BQVIsQ0FBZ0IsQ0FBaEIsS0FBc0IsT0FBNUM7O0FBRUEsV0FBUyx3QkFBVCxDQUFrQyxTQUFsQyxFQUE2QztBQUMzQyxRQUFJLFFBQU8sYUFBUCx5Q0FBTyxhQUFQLE9BQXlCLFFBQTdCLEVBQXVDO0FBQ3JDLGFBQU8sY0FBYyxTQUFkLE1BQTZCLFFBQXBDO0FBQ0Q7O0FBRUQsV0FBTyxrQkFBa0IsUUFBekI7QUFDRDs7QUFFRCxXQUFTLDRCQUFULENBQXNDLElBQXRDLEVBQTRDO0FBQzFDLFFBQU0sWUFBWSxlQUFLLE9BQUwsQ0FBYSxJQUFiLENBQWxCO0FBQ0EsUUFBTSx1QkFBdUIsS0FBSyxLQUFMLENBQVcsQ0FBWCxFQUFjLENBQUMsVUFBVSxNQUF6QixDQUE3QjtBQUNBLFFBQU0sK0JBQStCLHVCQUFRLG9CQUFSLEVBQThCLE9BQTlCLENBQXJDOztBQUVBLFdBQU8saUNBQWlDLHVCQUFRLElBQVIsRUFBYyxPQUFkLENBQXhDO0FBQ0Q7O0FBRUQsV0FBUyxrQkFBVCxDQUE0QixJQUE1QixFQUFrQztBQUFBLFFBQ3hCLE1BRHdCLEdBQ2IsSUFEYSxDQUN4QixNQUR3Qjs7QUFFaEMsUUFBTSxhQUFhLE9BQU8sS0FBMUI7OztBQUdBLFFBQUksMkJBQVUsVUFBVixFQUFzQixRQUFRLFFBQTlCLENBQUosRUFBNkM7O0FBRTdDLFFBQU0sZUFBZSx1QkFBUSxVQUFSLEVBQW9CLE9BQXBCLENBQXJCOzs7O0FBSUEsUUFBTSxZQUFZLGVBQUssT0FBTCxDQUFhLGdCQUFnQixVQUE3QixFQUF5QyxTQUF6QyxDQUFtRCxDQUFuRCxDQUFsQjs7QUFFQSxRQUFJLENBQUMsU0FBRCxJQUFjLENBQUMsc0JBQVMsVUFBVCxFQUFxQixTQUFyQixDQUFuQixFQUFvRDtBQUNsRCxVQUFJLHlCQUF5QixTQUF6QixDQUFKLEVBQXlDO0FBQ3ZDLGdCQUFRLE1BQVIsQ0FBZTtBQUNiLGdCQUFNLE1BRE87QUFFYixnREFDNEIsa0JBQWdCLFNBQWhCLFVBQWdDLEVBRDVELGNBQ3NFLFVBRHRFO0FBRmEsU0FBZjtBQUtEO0FBQ0YsS0FSRCxNQVFPLElBQUksU0FBSixFQUFlO0FBQ3BCLFVBQUksQ0FBQyx5QkFBeUIsU0FBekIsQ0FBRCxJQUF3Qyw2QkFBNkIsVUFBN0IsQ0FBNUMsRUFBc0Y7QUFDcEYsZ0JBQVEsTUFBUixDQUFlO0FBQ2IsZ0JBQU0sTUFETztBQUViLDBEQUE4QyxTQUE5QyxlQUFpRSxVQUFqRTtBQUZhLFNBQWY7QUFJRDtBQUNGO0FBQ0Y7O0FBRUQsU0FBTztBQUNMLHVCQUFtQjtBQURkLEdBQVA7QUFHRCxDQXJERDs7QUF1REEsT0FBTyxPQUFQLENBQWUsTUFBZixHQUF3QixDQUN0QjtBQUNFLFNBQU8sQ0FDTDtBQUNFLFVBQU0sQ0FBRSxRQUFGLEVBQVksT0FBWjtBQURSLEdBREssRUFJTDtBQUNFLFVBQU0sUUFEUjtBQUVFLHVCQUFtQjtBQUNqQixZQUFNLEVBQUUsTUFBTSxDQUFFLFFBQUYsRUFBWSxPQUFaLENBQVI7QUFEVztBQUZyQixHQUpLO0FBRFQsQ0FEc0IsQ0FBeEIiLCJmaWxlIjoicnVsZXMvZXh0ZW5zaW9ucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgZW5kc1dpdGggZnJvbSAnbG9kYXNoLmVuZHN3aXRoJ1xuXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICcuLi9jb3JlL3Jlc29sdmUnXG5pbXBvcnQgeyBpc0J1aWx0SW4gfSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgY29uc3QgY29uZmlndXJhdGlvbiA9IGNvbnRleHQub3B0aW9uc1swXSB8fCAnbmV2ZXInXG5cbiAgZnVuY3Rpb24gaXNVc2VPZkV4dGVuc2lvbkVuZm9yY2VkKGV4dGVuc2lvbikge1xuICAgIGlmICh0eXBlb2YgY29uZmlndXJhdGlvbiA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBjb25maWd1cmF0aW9uW2V4dGVuc2lvbl0gPT09ICdhbHdheXMnXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZ3VyYXRpb24gPT09ICdhbHdheXMnXG4gIH1cblxuICBmdW5jdGlvbiBpc1Jlc29sdmFibGVXaXRob3V0RXh0ZW5zaW9uKGZpbGUpIHtcbiAgICBjb25zdCBleHRlbnNpb24gPSBwYXRoLmV4dG5hbWUoZmlsZSlcbiAgICBjb25zdCBmaWxlV2l0aG91dEV4dGVuc2lvbiA9IGZpbGUuc2xpY2UoMCwgLWV4dGVuc2lvbi5sZW5ndGgpXG4gICAgY29uc3QgcmVzb2x2ZWRGaWxlV2l0aG91dEV4dGVuc2lvbiA9IHJlc29sdmUoZmlsZVdpdGhvdXRFeHRlbnNpb24sIGNvbnRleHQpXG5cbiAgICByZXR1cm4gcmVzb2x2ZWRGaWxlV2l0aG91dEV4dGVuc2lvbiA9PT0gcmVzb2x2ZShmaWxlLCBjb250ZXh0KVxuICB9XG5cbiAgZnVuY3Rpb24gY2hlY2tGaWxlRXh0ZW5zaW9uKG5vZGUpIHtcbiAgICBjb25zdCB7IHNvdXJjZSB9ID0gbm9kZVxuICAgIGNvbnN0IGltcG9ydFBhdGggPSBzb3VyY2UudmFsdWVcblxuICAgIC8vIGRvbid0IGVuZm9yY2UgYW55dGhpbmcgb24gYnVpbHRpbnNcbiAgICBpZiAoaXNCdWlsdEluKGltcG9ydFBhdGgsIGNvbnRleHQuc2V0dGluZ3MpKSByZXR1cm5cblxuICAgIGNvbnN0IHJlc29sdmVkUGF0aCA9IHJlc29sdmUoaW1wb3J0UGF0aCwgY29udGV4dClcblxuICAgIC8vIGdldCBleHRlbnNpb24gZnJvbSByZXNvbHZlZCBwYXRoLCBpZiBwb3NzaWJsZS5cbiAgICAvLyBmb3IgdW5yZXNvbHZlZCwgdXNlIHNvdXJjZSB2YWx1ZS5cbiAgICBjb25zdCBleHRlbnNpb24gPSBwYXRoLmV4dG5hbWUocmVzb2x2ZWRQYXRoIHx8IGltcG9ydFBhdGgpLnN1YnN0cmluZygxKVxuXG4gICAgaWYgKCFleHRlbnNpb24gfHwgIWVuZHNXaXRoKGltcG9ydFBhdGgsIGV4dGVuc2lvbikpIHtcbiAgICAgIGlmIChpc1VzZU9mRXh0ZW5zaW9uRW5mb3JjZWQoZXh0ZW5zaW9uKSkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZTogc291cmNlLFxuICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICBgTWlzc2luZyBmaWxlIGV4dGVuc2lvbiAke2V4dGVuc2lvbiA/IGBcIiR7ZXh0ZW5zaW9ufVwiIGAgOiAnJ31mb3IgXCIke2ltcG9ydFBhdGh9XCJgLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZXh0ZW5zaW9uKSB7XG4gICAgICBpZiAoIWlzVXNlT2ZFeHRlbnNpb25FbmZvcmNlZChleHRlbnNpb24pICYmIGlzUmVzb2x2YWJsZVdpdGhvdXRFeHRlbnNpb24oaW1wb3J0UGF0aCkpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGU6IHNvdXJjZSxcbiAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCB1c2Ugb2YgZmlsZSBleHRlbnNpb24gXCIke2V4dGVuc2lvbn1cIiBmb3IgXCIke2ltcG9ydFBhdGh9XCJgLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgSW1wb3J0RGVjbGFyYXRpb246IGNoZWNrRmlsZUV4dGVuc2lvbixcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cy5zY2hlbWEgPSBbXG4gIHtcbiAgICBvbmVPZjogW1xuICAgICAge1xuICAgICAgICBlbnVtOiBbICdhbHdheXMnLCAnbmV2ZXInIF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgcGF0dGVyblByb3BlcnRpZXM6IHtcbiAgICAgICAgICAnLionOiB7IGVudW06IFsgJ2Fsd2F5cycsICduZXZlcicgXSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL2V4dGVuc2lvbnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7O0FBRUEsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjtBQUNsQyxNQUFNLGdCQUFnQixRQUFRLE9BQVIsQ0FBZ0IsQ0FBaEIsS0FBc0IsT0FBNUM7O0FBRUEsV0FBUyx3QkFBVCxDQUFrQyxTQUFsQyxFQUE2QztBQUMzQyxRQUFJLFFBQU8sYUFBUCx5Q0FBTyxhQUFQLE9BQXlCLFFBQTdCLEVBQXVDO0FBQ3JDLGFBQU8sY0FBYyxTQUFkLE1BQTZCLFFBQXBDO0FBQ0Q7O0FBRUQsV0FBTyxrQkFBa0IsUUFBekI7QUFDRDs7QUFFRCxXQUFTLDRCQUFULENBQXNDLElBQXRDLEVBQTRDO0FBQzFDLFFBQU0sWUFBWSxlQUFLLE9BQUwsQ0FBYSxJQUFiLENBQWxCO0FBQ0EsUUFBTSx1QkFBdUIsS0FBSyxLQUFMLENBQVcsQ0FBWCxFQUFjLENBQUMsVUFBVSxNQUF6QixDQUE3QjtBQUNBLFFBQU0sK0JBQStCLHVCQUFRLG9CQUFSLEVBQThCLE9BQTlCLENBQXJDOztBQUVBLFdBQU8saUNBQWlDLHVCQUFRLElBQVIsRUFBYyxPQUFkLENBQXhDO0FBQ0Q7O0FBRUQsV0FBUyxrQkFBVCxDQUE0QixJQUE1QixFQUFrQztBQUFBLFFBQ3hCLE1BRHdCLEdBQ2IsSUFEYSxDQUN4QixNQUR3Qjs7QUFFaEMsUUFBTSxhQUFhLE9BQU8sS0FBMUI7O0FBRUE7QUFDQSxRQUFJLDJCQUFVLFVBQVYsRUFBc0IsUUFBUSxRQUE5QixDQUFKLEVBQTZDOztBQUU3QyxRQUFNLGVBQWUsdUJBQVEsVUFBUixFQUFvQixPQUFwQixDQUFyQjs7QUFFQTtBQUNBO0FBQ0EsUUFBTSxZQUFZLGVBQUssT0FBTCxDQUFhLGdCQUFnQixVQUE3QixFQUF5QyxTQUF6QyxDQUFtRCxDQUFuRCxDQUFsQjs7QUFFQSxRQUFJLENBQUMsU0FBRCxJQUFjLENBQUMsc0JBQVMsVUFBVCxFQUFxQixTQUFyQixDQUFuQixFQUFvRDtBQUNsRCxVQUFJLHlCQUF5QixTQUF6QixDQUFKLEVBQXlDO0FBQ3ZDLGdCQUFRLE1BQVIsQ0FBZTtBQUNiLGdCQUFNLE1BRE87QUFFYixnREFDNEIsa0JBQWdCLFNBQWhCLFVBQWdDLEVBRDVELGNBQ3NFLFVBRHRFO0FBRmEsU0FBZjtBQUtEO0FBQ0YsS0FSRCxNQVFPLElBQUksU0FBSixFQUFlO0FBQ3BCLFVBQUksQ0FBQyx5QkFBeUIsU0FBekIsQ0FBRCxJQUF3Qyw2QkFBNkIsVUFBN0IsQ0FBNUMsRUFBc0Y7QUFDcEYsZ0JBQVEsTUFBUixDQUFlO0FBQ2IsZ0JBQU0sTUFETztBQUViLDBEQUE4QyxTQUE5QyxlQUFpRSxVQUFqRTtBQUZhLFNBQWY7QUFJRDtBQUNGO0FBQ0Y7O0FBRUQsU0FBTztBQUNMLHVCQUFtQjtBQURkLEdBQVA7QUFHRCxDQXJERDs7QUF1REEsT0FBTyxPQUFQLENBQWUsTUFBZixHQUF3QixDQUN0QjtBQUNFLFNBQU8sQ0FDTDtBQUNFLFVBQU0sQ0FBRSxRQUFGLEVBQVksT0FBWjtBQURSLEdBREssRUFJTDtBQUNFLFVBQU0sUUFEUjtBQUVFLHVCQUFtQjtBQUNqQixZQUFNLEVBQUUsTUFBTSxDQUFFLFFBQUYsRUFBWSxPQUFaLENBQVI7QUFEVztBQUZyQixHQUpLO0FBRFQsQ0FEc0IsQ0FBeEIiLCJmaWxlIjoicnVsZXMvZXh0ZW5zaW9ucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgZW5kc1dpdGggZnJvbSAnbG9kYXNoLmVuZHN3aXRoJ1xuXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICcuLi9jb3JlL3Jlc29sdmUnXG5pbXBvcnQgeyBpc0J1aWx0SW4gfSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgY29uc3QgY29uZmlndXJhdGlvbiA9IGNvbnRleHQub3B0aW9uc1swXSB8fCAnbmV2ZXInXG5cbiAgZnVuY3Rpb24gaXNVc2VPZkV4dGVuc2lvbkVuZm9yY2VkKGV4dGVuc2lvbikge1xuICAgIGlmICh0eXBlb2YgY29uZmlndXJhdGlvbiA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBjb25maWd1cmF0aW9uW2V4dGVuc2lvbl0gPT09ICdhbHdheXMnXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZ3VyYXRpb24gPT09ICdhbHdheXMnXG4gIH1cblxuICBmdW5jdGlvbiBpc1Jlc29sdmFibGVXaXRob3V0RXh0ZW5zaW9uKGZpbGUpIHtcbiAgICBjb25zdCBleHRlbnNpb24gPSBwYXRoLmV4dG5hbWUoZmlsZSlcbiAgICBjb25zdCBmaWxlV2l0aG91dEV4dGVuc2lvbiA9IGZpbGUuc2xpY2UoMCwgLWV4dGVuc2lvbi5sZW5ndGgpXG4gICAgY29uc3QgcmVzb2x2ZWRGaWxlV2l0aG91dEV4dGVuc2lvbiA9IHJlc29sdmUoZmlsZVdpdGhvdXRFeHRlbnNpb24sIGNvbnRleHQpXG5cbiAgICByZXR1cm4gcmVzb2x2ZWRGaWxlV2l0aG91dEV4dGVuc2lvbiA9PT0gcmVzb2x2ZShmaWxlLCBjb250ZXh0KVxuICB9XG5cbiAgZnVuY3Rpb24gY2hlY2tGaWxlRXh0ZW5zaW9uKG5vZGUpIHtcbiAgICBjb25zdCB7IHNvdXJjZSB9ID0gbm9kZVxuICAgIGNvbnN0IGltcG9ydFBhdGggPSBzb3VyY2UudmFsdWVcblxuICAgIC8vIGRvbid0IGVuZm9yY2UgYW55dGhpbmcgb24gYnVpbHRpbnNcbiAgICBpZiAoaXNCdWlsdEluKGltcG9ydFBhdGgsIGNvbnRleHQuc2V0dGluZ3MpKSByZXR1cm5cblxuICAgIGNvbnN0IHJlc29sdmVkUGF0aCA9IHJlc29sdmUoaW1wb3J0UGF0aCwgY29udGV4dClcblxuICAgIC8vIGdldCBleHRlbnNpb24gZnJvbSByZXNvbHZlZCBwYXRoLCBpZiBwb3NzaWJsZS5cbiAgICAvLyBmb3IgdW5yZXNvbHZlZCwgdXNlIHNvdXJjZSB2YWx1ZS5cbiAgICBjb25zdCBleHRlbnNpb24gPSBwYXRoLmV4dG5hbWUocmVzb2x2ZWRQYXRoIHx8IGltcG9ydFBhdGgpLnN1YnN0cmluZygxKVxuXG4gICAgaWYgKCFleHRlbnNpb24gfHwgIWVuZHNXaXRoKGltcG9ydFBhdGgsIGV4dGVuc2lvbikpIHtcbiAgICAgIGlmIChpc1VzZU9mRXh0ZW5zaW9uRW5mb3JjZWQoZXh0ZW5zaW9uKSkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZTogc291cmNlLFxuICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICBgTWlzc2luZyBmaWxlIGV4dGVuc2lvbiAke2V4dGVuc2lvbiA/IGBcIiR7ZXh0ZW5zaW9ufVwiIGAgOiAnJ31mb3IgXCIke2ltcG9ydFBhdGh9XCJgLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZXh0ZW5zaW9uKSB7XG4gICAgICBpZiAoIWlzVXNlT2ZFeHRlbnNpb25FbmZvcmNlZChleHRlbnNpb24pICYmIGlzUmVzb2x2YWJsZVdpdGhvdXRFeHRlbnNpb24oaW1wb3J0UGF0aCkpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGU6IHNvdXJjZSxcbiAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCB1c2Ugb2YgZmlsZSBleHRlbnNpb24gXCIke2V4dGVuc2lvbn1cIiBmb3IgXCIke2ltcG9ydFBhdGh9XCJgLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgSW1wb3J0RGVjbGFyYXRpb246IGNoZWNrRmlsZUV4dGVuc2lvbixcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cy5zY2hlbWEgPSBbXG4gIHtcbiAgICBvbmVPZjogW1xuICAgICAge1xuICAgICAgICBlbnVtOiBbICdhbHdheXMnLCAnbmV2ZXInIF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgcGF0dGVyblByb3BlcnRpZXM6IHtcbiAgICAgICAgICAnLionOiB7IGVudW06IFsgJ2Fsd2F5cycsICduZXZlcicgXSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXVxuIl19

@@ -58,2 +58,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25hbWVkLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0lBQVksSTs7QUFDWjs7Ozs7Ozs7QUFFQSxPQUFPLE9BQVAsR0FBaUIsVUFBVSxPQUFWLEVBQW1CO0FBQ2xDLFdBQVMsZUFBVCxDQUF5QixHQUF6QixFQUE4QixJQUE5QixFQUFvQyxJQUFwQyxFQUEwQztBQUN4QyxRQUFJLEtBQUssTUFBTCxJQUFlLElBQW5CLEVBQXlCLE87O0FBRXpCLFFBQUksQ0FBQyxLQUFLLFVBQUwsQ0FDRSxJQURGLENBQ08sVUFBVSxFQUFWLEVBQWM7QUFBRSxhQUFPLEdBQUcsSUFBSCxLQUFZLElBQW5CO0FBQXlCLEtBRGhELENBQUwsRUFDd0Q7QUFDdEQsYTtBQUNEOztBQUVELFFBQU0sVUFBVSxxQkFBUSxHQUFSLENBQVksS0FBSyxNQUFMLENBQVksS0FBeEIsRUFBK0IsT0FBL0IsQ0FBaEI7QUFDQSxRQUFJLFdBQVcsSUFBZixFQUFxQjs7QUFFckIsUUFBSSxRQUFRLE1BQVIsQ0FBZSxNQUFuQixFQUEyQjtBQUN6QixjQUFRLFlBQVIsQ0FBcUIsT0FBckIsRUFBOEIsSUFBOUI7QUFDQTtBQUNEOztBQUVELFNBQUssVUFBTCxDQUFnQixPQUFoQixDQUF3QixVQUFVLEVBQVYsRUFBYztBQUNwQyxVQUFJLEdBQUcsSUFBSCxLQUFZLElBQWhCLEVBQXNCOztBQUV0QixVQUFNLGFBQWEsUUFBUSxPQUFSLENBQWdCLEdBQUcsR0FBSCxFQUFRLElBQXhCLENBQW5COztBQUVBLFVBQUksQ0FBQyxXQUFXLEtBQWhCLEVBQXVCO0FBQ3JCLFlBQUksV0FBVyxJQUFYLENBQWdCLE1BQWhCLEdBQXlCLENBQTdCLEVBQWdDO0FBQzlCLGNBQU0sV0FBVyxXQUFXLElBQVgsQ0FDZCxHQURjLENBQ1Y7QUFBQSxtQkFBSyxLQUFLLFFBQUwsQ0FBYyxLQUFLLE9BQUwsQ0FBYSxRQUFRLFdBQVIsRUFBYixDQUFkLEVBQW1ELEVBQUUsSUFBckQsQ0FBTDtBQUFBLFdBRFUsRUFFZCxJQUZjLENBRVQsTUFGUyxDQUFqQjs7QUFJQSxrQkFBUSxNQUFSLENBQWUsR0FBRyxHQUFILENBQWYsRUFDSyxHQUFHLEdBQUgsRUFBUSxJQURiLHVCQUNtQyxRQURuQztBQUVELFNBUEQsTUFPTztBQUNMLGtCQUFRLE1BQVIsQ0FBZSxHQUFHLEdBQUgsQ0FBZixFQUNFLEdBQUcsR0FBSCxFQUFRLElBQVIsR0FBZSxrQkFBZixHQUFvQyxLQUFLLE1BQUwsQ0FBWSxLQUFoRCxHQUF3RCxJQUQxRDtBQUVEO0FBQ0Y7QUFDRixLQWxCRDtBQW1CRDs7QUFFRCxTQUFPO0FBQ0wseUJBQXFCLGdCQUFnQixJQUFoQixDQUFzQixJQUF0QixFQUNzQixVQUR0QixFQUVzQixpQkFGdEIsQ0FEaEI7O0FBTUwsOEJBQTBCLGdCQUFnQixJQUFoQixDQUFzQixJQUF0QixFQUNzQixPQUR0QixFQUVzQixpQkFGdEI7QUFOckIsR0FBUDtBQVlELENBbEREIiwiZmlsZSI6InJ1bGVzL25hbWVkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IEV4cG9ydHMgZnJvbSAnLi4vY29yZS9nZXRFeHBvcnRzJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIGZ1bmN0aW9uIGNoZWNrU3BlY2lmaWVycyhrZXksIHR5cGUsIG5vZGUpIHtcbiAgICBpZiAobm9kZS5zb3VyY2UgPT0gbnVsbCkgcmV0dXJuIC8vIGxvY2FsIGV4cG9ydCwgaWdub3JlXG5cbiAgICBpZiAoIW5vZGUuc3BlY2lmaWVyc1xuICAgICAgICAgIC5zb21lKGZ1bmN0aW9uIChpbSkgeyByZXR1cm4gaW0udHlwZSA9PT0gdHlwZSB9KSkge1xuICAgICAgcmV0dXJuIC8vIG5vIG5hbWVkIGltcG9ydHMvZXhwb3J0c1xuICAgIH1cblxuICAgIGNvbnN0IGltcG9ydHMgPSBFeHBvcnRzLmdldChub2RlLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm5cblxuICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIG5vZGUpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBub2RlLnNwZWNpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAoaW0pIHtcbiAgICAgIGlmIChpbS50eXBlICE9PSB0eXBlKSByZXR1cm5cblxuICAgICAgY29uc3QgZGVlcExvb2t1cCA9IGltcG9ydHMuaGFzRGVlcChpbVtrZXldLm5hbWUpXG5cbiAgICAgIGlmICghZGVlcExvb2t1cC5mb3VuZCkge1xuICAgICAgICBpZiAoZGVlcExvb2t1cC5wYXRoLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBjb25zdCBkZWVwUGF0aCA9IGRlZXBMb29rdXAucGF0aFxuICAgICAgICAgICAgLm1hcChpID0+IHBhdGgucmVsYXRpdmUocGF0aC5kaXJuYW1lKGNvbnRleHQuZ2V0RmlsZW5hbWUoKSksIGkucGF0aCkpXG4gICAgICAgICAgICAuam9pbignIC0+ICcpXG5cbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChpbVtrZXldLFxuICAgICAgICAgICAgYCR7aW1ba2V5XS5uYW1lfSBub3QgZm91bmQgdmlhICR7ZGVlcFBhdGh9YClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChpbVtrZXldLFxuICAgICAgICAgICAgaW1ba2V5XS5uYW1lICsgJyBub3QgZm91bmQgaW4gXFwnJyArIG5vZGUuc291cmNlLnZhbHVlICsgJ1xcJycpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAnSW1wb3J0RGVjbGFyYXRpb24nOiBjaGVja1NwZWNpZmllcnMuYmluZCggbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAnaW1wb3J0ZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICdJbXBvcnRTcGVjaWZpZXInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuXG4gICAgJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nOiBjaGVja1NwZWNpZmllcnMuYmluZCggbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICdsb2NhbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAnRXhwb3J0U3BlY2lmaWVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICB9XG5cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25hbWVkLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7O0lBQVksSTs7QUFDWjs7Ozs7Ozs7QUFFQSxPQUFPLE9BQVAsR0FBaUIsVUFBVSxPQUFWLEVBQW1CO0FBQ2xDLFdBQVMsZUFBVCxDQUF5QixHQUF6QixFQUE4QixJQUE5QixFQUFvQyxJQUFwQyxFQUEwQztBQUN4QyxRQUFJLEtBQUssTUFBTCxJQUFlLElBQW5CLEVBQXlCLE9BRGUsQ0FDUjs7QUFFaEMsUUFBSSxDQUFDLEtBQUssVUFBTCxDQUNFLElBREYsQ0FDTyxVQUFVLEVBQVYsRUFBYztBQUFFLGFBQU8sR0FBRyxJQUFILEtBQVksSUFBbkI7QUFBeUIsS0FEaEQsQ0FBTCxFQUN3RDtBQUN0RCxhQURzRCxDQUMvQztBQUNSOztBQUVELFFBQU0sVUFBVSxxQkFBUSxHQUFSLENBQVksS0FBSyxNQUFMLENBQVksS0FBeEIsRUFBK0IsT0FBL0IsQ0FBaEI7QUFDQSxRQUFJLFdBQVcsSUFBZixFQUFxQjs7QUFFckIsUUFBSSxRQUFRLE1BQVIsQ0FBZSxNQUFuQixFQUEyQjtBQUN6QixjQUFRLFlBQVIsQ0FBcUIsT0FBckIsRUFBOEIsSUFBOUI7QUFDQTtBQUNEOztBQUVELFNBQUssVUFBTCxDQUFnQixPQUFoQixDQUF3QixVQUFVLEVBQVYsRUFBYztBQUNwQyxVQUFJLEdBQUcsSUFBSCxLQUFZLElBQWhCLEVBQXNCOztBQUV0QixVQUFNLGFBQWEsUUFBUSxPQUFSLENBQWdCLEdBQUcsR0FBSCxFQUFRLElBQXhCLENBQW5COztBQUVBLFVBQUksQ0FBQyxXQUFXLEtBQWhCLEVBQXVCO0FBQ3JCLFlBQUksV0FBVyxJQUFYLENBQWdCLE1BQWhCLEdBQXlCLENBQTdCLEVBQWdDO0FBQzlCLGNBQU0sV0FBVyxXQUFXLElBQVgsQ0FDZCxHQURjLENBQ1Y7QUFBQSxtQkFBSyxLQUFLLFFBQUwsQ0FBYyxLQUFLLE9BQUwsQ0FBYSxRQUFRLFdBQVIsRUFBYixDQUFkLEVBQW1ELEVBQUUsSUFBckQsQ0FBTDtBQUFBLFdBRFUsRUFFZCxJQUZjLENBRVQsTUFGUyxDQUFqQjs7QUFJQSxrQkFBUSxNQUFSLENBQWUsR0FBRyxHQUFILENBQWYsRUFDSyxHQUFHLEdBQUgsRUFBUSxJQURiLHVCQUNtQyxRQURuQztBQUVELFNBUEQsTUFPTztBQUNMLGtCQUFRLE1BQVIsQ0FBZSxHQUFHLEdBQUgsQ0FBZixFQUNFLEdBQUcsR0FBSCxFQUFRLElBQVIsR0FBZSxrQkFBZixHQUFvQyxLQUFLLE1BQUwsQ0FBWSxLQUFoRCxHQUF3RCxJQUQxRDtBQUVEO0FBQ0Y7QUFDRixLQWxCRDtBQW1CRDs7QUFFRCxTQUFPO0FBQ0wseUJBQXFCLGdCQUFnQixJQUFoQixDQUFzQixJQUF0QixFQUNzQixVQUR0QixFQUVzQixpQkFGdEIsQ0FEaEI7O0FBTUwsOEJBQTBCLGdCQUFnQixJQUFoQixDQUFzQixJQUF0QixFQUNzQixPQUR0QixFQUVzQixpQkFGdEI7QUFOckIsR0FBUDtBQVlELENBbEREIiwiZmlsZSI6InJ1bGVzL25hbWVkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IEV4cG9ydHMgZnJvbSAnLi4vY29yZS9nZXRFeHBvcnRzJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIGZ1bmN0aW9uIGNoZWNrU3BlY2lmaWVycyhrZXksIHR5cGUsIG5vZGUpIHtcbiAgICBpZiAobm9kZS5zb3VyY2UgPT0gbnVsbCkgcmV0dXJuIC8vIGxvY2FsIGV4cG9ydCwgaWdub3JlXG5cbiAgICBpZiAoIW5vZGUuc3BlY2lmaWVyc1xuICAgICAgICAgIC5zb21lKGZ1bmN0aW9uIChpbSkgeyByZXR1cm4gaW0udHlwZSA9PT0gdHlwZSB9KSkge1xuICAgICAgcmV0dXJuIC8vIG5vIG5hbWVkIGltcG9ydHMvZXhwb3J0c1xuICAgIH1cblxuICAgIGNvbnN0IGltcG9ydHMgPSBFeHBvcnRzLmdldChub2RlLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm5cblxuICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIG5vZGUpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBub2RlLnNwZWNpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAoaW0pIHtcbiAgICAgIGlmIChpbS50eXBlICE9PSB0eXBlKSByZXR1cm5cblxuICAgICAgY29uc3QgZGVlcExvb2t1cCA9IGltcG9ydHMuaGFzRGVlcChpbVtrZXldLm5hbWUpXG5cbiAgICAgIGlmICghZGVlcExvb2t1cC5mb3VuZCkge1xuICAgICAgICBpZiAoZGVlcExvb2t1cC5wYXRoLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBjb25zdCBkZWVwUGF0aCA9IGRlZXBMb29rdXAucGF0aFxuICAgICAgICAgICAgLm1hcChpID0+IHBhdGgucmVsYXRpdmUocGF0aC5kaXJuYW1lKGNvbnRleHQuZ2V0RmlsZW5hbWUoKSksIGkucGF0aCkpXG4gICAgICAgICAgICAuam9pbignIC0+ICcpXG5cbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChpbVtrZXldLFxuICAgICAgICAgICAgYCR7aW1ba2V5XS5uYW1lfSBub3QgZm91bmQgdmlhICR7ZGVlcFBhdGh9YClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChpbVtrZXldLFxuICAgICAgICAgICAgaW1ba2V5XS5uYW1lICsgJyBub3QgZm91bmQgaW4gXFwnJyArIG5vZGUuc291cmNlLnZhbHVlICsgJ1xcJycpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAnSW1wb3J0RGVjbGFyYXRpb24nOiBjaGVja1NwZWNpZmllcnMuYmluZCggbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAnaW1wb3J0ZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICdJbXBvcnRTcGVjaWZpZXInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuXG4gICAgJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nOiBjaGVja1NwZWNpZmllcnMuYmluZCggbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICdsb2NhbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAnRXhwb3J0U3BlY2lmaWVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICB9XG5cbn1cbiJdfQ==

@@ -164,2 +164,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,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SSw2QkFBYyxPQUFkLEVBQXVCLEtBQUssSUFBNUIsTUFBc0MsUUFBMUMsRUFBb0Q7OztBQUdwRCxlQUFTLE9BQVQsQ0FBaUIsT0FBakIsRUFBMEIsU0FBMUIsRUFBeUQ7QUFBQSxZQUFwQixJQUFvQix5REFBYixDQUFDLEtBQUssSUFBTixDQUFhOztBQUN2RCxZQUFJLEVBQUUseUNBQUYsQ0FBSixFQUFxQzs7QUFFckMsWUFBSSxRQUFRLElBQVIsS0FBaUIsZUFBckIsRUFBc0M7O0FBRXRDLGdCQUFRLFVBQVIsQ0FBbUIsT0FBbkIsQ0FBMkIsVUFBQyxRQUFELEVBQWM7QUFDdkMsY0FBSSxTQUFTLEdBQVQsQ0FBYSxJQUFiLEtBQXNCLFlBQTFCLEVBQXdDO0FBQ3RDLG9CQUFRLE1BQVIsQ0FBZTtBQUNiLG9CQUFNLFFBRE87QUFFYix1QkFBUztBQUZJLGFBQWY7QUFJRCxXQUxELE1BS08sSUFBSSxDQUFDLFVBQVUsR0FBVixDQUFjLFNBQVMsR0FBVCxDQUFhLElBQTNCLENBQUwsRUFBdUM7QUFDNUMsb0JBQVEsTUFBUixDQUFlO0FBQ2Isb0JBQU0sUUFETztBQUViLHVCQUFTLFlBQVksU0FBUyxHQUFyQixFQUEwQixJQUExQjtBQUZJLGFBQWY7QUFJRCxXQUxNLE1BS0E7QUFDTCxpQkFBSyxJQUFMLENBQVUsU0FBUyxHQUFULENBQWEsSUFBdkI7QUFDQSxvQkFBUSxTQUFTLEtBQWpCLEVBQXdCLFVBQVUsR0FBVixDQUFjLFNBQVMsR0FBVCxDQUFhLElBQTNCLEVBQWlDLFNBQXpELEVBQW9FLElBQXBFO0FBQ0EsaUJBQUssR0FBTDtBQUNEO0FBQ0YsU0FoQkQ7QUFpQkQ7O0FBRUQsY0FBUSxFQUFSLEVBQVksV0FBVyxHQUFYLENBQWUsS0FBSyxJQUFwQixDQUFaO0FBQ0Q7QUF0SUksR0FBUDtBQXdJRCxDQWxKRCIsImZpbGUiOiJydWxlcy9uYW1lc3BhY2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTWFwIGZyb20gJ2VzNi1tYXAnXG5cbmltcG9ydCBFeHBvcnRzIGZyb20gJy4uL2NvcmUvZ2V0RXhwb3J0cydcbmltcG9ydCBpbXBvcnREZWNsYXJhdGlvbiBmcm9tICcuLi9pbXBvcnREZWNsYXJhdGlvbidcbmltcG9ydCBkZWNsYXJlZFNjb3BlIGZyb20gJy4uL2NvcmUvZGVjbGFyZWRTY29wZSdcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuXG4gIGNvbnN0IG5hbWVzcGFjZXMgPSBuZXcgTWFwKClcblxuICBmdW5jdGlvbiBtYWtlTWVzc2FnZShsYXN0LCBuYW1lcGF0aCkge1xuICAgICByZXR1cm4gYCcke2xhc3QubmFtZX0nIG5vdCBmb3VuZCBpbmAgK1xuICAgICAgICAgICAgKG5hbWVwYXRoLmxlbmd0aCA+IDEgPyAnIGRlZXBseSAnIDogJyAnKSArXG4gICAgICAgICAgICBgaW1wb3J0ZWQgbmFtZXNwYWNlICcke25hbWVwYXRoLmpvaW4oJy4nKX0nLmBcbiAgfVxuXG4gIHJldHVybiB7XG5cbiAgICAvLyBwaWNrIHVwIGFsbCBpbXBvcnRzIGF0IGJvZHkgZW50cnkgdGltZSwgdG8gcHJvcGVybHkgcmVzcGVjdCBob2lzdGluZ1xuICAgICdQcm9ncmFtJzogZnVuY3Rpb24gKHsgYm9keSB9KSB7XG4gICAgICBmdW5jdGlvbiBwcm9jZXNzQm9keVN0YXRlbWVudChkZWNsYXJhdGlvbikge1xuICAgICAgICBpZiAoZGVjbGFyYXRpb24udHlwZSAhPT0gJ0ltcG9ydERlY2xhcmF0aW9uJykgcmV0dXJuXG5cbiAgICAgICAgaWYgKGRlY2xhcmF0aW9uLnNwZWNpZmllcnMubGVuZ3RoID09PSAwKSByZXR1cm5cblxuICAgICAgICBjb25zdCBpbXBvcnRzID0gRXhwb3J0cy5nZXQoZGVjbGFyYXRpb24uc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgICAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm4gbnVsbFxuXG4gICAgICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICBpbXBvcnRzLnJlcG9ydEVycm9ycyhjb250ZXh0LCBkZWNsYXJhdGlvbilcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGRlY2xhcmF0aW9uLnNwZWNpZmllcnMuZm9yRWFjaCgoc3BlY2lmaWVyKSA9PiB7XG4gICAgICAgICAgc3dpdGNoIChzcGVjaWZpZXIudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJzpcbiAgICAgICAgICAgICAgaWYgKCFpbXBvcnRzLnNpemUpIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydChzcGVjaWZpZXIsXG4gICAgICAgICAgICAgICAgICBgTm8gZXhwb3J0ZWQgbmFtZXMgZm91bmQgaW4gbW9kdWxlICcke2RlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZX0nLmApXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgbmFtZXNwYWNlcy5zZXQoc3BlY2lmaWVyLmxvY2FsLm5hbWUsIGltcG9ydHMpXG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBjYXNlICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJzpcbiAgICAgICAgICAgIGNhc2UgJ0ltcG9ydFNwZWNpZmllcic6IHtcbiAgICAgICAgICAgICAgY29uc3QgbWV0YSA9IGltcG9ydHMuZ2V0KFxuICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgdG8gJ2RlZmF1bHQnIGZvciBkZWZhdWx0IGh0dHA6Ly9pLmltZ3VyLmNvbS9uajZxQVd5LmpwZ1xuICAgICAgICAgICAgICAgIHNwZWNpZmllci5pbXBvcnRlZCA/IHNwZWNpZmllci5pbXBvcnRlZC5uYW1lIDogJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICBpZiAoIW1ldGEgfHwgIW1ldGEubmFtZXNwYWNlKSBicmVha1xuICAgICAgICAgICAgICBuYW1lc3BhY2VzLnNldChzcGVjaWZpZXIubG9jYWwubmFtZSwgbWV0YS5uYW1lc3BhY2UpXG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgYm9keS5mb3JFYWNoKHByb2Nlc3NCb2R5U3RhdGVtZW50KVxuICAgIH0sXG5cbiAgICAvLyBzYW1lIGFzIGFib3ZlLCBidXQgZG9lcyBub3QgYWRkIG5hbWVzIHRvIGxvY2FsIG1hcFxuICAgICdFeHBvcnROYW1lc3BhY2VTcGVjaWZpZXInOiBmdW5jdGlvbiAobmFtZXNwYWNlKSB7XG4gICAgICB2YXIgZGVjbGFyYXRpb24gPSBpbXBvcnREZWNsYXJhdGlvbihjb250ZXh0KVxuXG4gICAgICB2YXIgaW1wb3J0cyA9IEV4cG9ydHMuZ2V0KGRlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICAgIGlmIChpbXBvcnRzID09IG51bGwpIHJldHVybiBudWxsXG5cbiAgICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgaW1wb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgZGVjbGFyYXRpb24pXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoIWltcG9ydHMuc2l6ZSkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChuYW1lc3BhY2UsXG4gICAgICAgICAgYE5vIGV4cG9ydGVkIG5hbWVzIGZvdW5kIGluIG1vZHVsZSAnJHtkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWV9Jy5gKVxuICAgICAgfVxuICAgIH0sXG5cbiAgICAvLyB0b2RvOiBjaGVjayBmb3IgcG9zc2libGUgcmVkZWZpbml0aW9uXG5cbiAgICAnTWVtYmVyRXhwcmVzc2lvbic6IGZ1bmN0aW9uIChkZXJlZmVyZW5jZSkge1xuICAgICAgaWYgKGRlcmVmZXJlbmNlLm9iamVjdC50eXBlICE9PSAnSWRlbnRpZmllcicpIHJldHVyblxuICAgICAgaWYgKCFuYW1lc3BhY2VzLmhhcyhkZXJlZmVyZW5jZS5vYmplY3QubmFtZSkpIHJldHVyblxuXG4gICAgICBpZiAoZGVyZWZlcmVuY2UucGFyZW50LnR5cGUgPT09ICdBc3NpZ25tZW50RXhwcmVzc2lvbicgJiZcbiAgICAgICAgICBkZXJlZmVyZW5jZS5wYXJlbnQubGVmdCA9PT0gZGVyZWZlcmVuY2UpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChkZXJlZmVyZW5jZS5wYXJlbnQsXG4gICAgICAgICAgICAgIGBBc3NpZ25tZW50IHRvIG1lbWJlciBvZiBuYW1lc3BhY2UgJyR7ZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWV9Jy5gKVxuICAgICAgfVxuXG4gICAgICAvLyBnbyBkZWVwXG4gICAgICB2YXIgbmFtZXNwYWNlID0gbmFtZXNwYWNlcy5nZXQoZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpXG4gICAgICB2YXIgbmFtZXBhdGggPSBbZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWVdXG4gICAgICAvLyB3aGlsZSBwcm9wZXJ0eSBpcyBuYW1lc3BhY2UgYW5kIHBhcmVudCBpcyBtZW1iZXIgZXhwcmVzc2lvbiwga2VlcCB2YWxpZGF0aW5nXG4gICAgICB3aGlsZSAobmFtZXNwYWNlIGluc3RhbmNlb2YgRXhwb3J0cyAmJlxuICAgICAgICAgICAgIGRlcmVmZXJlbmNlLnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJykge1xuXG4gICAgICAgIGlmIChkZXJlZmVyZW5jZS5jb21wdXRlZCkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KGRlcmVmZXJlbmNlLnByb3BlcnR5LFxuICAgICAgICAgICAgJ1VuYWJsZSB0byB2YWxpZGF0ZSBjb21wdXRlZCByZWZlcmVuY2UgdG8gaW1wb3J0ZWQgbmFtZXNwYWNlIFxcJycgK1xuICAgICAgICAgICAgZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUgKyAnXFwnLicpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW5hbWVzcGFjZS5oYXMoZGVyZWZlcmVuY2UucHJvcGVydHkubmFtZSkpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChcbiAgICAgICAgICAgIGRlcmVmZXJlbmNlLnByb3BlcnR5LFxuICAgICAgICAgICAgbWFrZU1lc3NhZ2UoZGVyZWZlcmVuY2UucHJvcGVydHksIG5hbWVwYXRoKSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc3Rhc2ggYW5kIHBvcFxuICAgICAgICBuYW1lcGF0aC5wdXNoKGRlcmVmZXJlbmNlLnByb3BlcnR5Lm5hbWUpXG4gICAgICAgIG5hbWVzcGFjZSA9IG5hbWVzcGFjZS5nZXQoZGVyZWZlcmVuY2UucHJvcGVydHkubmFtZSkubmFtZXNwYWNlXG4gICAgICAgIGRlcmVmZXJlbmNlID0gZGVyZWZlcmVuY2UucGFyZW50XG4gICAgICB9XG5cbiAgICB9LFxuXG4gICAgJ1ZhcmlhYmxlRGVjbGFyYXRvcic6IGZ1bmN0aW9uICh7IGlkLCBpbml0IH0pIHtcbiAgICAgIGlmIChpbml0ID09IG51bGwpIHJldHVyblxuICAgICAgaWYgKGluaXQudHlwZSAhPT0gJ0lkZW50aWZpZXInKSByZXR1cm5cbiAgICAgIGlmICghbmFtZXNwYWNlcy5oYXMoaW5pdC5uYW1lKSkgcmV0dXJuXG5cbiAgICAgIC8vIGNoZWNrIGZvciByZWRlZmluaXRpb24gaW4gaW50ZXJtZWRpYXRlIHNjb3Blc1xuICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgaW5pdC5uYW1lKSAhPT0gJ21vZHVsZScpIHJldHVyblxuXG4gICAgICAvLyBERlMgdHJhdmVyc2UgY2hpbGQgbmFtZXNwYWNlc1xuICAgICAgZnVuY3Rpb24gdGVzdEtleShwYXR0ZXJuLCBuYW1lc3BhY2UsIHBhdGggPSBbaW5pdC5uYW1lXSkge1xuICAgICAgICBpZiAoIShuYW1lc3BhY2UgaW5zdGFuY2VvZiBFeHBvcnRzKSkgcmV0dXJuXG5cbiAgICAgICAgaWYgKHBhdHRlcm4udHlwZSAhPT0gJ09iamVjdFBhdHRlcm4nKSByZXR1cm5cblxuICAgICAgICBwYXR0ZXJuLnByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICAgICAgICBpZiAocHJvcGVydHkua2V5LnR5cGUgIT09ICdJZGVudGlmaWVyJykge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICBub2RlOiBwcm9wZXJ0eSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ09ubHkgZGVzdHJ1Y3R1cmUgdG9wLWxldmVsIG5hbWVzLicsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSBpZiAoIW5hbWVzcGFjZS5oYXMocHJvcGVydHkua2V5Lm5hbWUpKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIG5vZGU6IHByb3BlcnR5LFxuICAgICAgICAgICAgICBtZXNzYWdlOiBtYWtlTWVzc2FnZShwcm9wZXJ0eS5rZXksIHBhdGgpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGF0aC5wdXNoKHByb3BlcnR5LmtleS5uYW1lKVxuICAgICAgICAgICAgdGVzdEtleShwcm9wZXJ0eS52YWx1ZSwgbmFtZXNwYWNlLmdldChwcm9wZXJ0eS5rZXkubmFtZSkubmFtZXNwYWNlLCBwYXRoKVxuICAgICAgICAgICAgcGF0aC5wb3AoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgdGVzdEtleShpZCwgbmFtZXNwYWNlcy5nZXQoaW5pdC5uYW1lKSlcbiAgICB9LFxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25hbWVzcGFjZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7O0FBRUE7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFFQSxPQUFPLE9BQVAsR0FBaUIsVUFBVSxPQUFWLEVBQW1COztBQUVsQyxNQUFNLGFBQWEsc0JBQW5COztBQUVBLFdBQVMsV0FBVCxDQUFxQixJQUFyQixFQUEyQixRQUEzQixFQUFxQztBQUNsQyxXQUFPLE9BQUksS0FBSyxJQUFULHdCQUNDLFNBQVMsTUFBVCxHQUFrQixDQUFsQixHQUFzQixVQUF0QixHQUFtQyxHQURwQywrQkFFdUIsU0FBUyxJQUFULENBQWMsR0FBZCxDQUZ2QixTQUFQO0FBR0Y7O0FBRUQsU0FBTzs7QUFFTDtBQUNBLGVBQVcsdUJBQW9CO0FBQUEsVUFBUixJQUFRLFFBQVIsSUFBUTs7QUFDN0IsZUFBUyxvQkFBVCxDQUE4QixXQUE5QixFQUEyQztBQUN6QyxZQUFJLFlBQVksSUFBWixLQUFxQixtQkFBekIsRUFBOEM7O0FBRTlDLFlBQUksWUFBWSxVQUFaLENBQXVCLE1BQXZCLEtBQWtDLENBQXRDLEVBQXlDOztBQUV6QyxZQUFNLFVBQVUscUJBQVEsR0FBUixDQUFZLFlBQVksTUFBWixDQUFtQixLQUEvQixFQUFzQyxPQUF0QyxDQUFoQjtBQUNBLFlBQUksV0FBVyxJQUFmLEVBQXFCLE9BQU8sSUFBUDs7QUFFckIsWUFBSSxRQUFRLE1BQVIsQ0FBZSxNQUFuQixFQUEyQjtBQUN6QixrQkFBUSxZQUFSLENBQXFCLE9BQXJCLEVBQThCLFdBQTlCO0FBQ0E7QUFDRDs7QUFFRCxvQkFBWSxVQUFaLENBQXVCLE9BQXZCLENBQStCLFVBQUMsU0FBRCxFQUFlO0FBQzVDLGtCQUFRLFVBQVUsSUFBbEI7QUFDRSxpQkFBSywwQkFBTDtBQUNFLGtCQUFJLENBQUMsUUFBUSxJQUFiLEVBQW1CO0FBQ2pCLHdCQUFRLE1BQVIsQ0FBZSxTQUFmLDJDQUN3QyxZQUFZLE1BQVosQ0FBbUIsS0FEM0Q7QUFFRDtBQUNELHlCQUFXLEdBQVgsQ0FBZSxVQUFVLEtBQVYsQ0FBZ0IsSUFBL0IsRUFBcUMsT0FBckM7QUFDQTtBQUNGLGlCQUFLLHdCQUFMO0FBQ0EsaUJBQUssaUJBQUw7QUFBd0I7QUFDdEIsb0JBQU0sT0FBTyxRQUFRLEdBQVI7QUFDWDtBQUNBLDBCQUFVLFFBQVYsR0FBcUIsVUFBVSxRQUFWLENBQW1CLElBQXhDLEdBQStDLFNBRnBDLENBQWI7QUFHQSxvQkFBSSxDQUFDLElBQUQsSUFBUyxDQUFDLEtBQUssU0FBbkIsRUFBOEI7QUFDOUIsMkJBQVcsR0FBWCxDQUFlLFVBQVUsS0FBVixDQUFnQixJQUEvQixFQUFxQyxLQUFLLFNBQTFDO0FBQ0E7QUFDRDtBQWhCSDtBQWtCRCxTQW5CRDtBQW9CRDtBQUNELFdBQUssT0FBTCxDQUFhLG9CQUFiO0FBQ0QsS0F2Q0k7O0FBeUNMO0FBQ0EsZ0NBQTRCLGtDQUFVLFNBQVYsRUFBcUI7QUFDL0MsVUFBSSxjQUFjLGlDQUFrQixPQUFsQixDQUFsQjs7QUFFQSxVQUFJLFVBQVUscUJBQVEsR0FBUixDQUFZLFlBQVksTUFBWixDQUFtQixLQUEvQixFQUFzQyxPQUF0QyxDQUFkO0FBQ0EsVUFBSSxXQUFXLElBQWYsRUFBcUIsT0FBTyxJQUFQOztBQUVyQixVQUFJLFFBQVEsTUFBUixDQUFlLE1BQW5CLEVBQTJCO0FBQ3pCLGdCQUFRLFlBQVIsQ0FBcUIsT0FBckIsRUFBOEIsV0FBOUI7QUFDQTtBQUNEOztBQUVELFVBQUksQ0FBQyxRQUFRLElBQWIsRUFBbUI7QUFDakIsZ0JBQVEsTUFBUixDQUFlLFNBQWYsMkNBQ3dDLFlBQVksTUFBWixDQUFtQixLQUQzRDtBQUVEO0FBQ0YsS0F6REk7O0FBMkRMOztBQUVBLHdCQUFvQiwwQkFBVSxXQUFWLEVBQXVCO0FBQ3pDLFVBQUksWUFBWSxNQUFaLENBQW1CLElBQW5CLEtBQTRCLFlBQWhDLEVBQThDO0FBQzlDLFVBQUksQ0FBQyxXQUFXLEdBQVgsQ0FBZSxZQUFZLE1BQVosQ0FBbUIsSUFBbEMsQ0FBTCxFQUE4Qzs7QUFFOUMsVUFBSSxZQUFZLE1BQVosQ0FBbUIsSUFBbkIsS0FBNEIsc0JBQTVCLElBQ0EsWUFBWSxNQUFaLENBQW1CLElBQW5CLEtBQTRCLFdBRGhDLEVBQzZDO0FBQ3pDLGdCQUFRLE1BQVIsQ0FBZSxZQUFZLE1BQTNCLDJDQUMwQyxZQUFZLE1BQVosQ0FBbUIsSUFEN0Q7QUFFSDs7QUFFRDtBQUNBLFVBQUksWUFBWSxXQUFXLEdBQVgsQ0FBZSxZQUFZLE1BQVosQ0FBbUIsSUFBbEMsQ0FBaEI7QUFDQSxVQUFJLFdBQVcsQ0FBQyxZQUFZLE1BQVosQ0FBbUIsSUFBcEIsQ0FBZjtBQUNBO0FBQ0EsYUFBTyw2Q0FDQSxZQUFZLElBQVosS0FBcUIsa0JBRDVCLEVBQ2dEOztBQUU5QyxZQUFJLFlBQVksUUFBaEIsRUFBMEI7QUFDeEIsa0JBQVEsTUFBUixDQUFlLFlBQVksUUFBM0IsRUFDRSxtRUFDQSxZQUFZLE1BQVosQ0FBbUIsSUFEbkIsR0FDMEIsS0FGNUI7QUFHQTtBQUNEOztBQUVELFlBQUksQ0FBQyxVQUFVLEdBQVYsQ0FBYyxZQUFZLFFBQVosQ0FBcUIsSUFBbkMsQ0FBTCxFQUErQztBQUM3QyxrQkFBUSxNQUFSLENBQ0UsWUFBWSxRQURkLEVBRUUsWUFBWSxZQUFZLFFBQXhCLEVBQWtDLFFBQWxDLENBRkY7QUFHQTtBQUNEOztBQUVEO0FBQ0EsaUJBQVMsSUFBVCxDQUFjLFlBQVksUUFBWixDQUFxQixJQUFuQztBQUNBLG9CQUFZLFVBQVUsR0FBVixDQUFjLFlBQVksUUFBWixDQUFxQixJQUFuQyxFQUF5QyxTQUFyRDtBQUNBLHNCQUFjLFlBQVksTUFBMUI7QUFDRDtBQUVGLEtBbEdJOztBQW9HTCwwQkFBc0IsbUNBQXdCO0FBQUEsVUFBWixFQUFZLFNBQVosRUFBWTtBQUFBLFVBQVIsSUFBUSxTQUFSLElBQVE7O0FBQzVDLFVBQUksUUFBUSxJQUFaLEVBQWtCO0FBQ2xCLFVBQUksS0FBSyxJQUFMLEtBQWMsWUFBbEIsRUFBZ0M7QUFDaEMsVUFBSSxDQUFDLFdBQVcsR0FBWCxDQUFlLEtBQUssSUFBcEIsQ0FBTCxFQUFnQzs7QUFFaEM7QUFDQSxVQUFJLDZCQUFjLE9BQWQsRUFBdUIsS0FBSyxJQUE1QixNQUFzQyxRQUExQyxFQUFvRDs7QUFFcEQ7QUFDQSxlQUFTLE9BQVQsQ0FBaUIsT0FBakIsRUFBMEIsU0FBMUIsRUFBeUQ7QUFBQSxZQUFwQixJQUFvQix5REFBYixDQUFDLEtBQUssSUFBTixDQUFhOztBQUN2RCxZQUFJLEVBQUUseUNBQUYsQ0FBSixFQUFxQzs7QUFFckMsWUFBSSxRQUFRLElBQVIsS0FBaUIsZUFBckIsRUFBc0M7O0FBRXRDLGdCQUFRLFVBQVIsQ0FBbUIsT0FBbkIsQ0FBMkIsVUFBQyxRQUFELEVBQWM7QUFDdkMsY0FBSSxTQUFTLEdBQVQsQ0FBYSxJQUFiLEtBQXNCLFlBQTFCLEVBQXdDO0FBQ3RDLG9CQUFRLE1BQVIsQ0FBZTtBQUNiLG9CQUFNLFFBRE87QUFFYix1QkFBUztBQUZJLGFBQWY7QUFJRCxXQUxELE1BS08sSUFBSSxDQUFDLFVBQVUsR0FBVixDQUFjLFNBQVMsR0FBVCxDQUFhLElBQTNCLENBQUwsRUFBdUM7QUFDNUMsb0JBQVEsTUFBUixDQUFlO0FBQ2Isb0JBQU0sUUFETztBQUViLHVCQUFTLFlBQVksU0FBUyxHQUFyQixFQUEwQixJQUExQjtBQUZJLGFBQWY7QUFJRCxXQUxNLE1BS0E7QUFDTCxpQkFBSyxJQUFMLENBQVUsU0FBUyxHQUFULENBQWEsSUFBdkI7QUFDQSxvQkFBUSxTQUFTLEtBQWpCLEVBQXdCLFVBQVUsR0FBVixDQUFjLFNBQVMsR0FBVCxDQUFhLElBQTNCLEVBQWlDLFNBQXpELEVBQW9FLElBQXBFO0FBQ0EsaUJBQUssR0FBTDtBQUNEO0FBQ0YsU0FoQkQ7QUFpQkQ7O0FBRUQsY0FBUSxFQUFSLEVBQVksV0FBVyxHQUFYLENBQWUsS0FBSyxJQUFwQixDQUFaO0FBQ0Q7QUF0SUksR0FBUDtBQXdJRCxDQWxKRCIsImZpbGUiOiJydWxlcy9uYW1lc3BhY2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTWFwIGZyb20gJ2VzNi1tYXAnXG5cbmltcG9ydCBFeHBvcnRzIGZyb20gJy4uL2NvcmUvZ2V0RXhwb3J0cydcbmltcG9ydCBpbXBvcnREZWNsYXJhdGlvbiBmcm9tICcuLi9pbXBvcnREZWNsYXJhdGlvbidcbmltcG9ydCBkZWNsYXJlZFNjb3BlIGZyb20gJy4uL2NvcmUvZGVjbGFyZWRTY29wZSdcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuXG4gIGNvbnN0IG5hbWVzcGFjZXMgPSBuZXcgTWFwKClcblxuICBmdW5jdGlvbiBtYWtlTWVzc2FnZShsYXN0LCBuYW1lcGF0aCkge1xuICAgICByZXR1cm4gYCcke2xhc3QubmFtZX0nIG5vdCBmb3VuZCBpbmAgK1xuICAgICAgICAgICAgKG5hbWVwYXRoLmxlbmd0aCA+IDEgPyAnIGRlZXBseSAnIDogJyAnKSArXG4gICAgICAgICAgICBgaW1wb3J0ZWQgbmFtZXNwYWNlICcke25hbWVwYXRoLmpvaW4oJy4nKX0nLmBcbiAgfVxuXG4gIHJldHVybiB7XG5cbiAgICAvLyBwaWNrIHVwIGFsbCBpbXBvcnRzIGF0IGJvZHkgZW50cnkgdGltZSwgdG8gcHJvcGVybHkgcmVzcGVjdCBob2lzdGluZ1xuICAgICdQcm9ncmFtJzogZnVuY3Rpb24gKHsgYm9keSB9KSB7XG4gICAgICBmdW5jdGlvbiBwcm9jZXNzQm9keVN0YXRlbWVudChkZWNsYXJhdGlvbikge1xuICAgICAgICBpZiAoZGVjbGFyYXRpb24udHlwZSAhPT0gJ0ltcG9ydERlY2xhcmF0aW9uJykgcmV0dXJuXG5cbiAgICAgICAgaWYgKGRlY2xhcmF0aW9uLnNwZWNpZmllcnMubGVuZ3RoID09PSAwKSByZXR1cm5cblxuICAgICAgICBjb25zdCBpbXBvcnRzID0gRXhwb3J0cy5nZXQoZGVjbGFyYXRpb24uc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgICAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm4gbnVsbFxuXG4gICAgICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICBpbXBvcnRzLnJlcG9ydEVycm9ycyhjb250ZXh0LCBkZWNsYXJhdGlvbilcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGRlY2xhcmF0aW9uLnNwZWNpZmllcnMuZm9yRWFjaCgoc3BlY2lmaWVyKSA9PiB7XG4gICAgICAgICAgc3dpdGNoIChzcGVjaWZpZXIudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJzpcbiAgICAgICAgICAgICAgaWYgKCFpbXBvcnRzLnNpemUpIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydChzcGVjaWZpZXIsXG4gICAgICAgICAgICAgICAgICBgTm8gZXhwb3J0ZWQgbmFtZXMgZm91bmQgaW4gbW9kdWxlICcke2RlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZX0nLmApXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgbmFtZXNwYWNlcy5zZXQoc3BlY2lmaWVyLmxvY2FsLm5hbWUsIGltcG9ydHMpXG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICBjYXNlICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJzpcbiAgICAgICAgICAgIGNhc2UgJ0ltcG9ydFNwZWNpZmllcic6IHtcbiAgICAgICAgICAgICAgY29uc3QgbWV0YSA9IGltcG9ydHMuZ2V0KFxuICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgdG8gJ2RlZmF1bHQnIGZvciBkZWZhdWx0IGh0dHA6Ly9pLmltZ3VyLmNvbS9uajZxQVd5LmpwZ1xuICAgICAgICAgICAgICAgIHNwZWNpZmllci5pbXBvcnRlZCA/IHNwZWNpZmllci5pbXBvcnRlZC5uYW1lIDogJ2RlZmF1bHQnKVxuICAgICAgICAgICAgICBpZiAoIW1ldGEgfHwgIW1ldGEubmFtZXNwYWNlKSBicmVha1xuICAgICAgICAgICAgICBuYW1lc3BhY2VzLnNldChzcGVjaWZpZXIubG9jYWwubmFtZSwgbWV0YS5uYW1lc3BhY2UpXG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgYm9keS5mb3JFYWNoKHByb2Nlc3NCb2R5U3RhdGVtZW50KVxuICAgIH0sXG5cbiAgICAvLyBzYW1lIGFzIGFib3ZlLCBidXQgZG9lcyBub3QgYWRkIG5hbWVzIHRvIGxvY2FsIG1hcFxuICAgICdFeHBvcnROYW1lc3BhY2VTcGVjaWZpZXInOiBmdW5jdGlvbiAobmFtZXNwYWNlKSB7XG4gICAgICB2YXIgZGVjbGFyYXRpb24gPSBpbXBvcnREZWNsYXJhdGlvbihjb250ZXh0KVxuXG4gICAgICB2YXIgaW1wb3J0cyA9IEV4cG9ydHMuZ2V0KGRlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICAgIGlmIChpbXBvcnRzID09IG51bGwpIHJldHVybiBudWxsXG5cbiAgICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgaW1wb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgZGVjbGFyYXRpb24pXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoIWltcG9ydHMuc2l6ZSkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChuYW1lc3BhY2UsXG4gICAgICAgICAgYE5vIGV4cG9ydGVkIG5hbWVzIGZvdW5kIGluIG1vZHVsZSAnJHtkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWV9Jy5gKVxuICAgICAgfVxuICAgIH0sXG5cbiAgICAvLyB0b2RvOiBjaGVjayBmb3IgcG9zc2libGUgcmVkZWZpbml0aW9uXG5cbiAgICAnTWVtYmVyRXhwcmVzc2lvbic6IGZ1bmN0aW9uIChkZXJlZmVyZW5jZSkge1xuICAgICAgaWYgKGRlcmVmZXJlbmNlLm9iamVjdC50eXBlICE9PSAnSWRlbnRpZmllcicpIHJldHVyblxuICAgICAgaWYgKCFuYW1lc3BhY2VzLmhhcyhkZXJlZmVyZW5jZS5vYmplY3QubmFtZSkpIHJldHVyblxuXG4gICAgICBpZiAoZGVyZWZlcmVuY2UucGFyZW50LnR5cGUgPT09ICdBc3NpZ25tZW50RXhwcmVzc2lvbicgJiZcbiAgICAgICAgICBkZXJlZmVyZW5jZS5wYXJlbnQubGVmdCA9PT0gZGVyZWZlcmVuY2UpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChkZXJlZmVyZW5jZS5wYXJlbnQsXG4gICAgICAgICAgICAgIGBBc3NpZ25tZW50IHRvIG1lbWJlciBvZiBuYW1lc3BhY2UgJyR7ZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWV9Jy5gKVxuICAgICAgfVxuXG4gICAgICAvLyBnbyBkZWVwXG4gICAgICB2YXIgbmFtZXNwYWNlID0gbmFtZXNwYWNlcy5nZXQoZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpXG4gICAgICB2YXIgbmFtZXBhdGggPSBbZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWVdXG4gICAgICAvLyB3aGlsZSBwcm9wZXJ0eSBpcyBuYW1lc3BhY2UgYW5kIHBhcmVudCBpcyBtZW1iZXIgZXhwcmVzc2lvbiwga2VlcCB2YWxpZGF0aW5nXG4gICAgICB3aGlsZSAobmFtZXNwYWNlIGluc3RhbmNlb2YgRXhwb3J0cyAmJlxuICAgICAgICAgICAgIGRlcmVmZXJlbmNlLnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJykge1xuXG4gICAgICAgIGlmIChkZXJlZmVyZW5jZS5jb21wdXRlZCkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KGRlcmVmZXJlbmNlLnByb3BlcnR5LFxuICAgICAgICAgICAgJ1VuYWJsZSB0byB2YWxpZGF0ZSBjb21wdXRlZCByZWZlcmVuY2UgdG8gaW1wb3J0ZWQgbmFtZXNwYWNlIFxcJycgK1xuICAgICAgICAgICAgZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUgKyAnXFwnLicpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW5hbWVzcGFjZS5oYXMoZGVyZWZlcmVuY2UucHJvcGVydHkubmFtZSkpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChcbiAgICAgICAgICAgIGRlcmVmZXJlbmNlLnByb3BlcnR5LFxuICAgICAgICAgICAgbWFrZU1lc3NhZ2UoZGVyZWZlcmVuY2UucHJvcGVydHksIG5hbWVwYXRoKSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gc3Rhc2ggYW5kIHBvcFxuICAgICAgICBuYW1lcGF0aC5wdXNoKGRlcmVmZXJlbmNlLnByb3BlcnR5Lm5hbWUpXG4gICAgICAgIG5hbWVzcGFjZSA9IG5hbWVzcGFjZS5nZXQoZGVyZWZlcmVuY2UucHJvcGVydHkubmFtZSkubmFtZXNwYWNlXG4gICAgICAgIGRlcmVmZXJlbmNlID0gZGVyZWZlcmVuY2UucGFyZW50XG4gICAgICB9XG5cbiAgICB9LFxuXG4gICAgJ1ZhcmlhYmxlRGVjbGFyYXRvcic6IGZ1bmN0aW9uICh7IGlkLCBpbml0IH0pIHtcbiAgICAgIGlmIChpbml0ID09IG51bGwpIHJldHVyblxuICAgICAgaWYgKGluaXQudHlwZSAhPT0gJ0lkZW50aWZpZXInKSByZXR1cm5cbiAgICAgIGlmICghbmFtZXNwYWNlcy5oYXMoaW5pdC5uYW1lKSkgcmV0dXJuXG5cbiAgICAgIC8vIGNoZWNrIGZvciByZWRlZmluaXRpb24gaW4gaW50ZXJtZWRpYXRlIHNjb3Blc1xuICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgaW5pdC5uYW1lKSAhPT0gJ21vZHVsZScpIHJldHVyblxuXG4gICAgICAvLyBERlMgdHJhdmVyc2UgY2hpbGQgbmFtZXNwYWNlc1xuICAgICAgZnVuY3Rpb24gdGVzdEtleShwYXR0ZXJuLCBuYW1lc3BhY2UsIHBhdGggPSBbaW5pdC5uYW1lXSkge1xuICAgICAgICBpZiAoIShuYW1lc3BhY2UgaW5zdGFuY2VvZiBFeHBvcnRzKSkgcmV0dXJuXG5cbiAgICAgICAgaWYgKHBhdHRlcm4udHlwZSAhPT0gJ09iamVjdFBhdHRlcm4nKSByZXR1cm5cblxuICAgICAgICBwYXR0ZXJuLnByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICAgICAgICBpZiAocHJvcGVydHkua2V5LnR5cGUgIT09ICdJZGVudGlmaWVyJykge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICBub2RlOiBwcm9wZXJ0eSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ09ubHkgZGVzdHJ1Y3R1cmUgdG9wLWxldmVsIG5hbWVzLicsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSBpZiAoIW5hbWVzcGFjZS5oYXMocHJvcGVydHkua2V5Lm5hbWUpKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIG5vZGU6IHByb3BlcnR5LFxuICAgICAgICAgICAgICBtZXNzYWdlOiBtYWtlTWVzc2FnZShwcm9wZXJ0eS5rZXksIHBhdGgpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGF0aC5wdXNoKHByb3BlcnR5LmtleS5uYW1lKVxuICAgICAgICAgICAgdGVzdEtleShwcm9wZXJ0eS52YWx1ZSwgbmFtZXNwYWNlLmdldChwcm9wZXJ0eS5rZXkubmFtZSkubmFtZXNwYWNlLCBwYXRoKVxuICAgICAgICAgICAgcGF0aC5wb3AoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgdGVzdEtleShpZCwgbmFtZXNwYWNlcy5nZXQoaW5pdC5uYW1lKSlcbiAgICB9LFxuICB9XG59XG4iXX0=

@@ -143,2 +143,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25ld2xpbmUtYWZ0ZXItaW1wb3J0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0E7Ozs7QUFDQTs7OztBQUVBOzs7Ozs7QUFFQSxJQUFNLE1BQU0scUJBQU0saURBQU4sQ0FBWjs7Ozs7Ozs7Ozs7QUFNQSxTQUFTLG1CQUFULENBQTZCLFNBQTdCLEVBQXdDLFNBQXhDLEVBQW1EO0FBQy9DLFNBQU8sVUFBVSxLQUFWLENBQWdCLENBQWhCLEtBQXNCLFVBQVUsS0FBVixDQUFnQixDQUFoQixDQUF0QixJQUE0QyxVQUFVLEtBQVYsQ0FBZ0IsQ0FBaEIsS0FBc0IsVUFBVSxLQUFWLENBQWdCLENBQWhCLENBQXpFO0FBQ0g7O0FBRUQsU0FBUyxZQUFULENBQXNCLEtBQXRCLEVBQTZCO0FBQ3pCLE1BQUksTUFBTSxLQUFOLENBQVksSUFBWixLQUFxQixpQkFBekIsRUFBNEM7QUFDMUMsUUFBSSxzQ0FBSjtBQUNBLFdBQU8sSUFBUDtBQUNEOztBQUp3QixNQU1qQixJQU5pQixHQU1SLE1BQU0sS0FORSxDQU1qQixJQU5pQjs7QUFPekIsTUFBSSxRQUFRLEtBQUssSUFBTCxLQUFjLGdCQUExQixFQUE0QztBQUN4QyxXQUFPLEtBQUssSUFBWjtBQUNIOztBQUVELFNBQU8sSUFBUDtBQUNIOztBQUVELFNBQVMsd0JBQVQsQ0FBa0MsSUFBbEMsRUFBd0MsVUFBeEMsRUFBb0Q7QUFDaEQsU0FBTyxzQkFBVSxJQUFWLEVBQWdCLFVBQUMsSUFBRDtBQUFBLFdBQVUsb0JBQW9CLElBQXBCLEVBQTBCLFVBQTFCLENBQVY7QUFBQSxHQUFoQixDQUFQO0FBQ0g7O0FBRUQsU0FBUyxpQkFBVCxDQUEyQixJQUEzQixFQUFpQyxRQUFqQyxFQUEyQztBQUN6QyxTQUFPLFNBQVMsR0FBVCxDQUFhLEtBQWIsQ0FBbUIsSUFBbkIsR0FBMEIsS0FBSyxHQUFMLENBQVMsR0FBVCxDQUFhLElBQTlDO0FBQ0Q7O0FBR0QsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjtBQUNsQyxNQUFNLFNBQVMsRUFBZjtBQUNBLE1BQUksYUFBYSxDQUFqQjs7QUFFQSxXQUFTLGVBQVQsQ0FBeUIsSUFBekIsRUFBK0IsUUFBL0IsRUFBeUMsSUFBekMsRUFBK0M7QUFDN0MsUUFBSSxrQkFBa0IsSUFBbEIsRUFBd0IsUUFBeEIsSUFBb0MsQ0FBeEMsRUFBMkM7QUFDekMsVUFBSSxTQUFTLEtBQUssR0FBTCxDQUFTLEtBQVQsQ0FBZSxNQUE1Qjs7QUFFQSxVQUFJLEtBQUssR0FBTCxDQUFTLEtBQVQsQ0FBZSxJQUFmLEtBQXdCLEtBQUssR0FBTCxDQUFTLEdBQVQsQ0FBYSxJQUF6QyxFQUErQztBQUM3QyxpQkFBUyxDQUFUO0FBQ0Q7O0FBRUQsY0FBUSxNQUFSLENBQWU7QUFDYixhQUFLO0FBQ0gsZ0JBQU0sS0FBSyxHQUFMLENBQVMsR0FBVCxDQUFhLElBRGhCO0FBRUg7QUFGRyxTQURRO0FBS2IsZ0RBQXNDLElBQXRDLDJDQUFnRixJQUFoRjtBQUxhLE9BQWY7QUFPRDtBQUNGOztBQUVELFNBQU87QUFDTCx1QkFBbUIsMkJBQVUsSUFBVixFQUFnQjtBQUFBLFVBQ3pCLE1BRHlCLEdBQ2QsSUFEYyxDQUN6QixNQUR5Qjs7QUFFakMsVUFBTSxlQUFlLE9BQU8sSUFBUCxDQUFZLE9BQVosQ0FBb0IsSUFBcEIsQ0FBckI7QUFDQSxVQUFNLFdBQVcsT0FBTyxJQUFQLENBQVksZUFBZSxDQUEzQixDQUFqQjs7QUFFQSxVQUFJLFlBQVksU0FBUyxJQUFULEtBQWtCLG1CQUFsQyxFQUF1RDtBQUNyRCx3QkFBZ0IsSUFBaEIsRUFBc0IsUUFBdEIsRUFBZ0MsUUFBaEM7QUFDRDtBQUNGLEtBVEk7QUFVTCxhQUFTLG1CQUFZO0FBQ25CLGFBQU8sSUFBUCxDQUFZLEVBQUUsT0FBTyxRQUFRLFFBQVIsRUFBVCxFQUE2QixjQUFjLEVBQTNDLEVBQVo7QUFDRCxLQVpJO0FBYUwsb0JBQWdCLHdCQUFTLElBQVQsRUFBZTtBQUM3QixVQUFNLFFBQVEsUUFBUSxRQUFSLEVBQWQ7QUFDQSxVQUFJLDZCQUFnQixJQUFoQixDQUFKLEVBQTJCO0FBQ3pCLFlBQU0sZUFBZSxPQUFPLFVBQVAsQ0FBckI7O0FBRUEsWUFBSSxVQUFVLGFBQWEsS0FBM0IsRUFBa0M7QUFDaEMsdUJBQWEsWUFBYixDQUEwQixJQUExQixDQUErQixJQUEvQjtBQUNELFNBRkQsTUFFTztBQUNMLGlCQUFPLElBQVAsQ0FBWSxFQUFFLFlBQUYsRUFBUyxjQUFjLENBQUUsSUFBRixDQUF2QixFQUFaO0FBQ0Esd0JBQWMsQ0FBZDtBQUNEO0FBQ0Y7QUFDRixLQXpCSTtBQTBCTCxvQkFBZ0IsdUJBQVk7QUFDMUIsVUFBSSxxQkFBSixFQUEyQixRQUFRLFdBQVIsRUFBM0I7QUFDQSxhQUFPLE9BQVAsQ0FBZSxnQkFBbUM7QUFBQSxZQUF2QixLQUF1QixRQUF2QixLQUF1QjtBQUFBLFlBQWhCLFlBQWdCLFFBQWhCLFlBQWdCOztBQUNoRCxZQUFNLFlBQVksYUFBYSxLQUFiLENBQWxCOzs7QUFHQSxZQUFJLENBQUMsU0FBRCxJQUFjLEVBQUUscUJBQXFCLEtBQXZCLENBQWxCLEVBQWlEO0FBQy9DLGNBQUksZ0JBQUosRUFBc0IsU0FBdEI7QUFDQTtBQUNEOztBQUVELFlBQUksWUFBSixFQUFrQixTQUFsQjs7QUFFQSxxQkFBYSxPQUFiLENBQXFCLFVBQVUsSUFBVixFQUFnQixLQUFoQixFQUF1QjtBQUMxQyxjQUFNLGVBQWUseUJBQXlCLFNBQXpCLEVBQW9DLElBQXBDLENBQXJCO0FBQ0EsY0FBSSx5QkFBSixFQUErQixZQUEvQjs7QUFFQSxjQUFNLDJCQUEyQixVQUFVLFlBQVYsQ0FBakM7QUFDQSxjQUFNLGdCQUFnQixVQUFVLGVBQWUsQ0FBekIsQ0FBdEI7QUFDQSxjQUFNLGtCQUFrQixhQUFhLFFBQVEsQ0FBckIsQ0FBeEI7O0FBRUEsY0FBSSxtQkFBbUIsb0JBQW9CLHdCQUFwQixFQUE4QyxlQUE5QyxDQUF2QixFQUF1RjtBQUNyRjtBQUNEOztBQUVELGNBQUksa0JBQ0EsQ0FBQyxlQUFELElBQW9CLENBQUMsb0JBQW9CLGFBQXBCLEVBQW1DLGVBQW5DLENBRHJCLENBQUosRUFDK0U7O0FBRTdFLDRCQUFnQix3QkFBaEIsRUFBMEMsYUFBMUMsRUFBeUQsU0FBekQ7QUFDRDtBQUNGLFNBakJEO0FBa0JELE9BN0JEO0FBOEJEO0FBMURJLEdBQVA7QUE0REQsQ0FsRkQiLCJmaWxlIjoicnVsZXMvbmV3bGluZS1hZnRlci1pbXBvcnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlb3ZlcnZpZXcgUnVsZSB0byBlbmZvcmNlIG5ldyBsaW5lIGFmdGVyIGltcG9ydCBub3QgZm9sbG93ZWQgYnkgYW5vdGhlciBpbXBvcnQuXG4gKiBAYXV0aG9yIFJhZGVrIEJlbmtlbFxuICovXG5cbmltcG9ydCBpc1N0YXRpY1JlcXVpcmUgZnJvbSAnLi4vY29yZS9zdGF0aWNSZXF1aXJlJ1xuaW1wb3J0IGZpbmRJbmRleCBmcm9tICdsb2Rhc2guZmluZGluZGV4J1xuXG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnXG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdlc2xpbnQtcGx1Z2luLWltcG9ydDpydWxlczpuZXdsaW5lLWFmdGVyLWltcG9ydCcpXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSdWxlIERlZmluaXRpb25cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIGNvbnRhaW5zTm9kZU9yRXF1YWwob3V0ZXJOb2RlLCBpbm5lck5vZGUpIHtcbiAgICByZXR1cm4gb3V0ZXJOb2RlLnJhbmdlWzBdIDw9IGlubmVyTm9kZS5yYW5nZVswXSAmJiBvdXRlck5vZGUucmFuZ2VbMV0gPj0gaW5uZXJOb2RlLnJhbmdlWzFdXG59XG5cbmZ1bmN0aW9uIGdldFNjb3BlQm9keShzY29wZSkge1xuICAgIGlmIChzY29wZS5ibG9jay50eXBlID09PSAnU3dpdGNoU3RhdGVtZW50Jykge1xuICAgICAgbG9nKCdTd2l0Y2hTdGF0ZW1lbnQgc2NvcGVzIG5vdCBzdXBwb3J0ZWQnKVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCB7IGJvZHkgfSA9IHNjb3BlLmJsb2NrXG4gICAgaWYgKGJvZHkgJiYgYm9keS50eXBlID09PSAnQmxvY2tTdGF0ZW1lbnQnKSB7XG4gICAgICAgIHJldHVybiBib2R5LmJvZHlcbiAgICB9XG5cbiAgICByZXR1cm4gYm9keVxufVxuXG5mdW5jdGlvbiBmaW5kTm9kZUluZGV4SW5TY29wZUJvZHkoYm9keSwgbm9kZVRvRmluZCkge1xuICAgIHJldHVybiBmaW5kSW5kZXgoYm9keSwgKG5vZGUpID0+IGNvbnRhaW5zTm9kZU9yRXF1YWwobm9kZSwgbm9kZVRvRmluZCkpXG59XG5cbmZ1bmN0aW9uIGdldExpbmVEaWZmZXJlbmNlKG5vZGUsIG5leHROb2RlKSB7XG4gIHJldHVybiBuZXh0Tm9kZS5sb2Muc3RhcnQubGluZSAtIG5vZGUubG9jLmVuZC5saW5lXG59XG5cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICBjb25zdCBzY29wZXMgPSBbXVxuICBsZXQgc2NvcGVJbmRleCA9IDBcblxuICBmdW5jdGlvbiBjaGVja0Zvck5ld0xpbmUobm9kZSwgbmV4dE5vZGUsIHR5cGUpIHtcbiAgICBpZiAoZ2V0TGluZURpZmZlcmVuY2Uobm9kZSwgbmV4dE5vZGUpIDwgMikge1xuICAgICAgbGV0IGNvbHVtbiA9IG5vZGUubG9jLnN0YXJ0LmNvbHVtblxuXG4gICAgICBpZiAobm9kZS5sb2Muc3RhcnQubGluZSAhPT0gbm9kZS5sb2MuZW5kLmxpbmUpIHtcbiAgICAgICAgY29sdW1uID0gMFxuICAgICAgfVxuXG4gICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgIGxvYzoge1xuICAgICAgICAgIGxpbmU6IG5vZGUubG9jLmVuZC5saW5lLFxuICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgfSxcbiAgICAgICAgbWVzc2FnZTogYEV4cGVjdGVkIGVtcHR5IGxpbmUgYWZ0ZXIgJHt0eXBlfSBzdGF0ZW1lbnQgbm90IGZvbGxvd2VkIGJ5IGFub3RoZXIgJHt0eXBlfS5gLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIEltcG9ydERlY2xhcmF0aW9uOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgY29uc3QgeyBwYXJlbnQgfSA9IG5vZGVcbiAgICAgIGNvbnN0IG5vZGVQb3NpdGlvbiA9IHBhcmVudC5ib2R5LmluZGV4T2Yobm9kZSlcbiAgICAgIGNvbnN0IG5leHROb2RlID0gcGFyZW50LmJvZHlbbm9kZVBvc2l0aW9uICsgMV1cblxuICAgICAgaWYgKG5leHROb2RlICYmIG5leHROb2RlLnR5cGUgIT09ICdJbXBvcnREZWNsYXJhdGlvbicpIHtcbiAgICAgICAgY2hlY2tGb3JOZXdMaW5lKG5vZGUsIG5leHROb2RlLCAnaW1wb3J0JylcbiAgICAgIH1cbiAgICB9LFxuICAgIFByb2dyYW06IGZ1bmN0aW9uICgpIHtcbiAgICAgIHNjb3Blcy5wdXNoKHsgc2NvcGU6IGNvbnRleHQuZ2V0U2NvcGUoKSwgcmVxdWlyZUNhbGxzOiBbXSB9KVxuICAgIH0sXG4gICAgQ2FsbEV4cHJlc3Npb246IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgIGNvbnN0IHNjb3BlID0gY29udGV4dC5nZXRTY29wZSgpXG4gICAgICBpZiAoaXNTdGF0aWNSZXF1aXJlKG5vZGUpKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTY29wZSA9IHNjb3Blc1tzY29wZUluZGV4XVxuXG4gICAgICAgIGlmIChzY29wZSA9PT0gY3VycmVudFNjb3BlLnNjb3BlKSB7XG4gICAgICAgICAgY3VycmVudFNjb3BlLnJlcXVpcmVDYWxscy5wdXNoKG5vZGUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2NvcGVzLnB1c2goeyBzY29wZSwgcmVxdWlyZUNhbGxzOiBbIG5vZGUgXSB9KVxuICAgICAgICAgIHNjb3BlSW5kZXggKz0gMVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICAnUHJvZ3JhbTpleGl0JzogZnVuY3Rpb24gKCkge1xuICAgICAgbG9nKCdleGl0IHByb2Nlc3NpbmcgZm9yJywgY29udGV4dC5nZXRGaWxlbmFtZSgpKVxuICAgICAgc2NvcGVzLmZvckVhY2goZnVuY3Rpb24gKHsgc2NvcGUsIHJlcXVpcmVDYWxscyB9KSB7XG4gICAgICAgIGNvbnN0IHNjb3BlQm9keSA9IGdldFNjb3BlQm9keShzY29wZSlcblxuICAgICAgICAvLyBza2lwIG5vbi1hcnJheSBzY29wZXMgKGkuZS4gYXJyb3cgZnVuY3Rpb24gZXhwcmVzc2lvbnMpXG4gICAgICAgIGlmICghc2NvcGVCb2R5IHx8ICEoc2NvcGVCb2R5IGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgbG9nKCdpbnZhbGlkIHNjb3BlOicsIHNjb3BlQm9keSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGxvZygnZ290IHNjb3BlOicsIHNjb3BlQm9keSlcblxuICAgICAgICByZXF1aXJlQ2FsbHMuZm9yRWFjaChmdW5jdGlvbiAobm9kZSwgaW5kZXgpIHtcbiAgICAgICAgICBjb25zdCBub2RlUG9zaXRpb24gPSBmaW5kTm9kZUluZGV4SW5TY29wZUJvZHkoc2NvcGVCb2R5LCBub2RlKVxuICAgICAgICAgIGxvZygnbm9kZSBwb3NpdGlvbiBpbiBzY29wZTonLCBub2RlUG9zaXRpb24pXG5cbiAgICAgICAgICBjb25zdCBzdGF0ZW1lbnRXaXRoUmVxdWlyZUNhbGwgPSBzY29wZUJvZHlbbm9kZVBvc2l0aW9uXVxuICAgICAgICAgIGNvbnN0IG5leHRTdGF0ZW1lbnQgPSBzY29wZUJvZHlbbm9kZVBvc2l0aW9uICsgMV1cbiAgICAgICAgICBjb25zdCBuZXh0UmVxdWlyZUNhbGwgPSByZXF1aXJlQ2FsbHNbaW5kZXggKyAxXVxuXG4gICAgICAgICAgaWYgKG5leHRSZXF1aXJlQ2FsbCAmJiBjb250YWluc05vZGVPckVxdWFsKHN0YXRlbWVudFdpdGhSZXF1aXJlQ2FsbCwgbmV4dFJlcXVpcmVDYWxsKSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG5leHRTdGF0ZW1lbnQgJiZcbiAgICAgICAgICAgICAoIW5leHRSZXF1aXJlQ2FsbCB8fCAhY29udGFpbnNOb2RlT3JFcXVhbChuZXh0U3RhdGVtZW50LCBuZXh0UmVxdWlyZUNhbGwpKSkge1xuXG4gICAgICAgICAgICBjaGVja0Zvck5ld0xpbmUoc3RhdGVtZW50V2l0aFJlcXVpcmVDYWxsLCBuZXh0U3RhdGVtZW50LCAncmVxdWlyZScpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9LFxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25ld2xpbmUtYWZ0ZXItaW1wb3J0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0E7Ozs7QUFDQTs7OztBQUVBOzs7Ozs7QUFFQSxJQUFNLE1BQU0scUJBQU0saURBQU4sQ0FBWjs7QUFFQTtBQUNBO0FBQ0E7O0FBZEE7Ozs7O0FBZ0JBLFNBQVMsbUJBQVQsQ0FBNkIsU0FBN0IsRUFBd0MsU0FBeEMsRUFBbUQ7QUFDL0MsU0FBTyxVQUFVLEtBQVYsQ0FBZ0IsQ0FBaEIsS0FBc0IsVUFBVSxLQUFWLENBQWdCLENBQWhCLENBQXRCLElBQTRDLFVBQVUsS0FBVixDQUFnQixDQUFoQixLQUFzQixVQUFVLEtBQVYsQ0FBZ0IsQ0FBaEIsQ0FBekU7QUFDSDs7QUFFRCxTQUFTLFlBQVQsQ0FBc0IsS0FBdEIsRUFBNkI7QUFDekIsTUFBSSxNQUFNLEtBQU4sQ0FBWSxJQUFaLEtBQXFCLGlCQUF6QixFQUE0QztBQUMxQyxRQUFJLHNDQUFKO0FBQ0EsV0FBTyxJQUFQO0FBQ0Q7O0FBSndCLE1BTWpCLElBTmlCLEdBTVIsTUFBTSxLQU5FLENBTWpCLElBTmlCOztBQU96QixNQUFJLFFBQVEsS0FBSyxJQUFMLEtBQWMsZ0JBQTFCLEVBQTRDO0FBQ3hDLFdBQU8sS0FBSyxJQUFaO0FBQ0g7O0FBRUQsU0FBTyxJQUFQO0FBQ0g7O0FBRUQsU0FBUyx3QkFBVCxDQUFrQyxJQUFsQyxFQUF3QyxVQUF4QyxFQUFvRDtBQUNoRCxTQUFPLHNCQUFVLElBQVYsRUFBZ0IsVUFBQyxJQUFEO0FBQUEsV0FBVSxvQkFBb0IsSUFBcEIsRUFBMEIsVUFBMUIsQ0FBVjtBQUFBLEdBQWhCLENBQVA7QUFDSDs7QUFFRCxTQUFTLGlCQUFULENBQTJCLElBQTNCLEVBQWlDLFFBQWpDLEVBQTJDO0FBQ3pDLFNBQU8sU0FBUyxHQUFULENBQWEsS0FBYixDQUFtQixJQUFuQixHQUEwQixLQUFLLEdBQUwsQ0FBUyxHQUFULENBQWEsSUFBOUM7QUFDRDs7QUFHRCxPQUFPLE9BQVAs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LENBQUMsb0JBQW9CLGFBQXBCLEVBQW1DLGVBQW5DLENBRHJCLENBQUosRUFDK0U7O0FBRTdFLDRCQUFnQix3QkFBaEIsRUFBMEMsYUFBMUMsRUFBeUQsU0FBekQ7QUFDRDtBQUNGLFNBakJEO0FBa0JELE9BN0JEO0FBOEJEO0FBMURJLEdBQVA7QUE0REQsQ0FsRkQiLCJmaWxlIjoicnVsZXMvbmV3bGluZS1hZnRlci1pbXBvcnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlb3ZlcnZpZXcgUnVsZSB0byBlbmZvcmNlIG5ldyBsaW5lIGFmdGVyIGltcG9ydCBub3QgZm9sbG93ZWQgYnkgYW5vdGhlciBpbXBvcnQuXG4gKiBAYXV0aG9yIFJhZGVrIEJlbmtlbFxuICovXG5cbmltcG9ydCBpc1N0YXRpY1JlcXVpcmUgZnJvbSAnLi4vY29yZS9zdGF0aWNSZXF1aXJlJ1xuaW1wb3J0IGZpbmRJbmRleCBmcm9tICdsb2Rhc2guZmluZGluZGV4J1xuXG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnXG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdlc2xpbnQtcGx1Z2luLWltcG9ydDpydWxlczpuZXdsaW5lLWFmdGVyLWltcG9ydCcpXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSdWxlIERlZmluaXRpb25cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmZ1bmN0aW9uIGNvbnRhaW5zTm9kZU9yRXF1YWwob3V0ZXJOb2RlLCBpbm5lck5vZGUpIHtcbiAgICByZXR1cm4gb3V0ZXJOb2RlLnJhbmdlWzBdIDw9IGlubmVyTm9kZS5yYW5nZVswXSAmJiBvdXRlck5vZGUucmFuZ2VbMV0gPj0gaW5uZXJOb2RlLnJhbmdlWzFdXG59XG5cbmZ1bmN0aW9uIGdldFNjb3BlQm9keShzY29wZSkge1xuICAgIGlmIChzY29wZS5ibG9jay50eXBlID09PSAnU3dpdGNoU3RhdGVtZW50Jykge1xuICAgICAgbG9nKCdTd2l0Y2hTdGF0ZW1lbnQgc2NvcGVzIG5vdCBzdXBwb3J0ZWQnKVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCB7IGJvZHkgfSA9IHNjb3BlLmJsb2NrXG4gICAgaWYgKGJvZHkgJiYgYm9keS50eXBlID09PSAnQmxvY2tTdGF0ZW1lbnQnKSB7XG4gICAgICAgIHJldHVybiBib2R5LmJvZHlcbiAgICB9XG5cbiAgICByZXR1cm4gYm9keVxufVxuXG5mdW5jdGlvbiBmaW5kTm9kZUluZGV4SW5TY29wZUJvZHkoYm9keSwgbm9kZVRvRmluZCkge1xuICAgIHJldHVybiBmaW5kSW5kZXgoYm9keSwgKG5vZGUpID0+IGNvbnRhaW5zTm9kZU9yRXF1YWwobm9kZSwgbm9kZVRvRmluZCkpXG59XG5cbmZ1bmN0aW9uIGdldExpbmVEaWZmZXJlbmNlKG5vZGUsIG5leHROb2RlKSB7XG4gIHJldHVybiBuZXh0Tm9kZS5sb2Muc3RhcnQubGluZSAtIG5vZGUubG9jLmVuZC5saW5lXG59XG5cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICBjb25zdCBzY29wZXMgPSBbXVxuICBsZXQgc2NvcGVJbmRleCA9IDBcblxuICBmdW5jdGlvbiBjaGVja0Zvck5ld0xpbmUobm9kZSwgbmV4dE5vZGUsIHR5cGUpIHtcbiAgICBpZiAoZ2V0TGluZURpZmZlcmVuY2Uobm9kZSwgbmV4dE5vZGUpIDwgMikge1xuICAgICAgbGV0IGNvbHVtbiA9IG5vZGUubG9jLnN0YXJ0LmNvbHVtblxuXG4gICAgICBpZiAobm9kZS5sb2Muc3RhcnQubGluZSAhPT0gbm9kZS5sb2MuZW5kLmxpbmUpIHtcbiAgICAgICAgY29sdW1uID0gMFxuICAgICAgfVxuXG4gICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgIGxvYzoge1xuICAgICAgICAgIGxpbmU6IG5vZGUubG9jLmVuZC5saW5lLFxuICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgfSxcbiAgICAgICAgbWVzc2FnZTogYEV4cGVjdGVkIGVtcHR5IGxpbmUgYWZ0ZXIgJHt0eXBlfSBzdGF0ZW1lbnQgbm90IGZvbGxvd2VkIGJ5IGFub3RoZXIgJHt0eXBlfS5gLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIEltcG9ydERlY2xhcmF0aW9uOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgY29uc3QgeyBwYXJlbnQgfSA9IG5vZGVcbiAgICAgIGNvbnN0IG5vZGVQb3NpdGlvbiA9IHBhcmVudC5ib2R5LmluZGV4T2Yobm9kZSlcbiAgICAgIGNvbnN0IG5leHROb2RlID0gcGFyZW50LmJvZHlbbm9kZVBvc2l0aW9uICsgMV1cblxuICAgICAgaWYgKG5leHROb2RlICYmIG5leHROb2RlLnR5cGUgIT09ICdJbXBvcnREZWNsYXJhdGlvbicpIHtcbiAgICAgICAgY2hlY2tGb3JOZXdMaW5lKG5vZGUsIG5leHROb2RlLCAnaW1wb3J0JylcbiAgICAgIH1cbiAgICB9LFxuICAgIFByb2dyYW06IGZ1bmN0aW9uICgpIHtcbiAgICAgIHNjb3Blcy5wdXNoKHsgc2NvcGU6IGNvbnRleHQuZ2V0U2NvcGUoKSwgcmVxdWlyZUNhbGxzOiBbXSB9KVxuICAgIH0sXG4gICAgQ2FsbEV4cHJlc3Npb246IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgIGNvbnN0IHNjb3BlID0gY29udGV4dC5nZXRTY29wZSgpXG4gICAgICBpZiAoaXNTdGF0aWNSZXF1aXJlKG5vZGUpKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTY29wZSA9IHNjb3Blc1tzY29wZUluZGV4XVxuXG4gICAgICAgIGlmIChzY29wZSA9PT0gY3VycmVudFNjb3BlLnNjb3BlKSB7XG4gICAgICAgICAgY3VycmVudFNjb3BlLnJlcXVpcmVDYWxscy5wdXNoKG5vZGUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2NvcGVzLnB1c2goeyBzY29wZSwgcmVxdWlyZUNhbGxzOiBbIG5vZGUgXSB9KVxuICAgICAgICAgIHNjb3BlSW5kZXggKz0gMVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICAnUHJvZ3JhbTpleGl0JzogZnVuY3Rpb24gKCkge1xuICAgICAgbG9nKCdleGl0IHByb2Nlc3NpbmcgZm9yJywgY29udGV4dC5nZXRGaWxlbmFtZSgpKVxuICAgICAgc2NvcGVzLmZvckVhY2goZnVuY3Rpb24gKHsgc2NvcGUsIHJlcXVpcmVDYWxscyB9KSB7XG4gICAgICAgIGNvbnN0IHNjb3BlQm9keSA9IGdldFNjb3BlQm9keShzY29wZSlcblxuICAgICAgICAvLyBza2lwIG5vbi1hcnJheSBzY29wZXMgKGkuZS4gYXJyb3cgZnVuY3Rpb24gZXhwcmVzc2lvbnMpXG4gICAgICAgIGlmICghc2NvcGVCb2R5IHx8ICEoc2NvcGVCb2R5IGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgbG9nKCdpbnZhbGlkIHNjb3BlOicsIHNjb3BlQm9keSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGxvZygnZ290IHNjb3BlOicsIHNjb3BlQm9keSlcblxuICAgICAgICByZXF1aXJlQ2FsbHMuZm9yRWFjaChmdW5jdGlvbiAobm9kZSwgaW5kZXgpIHtcbiAgICAgICAgICBjb25zdCBub2RlUG9zaXRpb24gPSBmaW5kTm9kZUluZGV4SW5TY29wZUJvZHkoc2NvcGVCb2R5LCBub2RlKVxuICAgICAgICAgIGxvZygnbm9kZSBwb3NpdGlvbiBpbiBzY29wZTonLCBub2RlUG9zaXRpb24pXG5cbiAgICAgICAgICBjb25zdCBzdGF0ZW1lbnRXaXRoUmVxdWlyZUNhbGwgPSBzY29wZUJvZHlbbm9kZVBvc2l0aW9uXVxuICAgICAgICAgIGNvbnN0IG5leHRTdGF0ZW1lbnQgPSBzY29wZUJvZHlbbm9kZVBvc2l0aW9uICsgMV1cbiAgICAgICAgICBjb25zdCBuZXh0UmVxdWlyZUNhbGwgPSByZXF1aXJlQ2FsbHNbaW5kZXggKyAxXVxuXG4gICAgICAgICAgaWYgKG5leHRSZXF1aXJlQ2FsbCAmJiBjb250YWluc05vZGVPckVxdWFsKHN0YXRlbWVudFdpdGhSZXF1aXJlQ2FsbCwgbmV4dFJlcXVpcmVDYWxsKSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG5leHRTdGF0ZW1lbnQgJiZcbiAgICAgICAgICAgICAoIW5leHRSZXF1aXJlQ2FsbCB8fCAhY29udGFpbnNOb2RlT3JFcXVhbChuZXh0U3RhdGVtZW50LCBuZXh0UmVxdWlyZUNhbGwpKSkge1xuXG4gICAgICAgICAgICBjaGVja0Zvck5ld0xpbmUoc3RhdGVtZW50V2l0aFJlcXVpcmVDYWxsLCBuZXh0U3RhdGVtZW50LCAncmVxdWlyZScpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9LFxuICB9XG59XG4iXX0=

@@ -34,2 +34,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLWFtZC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQVNBLE9BQU8sT0FBUCxHQUFpQixVQUFVLE9BQVYsRUFBbUI7O0FBRW5DLFNBQU87O0FBRU4sc0JBQWtCLHdCQUFVLElBQVYsRUFBZ0I7QUFDOUIsVUFBSSxRQUFRLFFBQVIsR0FBbUIsSUFBbkIsS0FBNEIsUUFBaEMsRUFBMEM7O0FBRTFDLFVBQUksS0FBSyxNQUFMLENBQVksSUFBWixLQUFxQixZQUF6QixFQUF1QztBQUN2QyxVQUFJLEtBQUssTUFBTCxDQUFZLElBQVosS0FBcUIsU0FBckIsSUFDQSxLQUFLLE1BQUwsQ0FBWSxJQUFaLEtBQXFCLFFBRHpCLEVBQ21DOzs7QUFHbkMsVUFBSSxLQUFLLFNBQUwsQ0FBZSxNQUFmLEtBQTBCLENBQTlCLEVBQWlDOztBQUVqQyxVQUFNLFVBQVUsS0FBSyxTQUFMLENBQWUsQ0FBZixDQUFoQjtBQUNBLFVBQUksUUFBUSxJQUFSLEtBQWlCLGlCQUFyQixFQUF3Qzs7OztBQUkzQyxjQUFRLE1BQVIsQ0FBZSxJQUFmLHVDQUF3RCxLQUFLLE1BQUwsQ0FBWSxJQUFwRTtBQUNBO0FBbEJLLEdBQVA7QUFxQkEsQ0F2QkQiLCJmaWxlIjoicnVsZXMvbm8tYW1kLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZW92ZXJ2aWV3IFJ1bGUgdG8gcHJlZmVyIGltcG9ydHMgdG8gQU1EXG4gKiBAYXV0aG9yIEphbXVuZCBGZXJndXNvblxuICovXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSdWxlIERlZmluaXRpb25cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcblxuXHRyZXR1cm4ge1xuXG5cdFx0J0NhbGxFeHByZXNzaW9uJzogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIGlmIChjb250ZXh0LmdldFNjb3BlKCkudHlwZSAhPT0gJ21vZHVsZScpIHJldHVyblxuXG4gICAgICBpZiAobm9kZS5jYWxsZWUudHlwZSAhPT0gJ0lkZW50aWZpZXInKSByZXR1cm5cbiAgICAgIGlmIChub2RlLmNhbGxlZS5uYW1lICE9PSAncmVxdWlyZScgJiZcbiAgICAgICAgICBub2RlLmNhbGxlZS5uYW1lICE9PSAnZGVmaW5lJykgcmV0dXJuXG5cbiAgICAgIC8vIHRvZG86IGNhcHR1cmUgZGVmaW5lKChyZXF1aXJlLCBtb2R1bGUsIGV4cG9ydHMpID0+IHt9KSBmb3JtP1xuICAgICAgaWYgKG5vZGUuYXJndW1lbnRzLmxlbmd0aCAhPT0gMikgcmV0dXJuXG5cbiAgICAgIGNvbnN0IG1vZHVsZXMgPSBub2RlLmFyZ3VtZW50c1swXVxuICAgICAgaWYgKG1vZHVsZXMudHlwZSAhPT0gJ0FycmF5RXhwcmVzc2lvbicpIHJldHVyblxuXG4gICAgICAvLyB0b2RvOiBjaGVjayBzZWNvbmQgYXJnIHR5cGU/IChpZGVudGlmaWVyIG9yIGNhbGxiYWNrKVxuXG5cdFx0XHRjb250ZXh0LnJlcG9ydChub2RlLCBgRXhwZWN0ZWQgaW1wb3J0cyBpbnN0ZWFkIG9mIEFNRCAke25vZGUuY2FsbGVlLm5hbWV9KCkuYClcblx0XHR9LFxuXHR9XG5cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLWFtZC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7OztBQUtBO0FBQ0E7QUFDQTs7QUFFQSxPQUFPLE9BQVAsR0FBaUIsVUFBVSxPQUFWLEVBQW1COztBQUVuQyxTQUFPOztBQUVOLHNCQUFrQix3QkFBVSxJQUFWLEVBQWdCO0FBQzlCLFVBQUksUUFBUSxRQUFSLEdBQW1CLElBQW5CLEtBQTRCLFFBQWhDLEVBQTBDOztBQUUxQyxVQUFJLEtBQUssTUFBTCxDQUFZLElBQVosS0FBcUIsWUFBekIsRUFBdUM7QUFDdkMsVUFBSSxLQUFLLE1BQUwsQ0FBWSxJQUFaLEtBQXFCLFNBQXJCLElBQ0EsS0FBSyxNQUFMLENBQVksSUFBWixLQUFxQixRQUR6QixFQUNtQzs7QUFFbkM7QUFDQSxVQUFJLEtBQUssU0FBTCxDQUFlLE1BQWYsS0FBMEIsQ0FBOUIsRUFBaUM7O0FBRWpDLFVBQU0sVUFBVSxLQUFLLFNBQUwsQ0FBZSxDQUFmLENBQWhCO0FBQ0EsVUFBSSxRQUFRLElBQVIsS0FBaUIsaUJBQXJCLEVBQXdDOztBQUV4Qzs7QUFFSCxjQUFRLE1BQVIsQ0FBZSxJQUFmLHVDQUF3RCxLQUFLLE1BQUwsQ0FBWSxJQUFwRTtBQUNBO0FBbEJLLEdBQVA7QUFxQkEsQ0F2QkQiLCJmaWxlIjoicnVsZXMvbm8tYW1kLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZW92ZXJ2aWV3IFJ1bGUgdG8gcHJlZmVyIGltcG9ydHMgdG8gQU1EXG4gKiBAYXV0aG9yIEphbXVuZCBGZXJndXNvblxuICovXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSdWxlIERlZmluaXRpb25cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcblxuXHRyZXR1cm4ge1xuXG5cdFx0J0NhbGxFeHByZXNzaW9uJzogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIGlmIChjb250ZXh0LmdldFNjb3BlKCkudHlwZSAhPT0gJ21vZHVsZScpIHJldHVyblxuXG4gICAgICBpZiAobm9kZS5jYWxsZWUudHlwZSAhPT0gJ0lkZW50aWZpZXInKSByZXR1cm5cbiAgICAgIGlmIChub2RlLmNhbGxlZS5uYW1lICE9PSAncmVxdWlyZScgJiZcbiAgICAgICAgICBub2RlLmNhbGxlZS5uYW1lICE9PSAnZGVmaW5lJykgcmV0dXJuXG5cbiAgICAgIC8vIHRvZG86IGNhcHR1cmUgZGVmaW5lKChyZXF1aXJlLCBtb2R1bGUsIGV4cG9ydHMpID0+IHt9KSBmb3JtP1xuICAgICAgaWYgKG5vZGUuYXJndW1lbnRzLmxlbmd0aCAhPT0gMikgcmV0dXJuXG5cbiAgICAgIGNvbnN0IG1vZHVsZXMgPSBub2RlLmFyZ3VtZW50c1swXVxuICAgICAgaWYgKG1vZHVsZXMudHlwZSAhPT0gJ0FycmF5RXhwcmVzc2lvbicpIHJldHVyblxuXG4gICAgICAvLyB0b2RvOiBjaGVjayBzZWNvbmQgYXJnIHR5cGU/IChpZGVudGlmaWVyIG9yIGNhbGxiYWNrKVxuXG5cdFx0XHRjb250ZXh0LnJlcG9ydChub2RlLCBgRXhwZWN0ZWQgaW1wb3J0cyBpbnN0ZWFkIG9mIEFNRCAke25vZGUuY2FsbGVlLm5hbWV9KCkuYClcblx0XHR9LFxuXHR9XG5cbn1cbiJdfQ==

@@ -15,2 +15,3 @@ 'use strict';

module.exports = function (context) {

@@ -60,2 +61,2 @@

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLWNvbW1vbmpzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFLQSxJQUFNLGlCQUFpQix1Q0FBdkI7QUFBQSxJQUNNLGlCQUFpQiwwQ0FEdkI7Ozs7OztBQVFBLE9BQU8sT0FBUCxHQUFpQixVQUFVLE9BQVYsRUFBbUI7O0FBRWxDLFNBQU87O0FBRUwsd0JBQW9CLDBCQUFVLElBQVYsRUFBZ0I7OztBQUdsQyxVQUFJLEtBQUssTUFBTCxDQUFZLElBQVosS0FBcUIsUUFBckIsSUFBaUMsS0FBSyxRQUFMLENBQWMsSUFBZCxLQUF1QixTQUE1RCxFQUF1RTtBQUNyRSxZQUFJLGVBQWUsSUFBZixFQUFxQixPQUFyQixDQUFKLEVBQW1DO0FBQ25DLGdCQUFRLE1BQVIsQ0FBZSxFQUFFLFVBQUYsRUFBUSxTQUFTLGNBQWpCLEVBQWY7QUFDRDs7O0FBR0QsVUFBSSxLQUFLLE1BQUwsQ0FBWSxJQUFaLEtBQXFCLFNBQXpCLEVBQW9DO0FBQ2xDLGdCQUFRLE1BQVIsQ0FBZSxFQUFFLFVBQUYsRUFBUSxTQUFTLGNBQWpCLEVBQWY7QUFDRDtBQUVGLEtBZkk7QUFnQkwsc0JBQWtCLHdCQUFVLElBQVYsRUFBZ0I7QUFDaEMsVUFBSSxRQUFRLFFBQVIsR0FBbUIsSUFBbkIsS0FBNEIsUUFBaEMsRUFBMEM7O0FBRTFDLFVBQUksS0FBSyxNQUFMLENBQVksSUFBWixLQUFxQixZQUF6QixFQUF1QztBQUN2QyxVQUFJLEtBQUssTUFBTCxDQUFZLElBQVosS0FBcUIsU0FBekIsRUFBb0M7O0FBRXBDLFVBQUksS0FBSyxTQUFMLENBQWUsTUFBZixLQUEwQixDQUE5QixFQUFpQztBQUNqQyxVQUFJLFNBQVMsS0FBSyxTQUFMLENBQWUsQ0FBZixDQUFiOztBQUVBLFVBQUksT0FBTyxJQUFQLEtBQWdCLFNBQXBCLEVBQStCO0FBQy9CLFVBQUksT0FBTyxPQUFPLEtBQWQsS0FBd0IsUUFBNUIsRUFBc0M7OztBQUd0QyxjQUFRLE1BQVIsQ0FBZTtBQUNiLGNBQU0sS0FBSyxNQURFO0FBRWIsaUJBQVM7QUFGSSxPQUFmO0FBSUQ7QUFqQ0ksR0FBUDtBQW9DRCxDQXRDRDs7O0FBeUNBLFNBQVMsY0FBVCxDQUF3QixJQUF4QixFQUE4QixPQUE5QixFQUF1QztBQUNyQyxNQUFJLFFBQVEsT0FBUixDQUFnQixPQUFoQixDQUF3Qix5QkFBeEIsSUFBcUQsQ0FBekQsRUFBNEQsT0FBTyxLQUFQO0FBQzVELE1BQUksS0FBSyxNQUFMLENBQVksSUFBWixLQUFxQixzQkFBekIsRUFBaUQsT0FBTyxLQUFQO0FBQ2pELFNBQVEsS0FBSyxNQUFMLENBQVksS0FBWixDQUFrQixJQUFsQixLQUEyQixrQkFBbkM7QUFDRCIsImZpbGUiOiJydWxlcy9uby1jb21tb25qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIHByZWZlciBFUzYgdG8gQ0pTXG4gKiBAYXV0aG9yIEphbXVuZCBGZXJndXNvblxuICovXG5cbmNvbnN0IEVYUE9SVF9NRVNTQUdFID0gJ0V4cGVjdGVkIFwiZXhwb3J0XCIgb3IgXCJleHBvcnQgZGVmYXVsdFwiJ1xuICAgICwgSU1QT1JUX01FU1NBR0UgPSAnRXhwZWN0ZWQgXCJpbXBvcnRcIiBpbnN0ZWFkIG9mIFwicmVxdWlyZSgpXCInXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSdWxlIERlZmluaXRpb25cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuXG4gIHJldHVybiB7XG5cbiAgICAnTWVtYmVyRXhwcmVzc2lvbic6IGZ1bmN0aW9uIChub2RlKSB7XG5cbiAgICAgIC8vIG1vZHVsZS5leHBvcnRzXG4gICAgICBpZiAobm9kZS5vYmplY3QubmFtZSA9PT0gJ21vZHVsZScgJiYgbm9kZS5wcm9wZXJ0eS5uYW1lID09PSAnZXhwb3J0cycpIHtcbiAgICAgICAgaWYgKGFsbG93UHJpbWl0aXZlKG5vZGUsIGNvbnRleHQpKSByZXR1cm5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlLCBtZXNzYWdlOiBFWFBPUlRfTUVTU0FHRSB9KVxuICAgICAgfVxuXG4gICAgICAvLyBleHBvcnRzLlxuICAgICAgaWYgKG5vZGUub2JqZWN0Lm5hbWUgPT09ICdleHBvcnRzJykge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2U6IEVYUE9SVF9NRVNTQUdFIH0pXG4gICAgICB9XG5cbiAgICB9LFxuICAgICdDYWxsRXhwcmVzc2lvbic6IGZ1bmN0aW9uIChjYWxsKSB7XG4gICAgICBpZiAoY29udGV4dC5nZXRTY29wZSgpLnR5cGUgIT09ICdtb2R1bGUnKSByZXR1cm5cblxuICAgICAgaWYgKGNhbGwuY2FsbGVlLnR5cGUgIT09ICdJZGVudGlmaWVyJykgcmV0dXJuXG4gICAgICBpZiAoY2FsbC5jYWxsZWUubmFtZSAhPT0gJ3JlcXVpcmUnKSByZXR1cm5cblxuICAgICAgaWYgKGNhbGwuYXJndW1lbnRzLmxlbmd0aCAhPT0gMSkgcmV0dXJuXG4gICAgICB2YXIgbW9kdWxlID0gY2FsbC5hcmd1bWVudHNbMF1cblxuICAgICAgaWYgKG1vZHVsZS50eXBlICE9PSAnTGl0ZXJhbCcpIHJldHVyblxuICAgICAgaWYgKHR5cGVvZiBtb2R1bGUudmFsdWUgIT09ICdzdHJpbmcnKSByZXR1cm5cblxuICAgICAgLy8ga2VlcGluZyBpdCBzaW1wbGU6IGFsbCAxLXN0cmluZy1hcmcgYHJlcXVpcmVgIGNhbGxzIGFyZSByZXBvcnRlZFxuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBub2RlOiBjYWxsLmNhbGxlZSxcbiAgICAgICAgbWVzc2FnZTogSU1QT1JUX01FU1NBR0UsXG4gICAgICB9KVxuICAgIH0sXG4gIH1cblxufVxuXG4gIC8vIGFsbG93IG5vbi1vYmplY3RzIGFzIG1vZHVsZS5leHBvcnRzXG5mdW5jdGlvbiBhbGxvd1ByaW1pdGl2ZShub2RlLCBjb250ZXh0KSB7XG4gIGlmIChjb250ZXh0Lm9wdGlvbnMuaW5kZXhPZignYWxsb3ctcHJpbWl0aXZlLW1vZHVsZXMnKSA8IDApIHJldHVybiBmYWxzZVxuICBpZiAobm9kZS5wYXJlbnQudHlwZSAhPT0gJ0Fzc2lnbm1lbnRFeHByZXNzaW9uJykgcmV0dXJuIGZhbHNlXG4gIHJldHVybiAobm9kZS5wYXJlbnQucmlnaHQudHlwZSAhPT0gJ09iamVjdEV4cHJlc3Npb24nKVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLWNvbW1vbmpzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7O0FBS0EsSUFBTSxpQkFBaUIsdUNBQXZCO0FBQUEsSUFDTSxpQkFBaUIsMENBRHZCOztBQUdBO0FBQ0E7QUFDQTs7O0FBR0EsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjs7QUFFbEMsU0FBTzs7QUFFTCx3QkFBb0IsMEJBQVUsSUFBVixFQUFnQjs7QUFFbEM7QUFDQSxVQUFJLEtBQUssTUFBTCxDQUFZLElBQVosS0FBcUIsUUFBckIsSUFBaUMsS0FBSyxRQUFMLENBQWMsSUFBZCxLQUF1QixTQUE1RCxFQUF1RTtBQUNyRSxZQUFJLGVBQWUsSUFBZixFQUFxQixPQUFyQixDQUFKLEVBQW1DO0FBQ25DLGdCQUFRLE1BQVIsQ0FBZSxFQUFFLFVBQUYsRUFBUSxTQUFTLGNBQWpCLEVBQWY7QUFDRDs7QUFFRDtBQUNBLFVBQUksS0FBSyxNQUFMLENBQVksSUFBWixLQUFxQixTQUF6QixFQUFvQztBQUNsQyxnQkFBUSxNQUFSLENBQWUsRUFBRSxVQUFGLEVBQVEsU0FBUyxjQUFqQixFQUFmO0FBQ0Q7QUFFRixLQWZJO0FBZ0JMLHNCQUFrQix3QkFBVSxJQUFWLEVBQWdCO0FBQ2hDLFVBQUksUUFBUSxRQUFSLEdBQW1CLElBQW5CLEtBQTRCLFFBQWhDLEVBQTBDOztBQUUxQyxVQUFJLEtBQUssTUFBTCxDQUFZLElBQVosS0FBcUIsWUFBekIsRUFBdUM7QUFDdkMsVUFBSSxLQUFLLE1BQUwsQ0FBWSxJQUFaLEtBQXFCLFNBQXpCLEVBQW9DOztBQUVwQyxVQUFJLEtBQUssU0FBTCxDQUFlLE1BQWYsS0FBMEIsQ0FBOUIsRUFBaUM7QUFDakMsVUFBSSxTQUFTLEtBQUssU0FBTCxDQUFlLENBQWYsQ0FBYjs7QUFFQSxVQUFJLE9BQU8sSUFBUCxLQUFnQixTQUFwQixFQUErQjtBQUMvQixVQUFJLE9BQU8sT0FBTyxLQUFkLEtBQXdCLFFBQTVCLEVBQXNDOztBQUV0QztBQUNBLGNBQVEsTUFBUixDQUFlO0FBQ2IsY0FBTSxLQUFLLE1BREU7QUFFYixpQkFBUztBQUZJLE9BQWY7QUFJRDtBQWpDSSxHQUFQO0FBb0NELENBdENEOztBQXdDRTtBQUNGLFNBQVMsY0FBVCxDQUF3QixJQUF4QixFQUE4QixPQUE5QixFQUF1QztBQUNyQyxNQUFJLFFBQVEsT0FBUixDQUFnQixPQUFoQixDQUF3Qix5QkFBeEIsSUFBcUQsQ0FBekQsRUFBNEQsT0FBTyxLQUFQO0FBQzVELE1BQUksS0FBSyxNQUFMLENBQVksSUFBWixLQUFxQixzQkFBekIsRUFBaUQsT0FBTyxLQUFQO0FBQ2pELFNBQVEsS0FBSyxNQUFMLENBQVksS0FBWixDQUFrQixJQUFsQixLQUEyQixrQkFBbkM7QUFDRCIsImZpbGUiOiJydWxlcy9uby1jb21tb25qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIHByZWZlciBFUzYgdG8gQ0pTXG4gKiBAYXV0aG9yIEphbXVuZCBGZXJndXNvblxuICovXG5cbmNvbnN0IEVYUE9SVF9NRVNTQUdFID0gJ0V4cGVjdGVkIFwiZXhwb3J0XCIgb3IgXCJleHBvcnQgZGVmYXVsdFwiJ1xuICAgICwgSU1QT1JUX01FU1NBR0UgPSAnRXhwZWN0ZWQgXCJpbXBvcnRcIiBpbnN0ZWFkIG9mIFwicmVxdWlyZSgpXCInXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSdWxlIERlZmluaXRpb25cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuXG4gIHJldHVybiB7XG5cbiAgICAnTWVtYmVyRXhwcmVzc2lvbic6IGZ1bmN0aW9uIChub2RlKSB7XG5cbiAgICAgIC8vIG1vZHVsZS5leHBvcnRzXG4gICAgICBpZiAobm9kZS5vYmplY3QubmFtZSA9PT0gJ21vZHVsZScgJiYgbm9kZS5wcm9wZXJ0eS5uYW1lID09PSAnZXhwb3J0cycpIHtcbiAgICAgICAgaWYgKGFsbG93UHJpbWl0aXZlKG5vZGUsIGNvbnRleHQpKSByZXR1cm5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlLCBtZXNzYWdlOiBFWFBPUlRfTUVTU0FHRSB9KVxuICAgICAgfVxuXG4gICAgICAvLyBleHBvcnRzLlxuICAgICAgaWYgKG5vZGUub2JqZWN0Lm5hbWUgPT09ICdleHBvcnRzJykge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2U6IEVYUE9SVF9NRVNTQUdFIH0pXG4gICAgICB9XG5cbiAgICB9LFxuICAgICdDYWxsRXhwcmVzc2lvbic6IGZ1bmN0aW9uIChjYWxsKSB7XG4gICAgICBpZiAoY29udGV4dC5nZXRTY29wZSgpLnR5cGUgIT09ICdtb2R1bGUnKSByZXR1cm5cblxuICAgICAgaWYgKGNhbGwuY2FsbGVlLnR5cGUgIT09ICdJZGVudGlmaWVyJykgcmV0dXJuXG4gICAgICBpZiAoY2FsbC5jYWxsZWUubmFtZSAhPT0gJ3JlcXVpcmUnKSByZXR1cm5cblxuICAgICAgaWYgKGNhbGwuYXJndW1lbnRzLmxlbmd0aCAhPT0gMSkgcmV0dXJuXG4gICAgICB2YXIgbW9kdWxlID0gY2FsbC5hcmd1bWVudHNbMF1cblxuICAgICAgaWYgKG1vZHVsZS50eXBlICE9PSAnTGl0ZXJhbCcpIHJldHVyblxuICAgICAgaWYgKHR5cGVvZiBtb2R1bGUudmFsdWUgIT09ICdzdHJpbmcnKSByZXR1cm5cblxuICAgICAgLy8ga2VlcGluZyBpdCBzaW1wbGU6IGFsbCAxLXN0cmluZy1hcmcgYHJlcXVpcmVgIGNhbGxzIGFyZSByZXBvcnRlZFxuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBub2RlOiBjYWxsLmNhbGxlZSxcbiAgICAgICAgbWVzc2FnZTogSU1QT1JUX01FU1NBR0UsXG4gICAgICB9KVxuICAgIH0sXG4gIH1cblxufVxuXG4gIC8vIGFsbG93IG5vbi1vYmplY3RzIGFzIG1vZHVsZS5leHBvcnRzXG5mdW5jdGlvbiBhbGxvd1ByaW1pdGl2ZShub2RlLCBjb250ZXh0KSB7XG4gIGlmIChjb250ZXh0Lm9wdGlvbnMuaW5kZXhPZignYWxsb3ctcHJpbWl0aXZlLW1vZHVsZXMnKSA8IDApIHJldHVybiBmYWxzZVxuICBpZiAobm9kZS5wYXJlbnQudHlwZSAhPT0gJ0Fzc2lnbm1lbnRFeHByZXNzaW9uJykgcmV0dXJuIGZhbHNlXG4gIHJldHVybiAobm9kZS5wYXJlbnQucmlnaHQudHlwZSAhPT0gJ09iamVjdEV4cHJlc3Npb24nKVxufVxuIl19

@@ -152,2 +152,2 @@ 'use strict';

}
//# sourceMappingURL=data:application/json;base64,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SEQ7O0FBcUhBLFNBQVMsT0FBVCxDQUFpQixXQUFqQixFQUE4QjtBQUM1QixTQUFPLGdCQUFnQixZQUFZLFdBQVosR0FBMEIsT0FBTyxZQUFZLFdBQTdDLEdBQTJELEdBQTNFLENBQVA7QUFDRDs7QUFFRCxTQUFTLGNBQVQsQ0FBd0IsUUFBeEIsRUFBa0M7QUFDaEMsTUFBSSxDQUFDLFFBQUQsSUFBYSxDQUFDLFNBQVMsR0FBM0IsRUFBZ0M7O0FBRWhDLE1BQUksb0JBQUo7QUFDQSxNQUFJLFNBQVMsR0FBVCxDQUFhLElBQWIsQ0FBa0IsSUFBbEIsQ0FBdUI7QUFBQSxXQUFLLEVBQUUsS0FBRixLQUFZLFlBQVosS0FBNkIsY0FBYyxDQUEzQyxDQUFMO0FBQUEsR0FBdkIsQ0FBSixFQUFnRjtBQUM5RSxXQUFPLFdBQVA7QUFDRDtBQUNGIiwiZmlsZSI6InJ1bGVzL25vLWRlcHJlY2F0ZWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTWFwIGZyb20gJ2VzNi1tYXAnXG5cbmltcG9ydCBFeHBvcnRzIGZyb20gJy4uL2NvcmUvZ2V0RXhwb3J0cydcbmltcG9ydCBkZWNsYXJlZFNjb3BlIGZyb20gJy4uL2NvcmUvZGVjbGFyZWRTY29wZSdcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICBjb25zdCBkZXByZWNhdGVkID0gbmV3IE1hcCgpXG4gICAgICAsIG5hbWVzcGFjZXMgPSBuZXcgTWFwKClcblxuICBmdW5jdGlvbiBjaGVja1NwZWNpZmllcnMobm9kZSkge1xuICAgIGlmIChub2RlLnR5cGUgIT09ICdJbXBvcnREZWNsYXJhdGlvbicpIHJldHVyblxuICAgIGlmIChub2RlLnNvdXJjZSA9PSBudWxsKSByZXR1cm4gLy8gbG9jYWwgZXhwb3J0LCBpZ25vcmVcblxuICAgIGNvbnN0IGltcG9ydHMgPSBFeHBvcnRzLmdldChub2RlLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm5cblxuICAgIGxldCBtb2R1bGVEZXByZWNhdGlvblxuICAgIGlmIChpbXBvcnRzLmRvYyAmJlxuICAgICAgICBpbXBvcnRzLmRvYy50YWdzLnNvbWUodCA9PiB0LnRpdGxlID09PSAnZGVwcmVjYXRlZCcgJiYgKG1vZHVsZURlcHJlY2F0aW9uID0gdCkpKSB7XG4gICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2U6IG1lc3NhZ2UobW9kdWxlRGVwcmVjYXRpb24pIH0pXG4gICAgfVxuXG4gICAgaWYgKGltcG9ydHMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgaW1wb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgbm9kZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIG5vZGUuc3BlY2lmaWVycy5mb3JFYWNoKGZ1bmN0aW9uIChpbSkge1xuICAgICAgbGV0IGltcG9ydGVkLCBsb2NhbFxuICAgICAgc3dpdGNoIChpbS50eXBlKSB7XG5cblxuICAgICAgICBjYXNlICdJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXInOntcbiAgICAgICAgICBpZiAoIWltcG9ydHMuc2l6ZSkgcmV0dXJuXG4gICAgICAgICAgbmFtZXNwYWNlcy5zZXQoaW0ubG9jYWwubmFtZSwgaW1wb3J0cylcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInOlxuICAgICAgICAgIGltcG9ydGVkID0gJ2RlZmF1bHQnXG4gICAgICAgICAgbG9jYWwgPSBpbS5sb2NhbC5uYW1lXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICdJbXBvcnRTcGVjaWZpZXInOlxuICAgICAgICAgIGltcG9ydGVkID0gaW0uaW1wb3J0ZWQubmFtZVxuICAgICAgICAgIGxvY2FsID0gaW0ubG9jYWwubmFtZVxuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgZGVmYXVsdDogcmV0dXJuIC8vIGNhbid0IGhhbmRsZSB0aGlzIG9uZVxuICAgICAgfVxuXG4gICAgICAvLyB1bmtub3duIHRoaW5nIGNhbid0IGJlIGRlcHJlY2F0ZWRcbiAgICAgIGNvbnN0IGV4cG9ydGVkID0gaW1wb3J0cy5nZXQoaW1wb3J0ZWQpXG4gICAgICBpZiAoZXhwb3J0ZWQgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICAgIC8vIGNhcHR1cmUgaW1wb3J0IG9mIGRlZXAgbmFtZXNwYWNlXG4gICAgICBpZiAoZXhwb3J0ZWQubmFtZXNwYWNlKSBuYW1lc3BhY2VzLnNldChsb2NhbCwgZXhwb3J0ZWQubmFtZXNwYWNlKVxuXG4gICAgICBjb25zdCBkZXByZWNhdGlvbiA9IGdldERlcHJlY2F0aW9uKGltcG9ydHMuZ2V0KGltcG9ydGVkKSlcbiAgICAgIGlmICghZGVwcmVjYXRpb24pIHJldHVyblxuXG4gICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGU6IGltLCBtZXNzYWdlOiBtZXNzYWdlKGRlcHJlY2F0aW9uKSB9KVxuXG4gICAgICBkZXByZWNhdGVkLnNldChsb2NhbCwgZGVwcmVjYXRpb24pXG5cbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAnUHJvZ3JhbSc6ICh7IGJvZHkgfSkgPT4gYm9keS5mb3JFYWNoKGNoZWNrU3BlY2lmaWVycyksXG5cbiAgICAnSWRlbnRpZmllcic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBpZiAobm9kZS5wYXJlbnQudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nICYmIG5vZGUucGFyZW50LnByb3BlcnR5ID09PSBub2RlKSB7XG4gICAgICAgIHJldHVybiAvLyBoYW5kbGVkIGJ5IE1lbWJlckV4cHJlc3Npb25cbiAgICAgIH1cblxuICAgICAgLy8gaWdub3JlIHNwZWNpZmllciBpZGVudGlmaWVyc1xuICAgICAgaWYgKG5vZGUucGFyZW50LnR5cGUuc2xpY2UoMCwgNikgPT09ICdJbXBvcnQnKSByZXR1cm5cblxuICAgICAgaWYgKCFkZXByZWNhdGVkLmhhcyhub2RlLm5hbWUpKSByZXR1cm5cblxuICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgbm9kZS5uYW1lKSAhPT0gJ21vZHVsZScpIHJldHVyblxuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBub2RlLFxuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlKGRlcHJlY2F0ZWQuZ2V0KG5vZGUubmFtZSkpLFxuICAgICAgfSlcbiAgICB9LFxuXG4gICAgJ01lbWJlckV4cHJlc3Npb24nOiBmdW5jdGlvbiAoZGVyZWZlcmVuY2UpIHtcbiAgICAgIGlmIChkZXJlZmVyZW5jZS5vYmplY3QudHlwZSAhPT0gJ0lkZW50aWZpZXInKSByZXR1cm5cbiAgICAgIGlmICghbmFtZXNwYWNlcy5oYXMoZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpKSByZXR1cm5cblxuICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpICE9PSAnbW9kdWxlJykgcmV0dXJuXG5cbiAgICAgIC8vIGdvIGRlZXBcbiAgICAgIHZhciBuYW1lc3BhY2UgPSBuYW1lc3BhY2VzLmdldChkZXJlZmVyZW5jZS5vYmplY3QubmFtZSlcbiAgICAgIHZhciBuYW1lcGF0aCA9IFtkZXJlZmVyZW5jZS5vYmplY3QubmFtZV1cbiAgICAgIC8vIHdoaWxlIHByb3BlcnR5IGlzIG5hbWVzcGFjZSBhbmQgcGFyZW50IGlzIG1lbWJlciBleHByZXNzaW9uLCBrZWVwIHZhbGlkYXRpbmdcbiAgICAgIHdoaWxlIChuYW1lc3BhY2UgaW5zdGFuY2VvZiBFeHBvcnRzICYmXG4gICAgICAgICAgICAgZGVyZWZlcmVuY2UudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nKSB7XG5cbiAgICAgICAgLy8gaWdub3JlIGNvbXB1dGVkIHBhcnRzIGZvciBub3dcbiAgICAgICAgaWYgKGRlcmVmZXJlbmNlLmNvbXB1dGVkKSByZXR1cm5cblxuICAgICAgICBjb25zdCBtZXRhZGF0YSA9IG5hbWVzcGFjZS5nZXQoZGVyZWZlcmVuY2UucHJvcGVydHkubmFtZSlcblxuICAgICAgICBpZiAoIW1ldGFkYXRhKSBicmVha1xuICAgICAgICBjb25zdCBkZXByZWNhdGlvbiA9IGdldERlcHJlY2F0aW9uKG1ldGFkYXRhKVxuXG4gICAgICAgIGlmIChkZXByZWNhdGlvbikge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZTogZGVyZWZlcmVuY2UucHJvcGVydHksIG1lc3NhZ2U6IG1lc3NhZ2UoZGVwcmVjYXRpb24pIH0pXG4gICAgICAgIH1cblxuICAgICAgICAvLyBzdGFzaCBhbmQgcG9wXG4gICAgICAgIG5hbWVwYXRoLnB1c2goZGVyZWZlcmVuY2UucHJvcGVydHkubmFtZSlcbiAgICAgICAgbmFtZXNwYWNlID0gbWV0YWRhdGEubmFtZXNwYWNlXG4gICAgICAgIGRlcmVmZXJlbmNlID0gZGVyZWZlcmVuY2UucGFyZW50XG4gICAgICB9XG4gICAgfSxcbiAgfVxufVxuXG5mdW5jdGlvbiBtZXNzYWdlKGRlcHJlY2F0aW9uKSB7XG4gIHJldHVybiAnRGVwcmVjYXRlZCcgKyAoZGVwcmVjYXRpb24uZGVzY3JpcHRpb24gPyAnOiAnICsgZGVwcmVjYXRpb24uZGVzY3JpcHRpb24gOiAnLicpXG59XG5cbmZ1bmN0aW9uIGdldERlcHJlY2F0aW9uKG1ldGFkYXRhKSB7XG4gIGlmICghbWV0YWRhdGEgfHwgIW1ldGFkYXRhLmRvYykgcmV0dXJuXG5cbiAgbGV0IGRlcHJlY2F0aW9uXG4gIGlmIChtZXRhZGF0YS5kb2MudGFncy5zb21lKHQgPT4gdC50aXRsZSA9PT0gJ2RlcHJlY2F0ZWQnICYmIChkZXByZWNhdGlvbiA9IHQpKSkge1xuICAgIHJldHVybiBkZXByZWNhdGlvblxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,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U0FBckI7QUFDQSxzQkFBYyxZQUFZLE1BQTFCO0FBQ0Q7QUFDRjtBQWxESSxHQUFQO0FBb0RELENBbkhEOztBQXFIQSxTQUFTLE9BQVQsQ0FBaUIsV0FBakIsRUFBOEI7QUFDNUIsU0FBTyxnQkFBZ0IsWUFBWSxXQUFaLEdBQTBCLE9BQU8sWUFBWSxXQUE3QyxHQUEyRCxHQUEzRSxDQUFQO0FBQ0Q7O0FBRUQsU0FBUyxjQUFULENBQXdCLFFBQXhCLEVBQWtDO0FBQ2hDLE1BQUksQ0FBQyxRQUFELElBQWEsQ0FBQyxTQUFTLEdBQTNCLEVBQWdDOztBQUVoQyxNQUFJLG9CQUFKO0FBQ0EsTUFBSSxTQUFTLEdBQVQsQ0FBYSxJQUFiLENBQWtCLElBQWxCLENBQXVCO0FBQUEsV0FBSyxFQUFFLEtBQUYsS0FBWSxZQUFaLEtBQTZCLGNBQWMsQ0FBM0MsQ0FBTDtBQUFBLEdBQXZCLENBQUosRUFBZ0Y7QUFDOUUsV0FBTyxXQUFQO0FBQ0Q7QUFDRiIsImZpbGUiOiJydWxlcy9uby1kZXByZWNhdGVkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1hcCBmcm9tICdlczYtbWFwJ1xuXG5pbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9jb3JlL2dldEV4cG9ydHMnXG5pbXBvcnQgZGVjbGFyZWRTY29wZSBmcm9tICcuLi9jb3JlL2RlY2xhcmVkU2NvcGUnXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgY29uc3QgZGVwcmVjYXRlZCA9IG5ldyBNYXAoKVxuICAgICAgLCBuYW1lc3BhY2VzID0gbmV3IE1hcCgpXG5cbiAgZnVuY3Rpb24gY2hlY2tTcGVjaWZpZXJzKG5vZGUpIHtcbiAgICBpZiAobm9kZS50eXBlICE9PSAnSW1wb3J0RGVjbGFyYXRpb24nKSByZXR1cm5cbiAgICBpZiAobm9kZS5zb3VyY2UgPT0gbnVsbCkgcmV0dXJuIC8vIGxvY2FsIGV4cG9ydCwgaWdub3JlXG5cbiAgICBjb25zdCBpbXBvcnRzID0gRXhwb3J0cy5nZXQobm9kZS5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgaWYgKGltcG9ydHMgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICBsZXQgbW9kdWxlRGVwcmVjYXRpb25cbiAgICBpZiAoaW1wb3J0cy5kb2MgJiZcbiAgICAgICAgaW1wb3J0cy5kb2MudGFncy5zb21lKHQgPT4gdC50aXRsZSA9PT0gJ2RlcHJlY2F0ZWQnICYmIChtb2R1bGVEZXByZWNhdGlvbiA9IHQpKSkge1xuICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlLCBtZXNzYWdlOiBtZXNzYWdlKG1vZHVsZURlcHJlY2F0aW9uKSB9KVxuICAgIH1cblxuICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIG5vZGUpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBub2RlLnNwZWNpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAoaW0pIHtcbiAgICAgIGxldCBpbXBvcnRlZCwgbG9jYWxcbiAgICAgIHN3aXRjaCAoaW0udHlwZSkge1xuXG5cbiAgICAgICAgY2FzZSAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJzp7XG4gICAgICAgICAgaWYgKCFpbXBvcnRzLnNpemUpIHJldHVyblxuICAgICAgICAgIG5hbWVzcGFjZXMuc2V0KGltLmxvY2FsLm5hbWUsIGltcG9ydHMpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjYXNlICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJzpcbiAgICAgICAgICBpbXBvcnRlZCA9ICdkZWZhdWx0J1xuICAgICAgICAgIGxvY2FsID0gaW0ubG9jYWwubmFtZVxuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnSW1wb3J0U3BlY2lmaWVyJzpcbiAgICAgICAgICBpbXBvcnRlZCA9IGltLmltcG9ydGVkLm5hbWVcbiAgICAgICAgICBsb2NhbCA9IGltLmxvY2FsLm5hbWVcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGRlZmF1bHQ6IHJldHVybiAvLyBjYW4ndCBoYW5kbGUgdGhpcyBvbmVcbiAgICAgIH1cblxuICAgICAgLy8gdW5rbm93biB0aGluZyBjYW4ndCBiZSBkZXByZWNhdGVkXG4gICAgICBjb25zdCBleHBvcnRlZCA9IGltcG9ydHMuZ2V0KGltcG9ydGVkKVxuICAgICAgaWYgKGV4cG9ydGVkID09IG51bGwpIHJldHVyblxuXG4gICAgICAvLyBjYXB0dXJlIGltcG9ydCBvZiBkZWVwIG5hbWVzcGFjZVxuICAgICAgaWYgKGV4cG9ydGVkLm5hbWVzcGFjZSkgbmFtZXNwYWNlcy5zZXQobG9jYWwsIGV4cG9ydGVkLm5hbWVzcGFjZSlcblxuICAgICAgY29uc3QgZGVwcmVjYXRpb24gPSBnZXREZXByZWNhdGlvbihpbXBvcnRzLmdldChpbXBvcnRlZCkpXG4gICAgICBpZiAoIWRlcHJlY2F0aW9uKSByZXR1cm5cblxuICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlOiBpbSwgbWVzc2FnZTogbWVzc2FnZShkZXByZWNhdGlvbikgfSlcblxuICAgICAgZGVwcmVjYXRlZC5zZXQobG9jYWwsIGRlcHJlY2F0aW9uKVxuXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJ1Byb2dyYW0nOiAoeyBib2R5IH0pID0+IGJvZHkuZm9yRWFjaChjaGVja1NwZWNpZmllcnMpLFxuXG4gICAgJ0lkZW50aWZpZXInOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgaWYgKG5vZGUucGFyZW50LnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJyAmJiBub2RlLnBhcmVudC5wcm9wZXJ0eSA9PT0gbm9kZSkge1xuICAgICAgICByZXR1cm4gLy8gaGFuZGxlZCBieSBNZW1iZXJFeHByZXNzaW9uXG4gICAgICB9XG5cbiAgICAgIC8vIGlnbm9yZSBzcGVjaWZpZXIgaWRlbnRpZmllcnNcbiAgICAgIGlmIChub2RlLnBhcmVudC50eXBlLnNsaWNlKDAsIDYpID09PSAnSW1wb3J0JykgcmV0dXJuXG5cbiAgICAgIGlmICghZGVwcmVjYXRlZC5oYXMobm9kZS5uYW1lKSkgcmV0dXJuXG5cbiAgICAgIGlmIChkZWNsYXJlZFNjb3BlKGNvbnRleHQsIG5vZGUubmFtZSkgIT09ICdtb2R1bGUnKSByZXR1cm5cbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgbm9kZSxcbiAgICAgICAgbWVzc2FnZTogbWVzc2FnZShkZXByZWNhdGVkLmdldChub2RlLm5hbWUpKSxcbiAgICAgIH0pXG4gICAgfSxcblxuICAgICdNZW1iZXJFeHByZXNzaW9uJzogZnVuY3Rpb24gKGRlcmVmZXJlbmNlKSB7XG4gICAgICBpZiAoZGVyZWZlcmVuY2Uub2JqZWN0LnR5cGUgIT09ICdJZGVudGlmaWVyJykgcmV0dXJuXG4gICAgICBpZiAoIW5hbWVzcGFjZXMuaGFzKGRlcmVmZXJlbmNlLm9iamVjdC5uYW1lKSkgcmV0dXJuXG5cbiAgICAgIGlmIChkZWNsYXJlZFNjb3BlKGNvbnRleHQsIGRlcmVmZXJlbmNlLm9iamVjdC5uYW1lKSAhPT0gJ21vZHVsZScpIHJldHVyblxuXG4gICAgICAvLyBnbyBkZWVwXG4gICAgICB2YXIgbmFtZXNwYWNlID0gbmFtZXNwYWNlcy5nZXQoZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpXG4gICAgICB2YXIgbmFtZXBhdGggPSBbZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWVdXG4gICAgICAvLyB3aGlsZSBwcm9wZXJ0eSBpcyBuYW1lc3BhY2UgYW5kIHBhcmVudCBpcyBtZW1iZXIgZXhwcmVzc2lvbiwga2VlcCB2YWxpZGF0aW5nXG4gICAgICB3aGlsZSAobmFtZXNwYWNlIGluc3RhbmNlb2YgRXhwb3J0cyAmJlxuICAgICAgICAgICAgIGRlcmVmZXJlbmNlLnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJykge1xuXG4gICAgICAgIC8vIGlnbm9yZSBjb21wdXRlZCBwYXJ0cyBmb3Igbm93XG4gICAgICAgIGlmIChkZXJlZmVyZW5jZS5jb21wdXRlZCkgcmV0dXJuXG5cbiAgICAgICAgY29uc3QgbWV0YWRhdGEgPSBuYW1lc3BhY2UuZ2V0KGRlcmVmZXJlbmNlLnByb3BlcnR5Lm5hbWUpXG5cbiAgICAgICAgaWYgKCFtZXRhZGF0YSkgYnJlYWtcbiAgICAgICAgY29uc3QgZGVwcmVjYXRpb24gPSBnZXREZXByZWNhdGlvbihtZXRhZGF0YSlcblxuICAgICAgICBpZiAoZGVwcmVjYXRpb24pIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGU6IGRlcmVmZXJlbmNlLnByb3BlcnR5LCBtZXNzYWdlOiBtZXNzYWdlKGRlcHJlY2F0aW9uKSB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gc3Rhc2ggYW5kIHBvcFxuICAgICAgICBuYW1lcGF0aC5wdXNoKGRlcmVmZXJlbmNlLnByb3BlcnR5Lm5hbWUpXG4gICAgICAgIG5hbWVzcGFjZSA9IG1ldGFkYXRhLm5hbWVzcGFjZVxuICAgICAgICBkZXJlZmVyZW5jZSA9IGRlcmVmZXJlbmNlLnBhcmVudFxuICAgICAgfVxuICAgIH0sXG4gIH1cbn1cblxuZnVuY3Rpb24gbWVzc2FnZShkZXByZWNhdGlvbikge1xuICByZXR1cm4gJ0RlcHJlY2F0ZWQnICsgKGRlcHJlY2F0aW9uLmRlc2NyaXB0aW9uID8gJzogJyArIGRlcHJlY2F0aW9uLmRlc2NyaXB0aW9uIDogJy4nKVxufVxuXG5mdW5jdGlvbiBnZXREZXByZWNhdGlvbihtZXRhZGF0YSkge1xuICBpZiAoIW1ldGFkYXRhIHx8ICFtZXRhZGF0YS5kb2MpIHJldHVyblxuXG4gIGxldCBkZXByZWNhdGlvblxuICBpZiAobWV0YWRhdGEuZG9jLnRhZ3Muc29tZSh0ID0+IHQudGl0bGUgPT09ICdkZXByZWNhdGVkJyAmJiAoZGVwcmVjYXRpb24gPSB0KSkpIHtcbiAgICByZXR1cm4gZGVwcmVjYXRpb25cbiAgfVxufVxuIl19

@@ -49,2 +49,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLWR1cGxpY2F0ZXMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7OztBQUNBOzs7O0FBRUE7Ozs7OztBQUVBLFNBQVMsWUFBVCxDQUFzQixRQUF0QixFQUFnQyxPQUFoQyxFQUF5QztBQUN2QyxXQUFTLE9BQVQsQ0FBaUIsVUFBQyxLQUFELEVBQVEsTUFBUixFQUFtQjtBQUNsQyxRQUFJLE1BQU0sSUFBTixHQUFhLENBQWpCLEVBQW9CO0FBQ2xCLFlBQU0sT0FBTixDQUFjLFVBQUMsSUFBRCxFQUFVO0FBQ3RCLGdCQUFRLE1BQVIsQ0FBZSxJQUFmLFNBQXlCLE1BQXpCO0FBQ0QsT0FGRDtBQUdEO0FBQ0YsR0FORDtBQU9EOztBQUVELE9BQU8sT0FBUCxHQUFpQixVQUFVLE9BQVYsRUFBbUI7QUFDbEMsTUFBTSxXQUFXLHNCQUFqQjtBQUNBLE1BQU0sZ0JBQWdCLHNCQUF0QjtBQUNBLFNBQU87QUFDTCx5QkFBcUIsMkJBQVUsQ0FBVixFQUFhOztBQUVoQyxVQUFNLGVBQWUsdUJBQVEsRUFBRSxNQUFGLENBQVMsS0FBakIsRUFBd0IsT0FBeEIsS0FBb0MsRUFBRSxNQUFGLENBQVMsS0FBbEU7QUFDQSxVQUFNLFlBQVksRUFBRSxVQUFGLEtBQWlCLE1BQWpCLEdBQTBCLGFBQTFCLEdBQTBDLFFBQTVEOztBQUVBLFVBQUksVUFBVSxHQUFWLENBQWMsWUFBZCxDQUFKLEVBQWlDO0FBQy9CLGtCQUFVLEdBQVYsQ0FBYyxZQUFkLEVBQTRCLEdBQTVCLENBQWdDLEVBQUUsTUFBbEM7QUFDRCxPQUZELE1BRU87QUFDTCxrQkFBVSxHQUFWLENBQWMsWUFBZCxFQUE0QixxQkFBUSxDQUFDLEVBQUUsTUFBSCxDQUFSLENBQTVCO0FBQ0Q7QUFDRixLQVhJOztBQWFMLG9CQUFnQix1QkFBWTtBQUMxQixtQkFBYSxRQUFiLEVBQXVCLE9BQXZCO0FBQ0EsbUJBQWEsYUFBYixFQUE0QixPQUE1QjtBQUNEO0FBaEJJLEdBQVA7QUFrQkQsQ0FyQkQiLCJmaWxlIjoicnVsZXMvbm8tZHVwbGljYXRlcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNYXAgZnJvbSAnZXM2LW1hcCdcbmltcG9ydCBTZXQgZnJvbSAnZXM2LXNldCdcblxuaW1wb3J0IHJlc29sdmUgZnJvbSAnLi4vY29yZS9yZXNvbHZlJ1xuXG5mdW5jdGlvbiBjaGVja0ltcG9ydHMoaW1wb3J0ZWQsIGNvbnRleHQpIHtcbiAgaW1wb3J0ZWQuZm9yRWFjaCgobm9kZXMsIG1vZHVsZSkgPT4ge1xuICAgIGlmIChub2Rlcy5zaXplID4gMSkge1xuICAgICAgbm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChub2RlLCBgJyR7bW9kdWxlfScgaW1wb3J0ZWQgbXVsdGlwbGUgdGltZXMuYClcbiAgICAgIH0pXG4gICAgfVxuICB9KVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIGNvbnN0IGltcG9ydGVkID0gbmV3IE1hcCgpXG4gIGNvbnN0IHR5cGVzSW1wb3J0ZWQgPSBuZXcgTWFwKClcbiAgcmV0dXJuIHtcbiAgICAnSW1wb3J0RGVjbGFyYXRpb24nOiBmdW5jdGlvbiAobikge1xuICAgICAgLy8gcmVzb2x2ZWQgcGF0aCB3aWxsIGNvdmVyIGFsaWFzZWQgZHVwbGljYXRlc1xuICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gcmVzb2x2ZShuLnNvdXJjZS52YWx1ZSwgY29udGV4dCkgfHwgbi5zb3VyY2UudmFsdWVcbiAgICAgIGNvbnN0IGltcG9ydE1hcCA9IG4uaW1wb3J0S2luZCA9PT0gJ3R5cGUnID8gdHlwZXNJbXBvcnRlZCA6IGltcG9ydGVkXG5cbiAgICAgIGlmIChpbXBvcnRNYXAuaGFzKHJlc29sdmVkUGF0aCkpIHtcbiAgICAgICAgaW1wb3J0TWFwLmdldChyZXNvbHZlZFBhdGgpLmFkZChuLnNvdXJjZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGltcG9ydE1hcC5zZXQocmVzb2x2ZWRQYXRoLCBuZXcgU2V0KFtuLnNvdXJjZV0pKVxuICAgICAgfVxuICAgIH0sXG5cbiAgICAnUHJvZ3JhbTpleGl0JzogZnVuY3Rpb24gKCkge1xuICAgICAgY2hlY2tJbXBvcnRzKGltcG9ydGVkLCBjb250ZXh0KVxuICAgICAgY2hlY2tJbXBvcnRzKHR5cGVzSW1wb3J0ZWQsIGNvbnRleHQpXG4gICAgfSxcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLWR1cGxpY2F0ZXMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7OztBQUNBOzs7O0FBRUE7Ozs7OztBQUVBLFNBQVMsWUFBVCxDQUFzQixRQUF0QixFQUFnQyxPQUFoQyxFQUF5QztBQUN2QyxXQUFTLE9BQVQsQ0FBaUIsVUFBQyxLQUFELEVBQVEsTUFBUixFQUFtQjtBQUNsQyxRQUFJLE1BQU0sSUFBTixHQUFhLENBQWpCLEVBQW9CO0FBQ2xCLFlBQU0sT0FBTixDQUFjLFVBQUMsSUFBRCxFQUFVO0FBQ3RCLGdCQUFRLE1BQVIsQ0FBZSxJQUFmLFNBQXlCLE1BQXpCO0FBQ0QsT0FGRDtBQUdEO0FBQ0YsR0FORDtBQU9EOztBQUVELE9BQU8sT0FBUCxHQUFpQixVQUFVLE9BQVYsRUFBbUI7QUFDbEMsTUFBTSxXQUFXLHNCQUFqQjtBQUNBLE1BQU0sZ0JBQWdCLHNCQUF0QjtBQUNBLFNBQU87QUFDTCx5QkFBcUIsMkJBQVUsQ0FBVixFQUFhO0FBQ2hDO0FBQ0EsVUFBTSxlQUFlLHVCQUFRLEVBQUUsTUFBRixDQUFTLEtBQWpCLEVBQXdCLE9BQXhCLEtBQW9DLEVBQUUsTUFBRixDQUFTLEtBQWxFO0FBQ0EsVUFBTSxZQUFZLEVBQUUsVUFBRixLQUFpQixNQUFqQixHQUEwQixhQUExQixHQUEwQyxRQUE1RDs7QUFFQSxVQUFJLFVBQVUsR0FBVixDQUFjLFlBQWQsQ0FBSixFQUFpQztBQUMvQixrQkFBVSxHQUFWLENBQWMsWUFBZCxFQUE0QixHQUE1QixDQUFnQyxFQUFFLE1BQWxDO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsa0JBQVUsR0FBVixDQUFjLFlBQWQsRUFBNEIscUJBQVEsQ0FBQyxFQUFFLE1BQUgsQ0FBUixDQUE1QjtBQUNEO0FBQ0YsS0FYSTs7QUFhTCxvQkFBZ0IsdUJBQVk7QUFDMUIsbUJBQWEsUUFBYixFQUF1QixPQUF2QjtBQUNBLG1CQUFhLGFBQWIsRUFBNEIsT0FBNUI7QUFDRDtBQWhCSSxHQUFQO0FBa0JELENBckJEIiwiZmlsZSI6InJ1bGVzL25vLWR1cGxpY2F0ZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTWFwIGZyb20gJ2VzNi1tYXAnXG5pbXBvcnQgU2V0IGZyb20gJ2VzNi1zZXQnXG5cbmltcG9ydCByZXNvbHZlIGZyb20gJy4uL2NvcmUvcmVzb2x2ZSdcblxuZnVuY3Rpb24gY2hlY2tJbXBvcnRzKGltcG9ydGVkLCBjb250ZXh0KSB7XG4gIGltcG9ydGVkLmZvckVhY2goKG5vZGVzLCBtb2R1bGUpID0+IHtcbiAgICBpZiAobm9kZXMuc2l6ZSA+IDEpIHtcbiAgICAgIG5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQobm9kZSwgYCcke21vZHVsZX0nIGltcG9ydGVkIG11bHRpcGxlIHRpbWVzLmApXG4gICAgICB9KVxuICAgIH1cbiAgfSlcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICBjb25zdCBpbXBvcnRlZCA9IG5ldyBNYXAoKVxuICBjb25zdCB0eXBlc0ltcG9ydGVkID0gbmV3IE1hcCgpXG4gIHJldHVybiB7XG4gICAgJ0ltcG9ydERlY2xhcmF0aW9uJzogZnVuY3Rpb24gKG4pIHtcbiAgICAgIC8vIHJlc29sdmVkIHBhdGggd2lsbCBjb3ZlciBhbGlhc2VkIGR1cGxpY2F0ZXNcbiAgICAgIGNvbnN0IHJlc29sdmVkUGF0aCA9IHJlc29sdmUobi5zb3VyY2UudmFsdWUsIGNvbnRleHQpIHx8IG4uc291cmNlLnZhbHVlXG4gICAgICBjb25zdCBpbXBvcnRNYXAgPSBuLmltcG9ydEtpbmQgPT09ICd0eXBlJyA/IHR5cGVzSW1wb3J0ZWQgOiBpbXBvcnRlZFxuXG4gICAgICBpZiAoaW1wb3J0TWFwLmhhcyhyZXNvbHZlZFBhdGgpKSB7XG4gICAgICAgIGltcG9ydE1hcC5nZXQocmVzb2x2ZWRQYXRoKS5hZGQobi5zb3VyY2UpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbXBvcnRNYXAuc2V0KHJlc29sdmVkUGF0aCwgbmV3IFNldChbbi5zb3VyY2VdKSlcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGNoZWNrSW1wb3J0cyhpbXBvcnRlZCwgY29udGV4dClcbiAgICAgIGNoZWNrSW1wb3J0cyh0eXBlc0ltcG9ydGVkLCBjb250ZXh0KVxuICAgIH0sXG4gIH1cbn1cbiJdfQ==

@@ -117,2 +117,2 @@ 'use strict';

}];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVBLFNBQVMsZUFBVCxDQUF5QixPQUF6QixFQUFrQztBQUNoQyxNQUFNLFdBQVcsZ0JBQU0sSUFBTixDQUFXLFFBQVEsV0FBUixFQUFYLENBQWpCO0FBQ0EsTUFBSSxDQUFDLFFBQUwsRUFBZTtBQUNiLFdBQU8sSUFBUDtBQUNEOztBQUVELE1BQUk7QUFDRixRQUFNLGlCQUFpQixLQUFLLEtBQUwsQ0FBVyxhQUFHLFlBQUgsQ0FBZ0IsUUFBaEIsRUFBMEIsTUFBMUIsQ0FBWCxDQUF2QjtBQUNBLFdBQU87QUFDTCxvQkFBYyxlQUFlLFlBQWYsSUFBK0IsRUFEeEM7QUFFTCx1QkFBaUIsZUFBZSxlQUFmLElBQWtDLEVBRjlDO0FBR0wsNEJBQXNCLGVBQWUsb0JBQWYsSUFBdUMsRUFIeEQ7QUFJTCx3QkFBa0IsZUFBZSxnQkFBZixJQUFtQztBQUpoRCxLQUFQO0FBTUQsR0FSRCxDQVFFLE9BQU8sQ0FBUCxFQUFVO0FBQ1YsV0FBTyxJQUFQO0FBQ0Q7QUFDRjs7QUFFRCxTQUFTLG1CQUFULENBQTZCLFdBQTdCLEVBQTBDO0FBQ3hDLFNBQU8sT0FBSSxXQUFKLGlGQUNZLFdBRFosa0JBQVA7QUFFRDs7QUFFRCxTQUFTLGtCQUFULENBQTRCLFdBQTVCLEVBQXlDO0FBQ3ZDLGdCQUFXLFdBQVg7QUFDRDs7QUFFRCxTQUFTLGtCQUFULENBQTRCLFdBQTVCLEVBQXlDO0FBQ3ZDLFNBQU8sT0FBSSxXQUFKLHVGQUFQO0FBRUQ7O0FBRUQsU0FBUyxlQUFULENBQXlCLE9BQXpCLEVBQWtDLElBQWxDLEVBQXdDLFdBQXhDLEVBQXFELElBQXJELEVBQTJELElBQTNELEVBQWlFO0FBQy9ELE1BQUksMEJBQVcsSUFBWCxFQUFpQixPQUFqQixNQUE4QixVQUFsQyxFQUE4QztBQUM1QztBQUNEO0FBQ0QsTUFBTSxZQUFZLEtBQUssS0FBTCxDQUFXLEdBQVgsQ0FBbEI7QUFDQSxNQUFNLGNBQWMsVUFBVSxDQUFWLEVBQWEsQ0FBYixNQUFvQixHQUFwQixHQUNoQixVQUFVLEtBQVYsQ0FBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkIsRUFBc0IsSUFBdEIsQ0FBMkIsR0FBM0IsQ0FEZ0IsR0FFaEIsVUFBVSxDQUFWLENBRko7O0FBSUEsTUFBTSxXQUFXLEtBQUssWUFBTCxDQUFrQixXQUFsQixNQUFtQyxTQUFwRDtBQUNBLE1BQU0sY0FBYyxLQUFLLGVBQUwsQ0FBcUIsV0FBckIsTUFBc0MsU0FBMUQ7QUFDQSxNQUFNLGNBQWMsS0FBSyxvQkFBTCxDQUEwQixXQUExQixNQUEyQyxTQUEvRDtBQUNBLE1BQU0sZUFBZSxLQUFLLGdCQUFMLENBQXNCLFdBQXRCLE1BQXVDLFNBQTVEOztBQUVBLE1BQUksWUFDRCxZQUFZLFlBQVosSUFBNEIsV0FEM0IsSUFFRCxZQUFZLGFBQVosSUFBNkIsWUFGNUIsSUFHRCxZQUFZLFlBQVosSUFBNEIsV0FIL0IsRUFJRTtBQUNBO0FBQ0Q7O0FBRUQsTUFBSSxlQUFlLENBQUMsWUFBWSxZQUFoQyxFQUE4QztBQUM1QyxZQUFRLE1BQVIsQ0FBZSxJQUFmLEVBQXFCLG1CQUFtQixXQUFuQixDQUFyQjtBQUNBO0FBQ0Q7O0FBRUQsTUFBSSxlQUFlLENBQUMsWUFBWSxZQUFoQyxFQUE4QztBQUM1QyxZQUFRLE1BQVIsQ0FBZSxJQUFmLEVBQXFCLG1CQUFtQixXQUFuQixDQUFyQjtBQUNBO0FBQ0Q7O0FBRUQsVUFBUSxNQUFSLENBQWUsSUFBZixFQUFxQixvQkFBb0IsV0FBcEIsQ0FBckI7QUFDRDs7QUFFRCxPQUFPLE9BQVAsR0FBaUIsVUFBVSxPQUFWLEVBQW1CO0FBQ2xDLE1BQU0sVUFBVSxRQUFRLE9BQVIsQ0FBZ0IsQ0FBaEIsS0FBc0IsRUFBdEM7QUFDQSxNQUFNLE9BQU8sZ0JBQWdCLE9BQWhCLENBQWI7O0FBRUEsTUFBSSxDQUFDLElBQUwsRUFBVztBQUNULFdBQU8sRUFBUDtBQUNEOztBQUVELE1BQU0sY0FBYztBQUNsQixrQkFBYyxRQUFRLGVBQVIsS0FBNEIsS0FEeEI7QUFFbEIsa0JBQWMsUUFBUSxvQkFBUixLQUFpQyxLQUY3QjtBQUdsQixtQkFBZSxRQUFRLGdCQUFSLEtBQTZCO0FBSDFCLEdBQXBCOzs7QUFPQSxTQUFPO0FBQ0wsdUJBQW1CLDJCQUFVLElBQVYsRUFBZ0I7QUFDakMsc0JBQWdCLE9BQWhCLEVBQXlCLElBQXpCLEVBQStCLFdBQS9CLEVBQTRDLElBQTVDLEVBQWtELEtBQUssTUFBTCxDQUFZLEtBQTlEO0FBQ0QsS0FISTtBQUlMLG9CQUFnQixTQUFTLGNBQVQsQ0FBd0IsSUFBeEIsRUFBOEI7QUFDNUMsVUFBSSw2QkFBZ0IsSUFBaEIsQ0FBSixFQUEyQjtBQUN6Qix3QkFBZ0IsT0FBaEIsRUFBeUIsSUFBekIsRUFBK0IsV0FBL0IsRUFBNEMsSUFBNUMsRUFBa0QsS0FBSyxTQUFMLENBQWUsQ0FBZixFQUFrQixLQUFwRTtBQUNEO0FBQ0Y7QUFSSSxHQUFQO0FBVUQsQ0F6QkQ7O0FBMkJBLE9BQU8sT0FBUCxDQUFlLE1BQWYsR0FBd0IsQ0FDdEI7QUFDRSxVQUFRLFFBRFY7QUFFRSxnQkFBYztBQUNaLHVCQUFtQixFQUFFLFFBQVEsU0FBVixFQURQO0FBRVosNEJBQXdCLEVBQUUsUUFBUSxTQUFWLEVBRlo7QUFHWix3QkFBb0IsRUFBRSxRQUFRLFNBQVY7QUFIUixHQUZoQjtBQU9FLDBCQUF3QjtBQVAxQixDQURzQixDQUF4QiIsImZpbGUiOiJydWxlcy9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBwa2dVcCBmcm9tICdwa2ctdXAnXG5pbXBvcnQgaW1wb3J0VHlwZSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnXG5pbXBvcnQgaXNTdGF0aWNSZXF1aXJlIGZyb20gJy4uL2NvcmUvc3RhdGljUmVxdWlyZSdcblxuZnVuY3Rpb24gZ2V0RGVwZW5kZW5jaWVzKGNvbnRleHQpIHtcbiAgY29uc3QgZmlsZXBhdGggPSBwa2dVcC5zeW5jKGNvbnRleHQuZ2V0RmlsZW5hbWUoKSlcbiAgaWYgKCFmaWxlcGF0aCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IHBhY2thZ2VDb250ZW50ID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoZmlsZXBhdGgsICd1dGY4JykpXG4gICAgcmV0dXJuIHtcbiAgICAgIGRlcGVuZGVuY2llczogcGFja2FnZUNvbnRlbnQuZGVwZW5kZW5jaWVzIHx8IHt9LFxuICAgICAgZGV2RGVwZW5kZW5jaWVzOiBwYWNrYWdlQ29udGVudC5kZXZEZXBlbmRlbmNpZXMgfHwge30sXG4gICAgICBvcHRpb25hbERlcGVuZGVuY2llczogcGFja2FnZUNvbnRlbnQub3B0aW9uYWxEZXBlbmRlbmNpZXMgfHwge30sXG4gICAgICBwZWVyRGVwZW5kZW5jaWVzOiBwYWNrYWdlQ29udGVudC5wZWVyRGVwZW5kZW5jaWVzIHx8IHt9LFxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuZnVuY3Rpb24gbWlzc2luZ0Vycm9yTWVzc2FnZShwYWNrYWdlTmFtZSkge1xuICByZXR1cm4gYCcke3BhY2thZ2VOYW1lfScgc2hvdWxkIGJlIGxpc3RlZCBpbiB0aGUgcHJvamVjdCdzIGRlcGVuZGVuY2llcy4gYCArXG4gICAgYFJ1biAnbnBtIGkgLVMgJHtwYWNrYWdlTmFtZX0nIHRvIGFkZCBpdGBcbn1cblxuZnVuY3Rpb24gZGV2RGVwRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSB7XG4gIHJldHVybiBgJyR7cGFja2FnZU5hbWV9JyBzaG91bGQgYmUgbGlzdGVkIGluIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jaWVzLCBub3QgZGV2RGVwZW5kZW5jaWVzLmBcbn1cblxuZnVuY3Rpb24gb3B0RGVwRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSB7XG4gIHJldHVybiBgJyR7cGFja2FnZU5hbWV9JyBzaG91bGQgYmUgbGlzdGVkIGluIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jaWVzLCBgICtcbiAgICBgbm90IG9wdGlvbmFsRGVwZW5kZW5jaWVzLmBcbn1cblxuZnVuY3Rpb24gcmVwb3J0SWZNaXNzaW5nKGNvbnRleHQsIGRlcHMsIGRlcHNPcHRpb25zLCBub2RlLCBuYW1lKSB7XG4gIGlmIChpbXBvcnRUeXBlKG5hbWUsIGNvbnRleHQpICE9PSAnZXh0ZXJuYWwnKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgY29uc3Qgc3BsaXROYW1lID0gbmFtZS5zcGxpdCgnLycpXG4gIGNvbnN0IHBhY2thZ2VOYW1lID0gc3BsaXROYW1lWzBdWzBdID09PSAnQCdcbiAgICA/IHNwbGl0TmFtZS5zbGljZSgwLCAyKS5qb2luKCcvJylcbiAgICA6IHNwbGl0TmFtZVswXVxuXG4gIGNvbnN0IGlzSW5EZXBzID0gZGVwcy5kZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdICE9PSB1bmRlZmluZWRcbiAgY29uc3QgaXNJbkRldkRlcHMgPSBkZXBzLmRldkRlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0gIT09IHVuZGVmaW5lZFxuICBjb25zdCBpc0luT3B0RGVwcyA9IGRlcHMub3B0aW9uYWxEZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdICE9PSB1bmRlZmluZWRcbiAgY29uc3QgaXNJblBlZXJEZXBzID0gZGVwcy5wZWVyRGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXSAhPT0gdW5kZWZpbmVkXG5cbiAgaWYgKGlzSW5EZXBzIHx8XG4gICAgKGRlcHNPcHRpb25zLmFsbG93RGV2RGVwcyAmJiBpc0luRGV2RGVwcykgfHxcbiAgICAoZGVwc09wdGlvbnMuYWxsb3dQZWVyRGVwcyAmJiBpc0luUGVlckRlcHMpIHx8XG4gICAgKGRlcHNPcHRpb25zLmFsbG93T3B0RGVwcyAmJiBpc0luT3B0RGVwcylcbiAgKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoaXNJbkRldkRlcHMgJiYgIWRlcHNPcHRpb25zLmFsbG93RGV2RGVwcykge1xuICAgIGNvbnRleHQucmVwb3J0KG5vZGUsIGRldkRlcEVycm9yTWVzc2FnZShwYWNrYWdlTmFtZSkpXG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoaXNJbk9wdERlcHMgJiYgIWRlcHNPcHRpb25zLmFsbG93T3B0RGVwcykge1xuICAgIGNvbnRleHQucmVwb3J0KG5vZGUsIG9wdERlcEVycm9yTWVzc2FnZShwYWNrYWdlTmFtZSkpXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb250ZXh0LnJlcG9ydChub2RlLCBtaXNzaW5nRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSlcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9XG4gIGNvbnN0IGRlcHMgPSBnZXREZXBlbmRlbmNpZXMoY29udGV4dClcblxuICBpZiAoIWRlcHMpIHtcbiAgICByZXR1cm4ge31cbiAgfVxuXG4gIGNvbnN0IGRlcHNPcHRpb25zID0ge1xuICAgIGFsbG93RGV2RGVwczogb3B0aW9ucy5kZXZEZXBlbmRlbmNpZXMgIT09IGZhbHNlLFxuICAgIGFsbG93T3B0RGVwczogb3B0aW9ucy5vcHRpb25hbERlcGVuZGVuY2llcyAhPT0gZmFsc2UsXG4gICAgYWxsb3dQZWVyRGVwczogb3B0aW9ucy5wZWVyRGVwZW5kZW5jaWVzICE9PSBmYWxzZSxcbiAgfVxuXG4gIC8vIHRvZG86IHVzZSBtb2R1bGUgdmlzaXRvciBmcm9tIG1vZHVsZS11dGlscyBjb3JlXG4gIHJldHVybiB7XG4gICAgSW1wb3J0RGVjbGFyYXRpb246IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICByZXBvcnRJZk1pc3NpbmcoY29udGV4dCwgZGVwcywgZGVwc09wdGlvbnMsIG5vZGUsIG5vZGUuc291cmNlLnZhbHVlKVxuICAgIH0sXG4gICAgQ2FsbEV4cHJlc3Npb246IGZ1bmN0aW9uIGhhbmRsZVJlcXVpcmVzKG5vZGUpIHtcbiAgICAgIGlmIChpc1N0YXRpY1JlcXVpcmUobm9kZSkpIHtcbiAgICAgICAgcmVwb3J0SWZNaXNzaW5nKGNvbnRleHQsIGRlcHMsIGRlcHNPcHRpb25zLCBub2RlLCBub2RlLmFyZ3VtZW50c1swXS52YWx1ZSlcbiAgICAgIH1cbiAgICB9LFxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzLnNjaGVtYSA9IFtcbiAge1xuICAgICd0eXBlJzogJ29iamVjdCcsXG4gICAgJ3Byb3BlcnRpZXMnOiB7XG4gICAgICAnZGV2RGVwZW5kZW5jaWVzJzogeyAndHlwZSc6ICdib29sZWFuJyB9LFxuICAgICAgJ29wdGlvbmFsRGVwZW5kZW5jaWVzJzogeyAndHlwZSc6ICdib29sZWFuJyB9LFxuICAgICAgJ3BlZXJEZXBlbmRlbmNpZXMnOiB7ICd0eXBlJzogJ2Jvb2xlYW4nIH0sXG4gICAgfSxcbiAgICAnYWRkaXRpb25hbFByb3BlcnRpZXMnOiBmYWxzZSxcbiAgfSxcbl1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVBLFNBQVMsZUFBVCxDQUF5QixPQUF6QixFQUFrQztBQUNoQyxNQUFNLFdBQVcsZ0JBQU0sSUFBTixDQUFXLFFBQVEsV0FBUixFQUFYLENBQWpCO0FBQ0EsTUFBSSxDQUFDLFFBQUwsRUFBZTtBQUNiLFdBQU8sSUFBUDtBQUNEOztBQUVELE1BQUk7QUFDRixRQUFNLGlCQUFpQixLQUFLLEtBQUwsQ0FBVyxhQUFHLFlBQUgsQ0FBZ0IsUUFBaEIsRUFBMEIsTUFBMUIsQ0FBWCxDQUF2QjtBQUNBLFdBQU87QUFDTCxvQkFBYyxlQUFlLFlBQWYsSUFBK0IsRUFEeEM7QUFFTCx1QkFBaUIsZUFBZSxlQUFmLElBQWtDLEVBRjlDO0FBR0wsNEJBQXNCLGVBQWUsb0JBQWYsSUFBdUMsRUFIeEQ7QUFJTCx3QkFBa0IsZUFBZSxnQkFBZixJQUFtQztBQUpoRCxLQUFQO0FBTUQsR0FSRCxDQVFFLE9BQU8sQ0FBUCxFQUFVO0FBQ1YsV0FBTyxJQUFQO0FBQ0Q7QUFDRjs7QUFFRCxTQUFTLG1CQUFULENBQTZCLFdBQTdCLEVBQTBDO0FBQ3hDLFNBQU8sT0FBSSxXQUFKLGlGQUNZLFdBRFosa0JBQVA7QUFFRDs7QUFFRCxTQUFTLGtCQUFULENBQTRCLFdBQTVCLEVBQXlDO0FBQ3ZDLGdCQUFXLFdBQVg7QUFDRDs7QUFFRCxTQUFTLGtCQUFULENBQTRCLFdBQTVCLEVBQXlDO0FBQ3ZDLFNBQU8sT0FBSSxXQUFKLHVGQUFQO0FBRUQ7O0FBRUQsU0FBUyxlQUFULENBQXlCLE9BQXpCLEVBQWtDLElBQWxDLEVBQXdDLFdBQXhDLEVBQXFELElBQXJELEVBQTJELElBQTNELEVBQWlFO0FBQy9ELE1BQUksMEJBQVcsSUFBWCxFQUFpQixPQUFqQixNQUE4QixVQUFsQyxFQUE4QztBQUM1QztBQUNEO0FBQ0QsTUFBTSxZQUFZLEtBQUssS0FBTCxDQUFXLEdBQVgsQ0FBbEI7QUFDQSxNQUFNLGNBQWMsVUFBVSxDQUFWLEVBQWEsQ0FBYixNQUFvQixHQUFwQixHQUNoQixVQUFVLEtBQVYsQ0FBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkIsRUFBc0IsSUFBdEIsQ0FBMkIsR0FBM0IsQ0FEZ0IsR0FFaEIsVUFBVSxDQUFWLENBRko7O0FBSUEsTUFBTSxXQUFXLEtBQUssWUFBTCxDQUFrQixXQUFsQixNQUFtQyxTQUFwRDtBQUNBLE1BQU0sY0FBYyxLQUFLLGVBQUwsQ0FBcUIsV0FBckIsTUFBc0MsU0FBMUQ7QUFDQSxNQUFNLGNBQWMsS0FBSyxvQkFBTCxDQUEwQixXQUExQixNQUEyQyxTQUEvRDtBQUNBLE1BQU0sZUFBZSxLQUFLLGdCQUFMLENBQXNCLFdBQXRCLE1BQXVDLFNBQTVEOztBQUVBLE1BQUksWUFDRCxZQUFZLFlBQVosSUFBNEIsV0FEM0IsSUFFRCxZQUFZLGFBQVosSUFBNkIsWUFGNUIsSUFHRCxZQUFZLFlBQVosSUFBNEIsV0FIL0IsRUFJRTtBQUNBO0FBQ0Q7O0FBRUQsTUFBSSxlQUFlLENBQUMsWUFBWSxZQUFoQyxFQUE4QztBQUM1QyxZQUFRLE1BQVIsQ0FBZSxJQUFmLEVBQXFCLG1CQUFtQixXQUFuQixDQUFyQjtBQUNBO0FBQ0Q7O0FBRUQsTUFBSSxlQUFlLENBQUMsWUFBWSxZQUFoQyxFQUE4QztBQUM1QyxZQUFRLE1BQVIsQ0FBZSxJQUFmLEVBQXFCLG1CQUFtQixXQUFuQixDQUFyQjtBQUNBO0FBQ0Q7O0FBRUQsVUFBUSxNQUFSLENBQWUsSUFBZixFQUFxQixvQkFBb0IsV0FBcEIsQ0FBckI7QUFDRDs7QUFFRCxPQUFPLE9BQVAsR0FBaUIsVUFBVSxPQUFWLEVBQW1CO0FBQ2xDLE1BQU0sVUFBVSxRQUFRLE9BQVIsQ0FBZ0IsQ0FBaEIsS0FBc0IsRUFBdEM7QUFDQSxNQUFNLE9BQU8sZ0JBQWdCLE9BQWhCLENBQWI7O0FBRUEsTUFBSSxDQUFDLElBQUwsRUFBVztBQUNULFdBQU8sRUFBUDtBQUNEOztBQUVELE1BQU0sY0FBYztBQUNsQixrQkFBYyxRQUFRLGVBQVIsS0FBNEIsS0FEeEI7QUFFbEIsa0JBQWMsUUFBUSxvQkFBUixLQUFpQyxLQUY3QjtBQUdsQixtQkFBZSxRQUFRLGdCQUFSLEtBQTZCO0FBSDFCLEdBQXBCOztBQU1BO0FBQ0EsU0FBTztBQUNMLHVCQUFtQiwyQkFBVSxJQUFWLEVBQWdCO0FBQ2pDLHNCQUFnQixPQUFoQixFQUF5QixJQUF6QixFQUErQixXQUEvQixFQUE0QyxJQUE1QyxFQUFrRCxLQUFLLE1BQUwsQ0FBWSxLQUE5RDtBQUNELEtBSEk7QUFJTCxvQkFBZ0IsU0FBUyxjQUFULENBQXdCLElBQXhCLEVBQThCO0FBQzVDLFVBQUksNkJBQWdCLElBQWhCLENBQUosRUFBMkI7QUFDekIsd0JBQWdCLE9BQWhCLEVBQXlCLElBQXpCLEVBQStCLFdBQS9CLEVBQTRDLElBQTVDLEVBQWtELEtBQUssU0FBTCxDQUFlLENBQWYsRUFBa0IsS0FBcEU7QUFDRDtBQUNGO0FBUkksR0FBUDtBQVVELENBekJEOztBQTJCQSxPQUFPLE9BQVAsQ0FBZSxNQUFmLEdBQXdCLENBQ3RCO0FBQ0UsVUFBUSxRQURWO0FBRUUsZ0JBQWM7QUFDWix1QkFBbUIsRUFBRSxRQUFRLFNBQVYsRUFEUDtBQUVaLDRCQUF3QixFQUFFLFFBQVEsU0FBVixFQUZaO0FBR1osd0JBQW9CLEVBQUUsUUFBUSxTQUFWO0FBSFIsR0FGaEI7QUFPRSwwQkFBd0I7QUFQMUIsQ0FEc0IsQ0FBeEIiLCJmaWxlIjoicnVsZXMvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgcGtnVXAgZnJvbSAncGtnLXVwJ1xuaW1wb3J0IGltcG9ydFR5cGUgZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJ1xuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5cbmZ1bmN0aW9uIGdldERlcGVuZGVuY2llcyhjb250ZXh0KSB7XG4gIGNvbnN0IGZpbGVwYXRoID0gcGtnVXAuc3luYyhjb250ZXh0LmdldEZpbGVuYW1lKCkpXG4gIGlmICghZmlsZXBhdGgpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBwYWNrYWdlQ29udGVudCA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGZpbGVwYXRoLCAndXRmOCcpKVxuICAgIHJldHVybiB7XG4gICAgICBkZXBlbmRlbmNpZXM6IHBhY2thZ2VDb250ZW50LmRlcGVuZGVuY2llcyB8fCB7fSxcbiAgICAgIGRldkRlcGVuZGVuY2llczogcGFja2FnZUNvbnRlbnQuZGV2RGVwZW5kZW5jaWVzIHx8IHt9LFxuICAgICAgb3B0aW9uYWxEZXBlbmRlbmNpZXM6IHBhY2thZ2VDb250ZW50Lm9wdGlvbmFsRGVwZW5kZW5jaWVzIHx8IHt9LFxuICAgICAgcGVlckRlcGVuZGVuY2llczogcGFja2FnZUNvbnRlbnQucGVlckRlcGVuZGVuY2llcyB8fCB7fSxcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmZ1bmN0aW9uIG1pc3NpbmdFcnJvck1lc3NhZ2UocGFja2FnZU5hbWUpIHtcbiAgcmV0dXJuIGAnJHtwYWNrYWdlTmFtZX0nIHNob3VsZCBiZSBsaXN0ZWQgaW4gdGhlIHByb2plY3QncyBkZXBlbmRlbmNpZXMuIGAgK1xuICAgIGBSdW4gJ25wbSBpIC1TICR7cGFja2FnZU5hbWV9JyB0byBhZGQgaXRgXG59XG5cbmZ1bmN0aW9uIGRldkRlcEVycm9yTWVzc2FnZShwYWNrYWdlTmFtZSkge1xuICByZXR1cm4gYCcke3BhY2thZ2VOYW1lfScgc2hvdWxkIGJlIGxpc3RlZCBpbiB0aGUgcHJvamVjdCdzIGRlcGVuZGVuY2llcywgbm90IGRldkRlcGVuZGVuY2llcy5gXG59XG5cbmZ1bmN0aW9uIG9wdERlcEVycm9yTWVzc2FnZShwYWNrYWdlTmFtZSkge1xuICByZXR1cm4gYCcke3BhY2thZ2VOYW1lfScgc2hvdWxkIGJlIGxpc3RlZCBpbiB0aGUgcHJvamVjdCdzIGRlcGVuZGVuY2llcywgYCArXG4gICAgYG5vdCBvcHRpb25hbERlcGVuZGVuY2llcy5gXG59XG5cbmZ1bmN0aW9uIHJlcG9ydElmTWlzc2luZyhjb250ZXh0LCBkZXBzLCBkZXBzT3B0aW9ucywgbm9kZSwgbmFtZSkge1xuICBpZiAoaW1wb3J0VHlwZShuYW1lLCBjb250ZXh0KSAhPT0gJ2V4dGVybmFsJykge1xuICAgIHJldHVyblxuICB9XG4gIGNvbnN0IHNwbGl0TmFtZSA9IG5hbWUuc3BsaXQoJy8nKVxuICBjb25zdCBwYWNrYWdlTmFtZSA9IHNwbGl0TmFtZVswXVswXSA9PT0gJ0AnXG4gICAgPyBzcGxpdE5hbWUuc2xpY2UoMCwgMikuam9pbignLycpXG4gICAgOiBzcGxpdE5hbWVbMF1cblxuICBjb25zdCBpc0luRGVwcyA9IGRlcHMuZGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXSAhPT0gdW5kZWZpbmVkXG4gIGNvbnN0IGlzSW5EZXZEZXBzID0gZGVwcy5kZXZEZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdICE9PSB1bmRlZmluZWRcbiAgY29uc3QgaXNJbk9wdERlcHMgPSBkZXBzLm9wdGlvbmFsRGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXSAhPT0gdW5kZWZpbmVkXG4gIGNvbnN0IGlzSW5QZWVyRGVwcyA9IGRlcHMucGVlckRlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0gIT09IHVuZGVmaW5lZFxuXG4gIGlmIChpc0luRGVwcyB8fFxuICAgIChkZXBzT3B0aW9ucy5hbGxvd0RldkRlcHMgJiYgaXNJbkRldkRlcHMpIHx8XG4gICAgKGRlcHNPcHRpb25zLmFsbG93UGVlckRlcHMgJiYgaXNJblBlZXJEZXBzKSB8fFxuICAgIChkZXBzT3B0aW9ucy5hbGxvd09wdERlcHMgJiYgaXNJbk9wdERlcHMpXG4gICkge1xuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKGlzSW5EZXZEZXBzICYmICFkZXBzT3B0aW9ucy5hbGxvd0RldkRlcHMpIHtcbiAgICBjb250ZXh0LnJlcG9ydChub2RlLCBkZXZEZXBFcnJvck1lc3NhZ2UocGFja2FnZU5hbWUpKVxuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKGlzSW5PcHREZXBzICYmICFkZXBzT3B0aW9ucy5hbGxvd09wdERlcHMpIHtcbiAgICBjb250ZXh0LnJlcG9ydChub2RlLCBvcHREZXBFcnJvck1lc3NhZ2UocGFja2FnZU5hbWUpKVxuICAgIHJldHVyblxuICB9XG5cbiAgY29udGV4dC5yZXBvcnQobm9kZSwgbWlzc2luZ0Vycm9yTWVzc2FnZShwYWNrYWdlTmFtZSkpXG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQub3B0aW9uc1swXSB8fCB7fVxuICBjb25zdCBkZXBzID0gZ2V0RGVwZW5kZW5jaWVzKGNvbnRleHQpXG5cbiAgaWYgKCFkZXBzKSB7XG4gICAgcmV0dXJuIHt9XG4gIH1cblxuICBjb25zdCBkZXBzT3B0aW9ucyA9IHtcbiAgICBhbGxvd0RldkRlcHM6IG9wdGlvbnMuZGV2RGVwZW5kZW5jaWVzICE9PSBmYWxzZSxcbiAgICBhbGxvd09wdERlcHM6IG9wdGlvbnMub3B0aW9uYWxEZXBlbmRlbmNpZXMgIT09IGZhbHNlLFxuICAgIGFsbG93UGVlckRlcHM6IG9wdGlvbnMucGVlckRlcGVuZGVuY2llcyAhPT0gZmFsc2UsXG4gIH1cblxuICAvLyB0b2RvOiB1c2UgbW9kdWxlIHZpc2l0b3IgZnJvbSBtb2R1bGUtdXRpbHMgY29yZVxuICByZXR1cm4ge1xuICAgIEltcG9ydERlY2xhcmF0aW9uOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgcmVwb3J0SWZNaXNzaW5nKGNvbnRleHQsIGRlcHMsIGRlcHNPcHRpb25zLCBub2RlLCBub2RlLnNvdXJjZS52YWx1ZSlcbiAgICB9LFxuICAgIENhbGxFeHByZXNzaW9uOiBmdW5jdGlvbiBoYW5kbGVSZXF1aXJlcyhub2RlKSB7XG4gICAgICBpZiAoaXNTdGF0aWNSZXF1aXJlKG5vZGUpKSB7XG4gICAgICAgIHJlcG9ydElmTWlzc2luZyhjb250ZXh0LCBkZXBzLCBkZXBzT3B0aW9ucywgbm9kZSwgbm9kZS5hcmd1bWVudHNbMF0udmFsdWUpXG4gICAgICB9XG4gICAgfSxcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cy5zY2hlbWEgPSBbXG4gIHtcbiAgICAndHlwZSc6ICdvYmplY3QnLFxuICAgICdwcm9wZXJ0aWVzJzoge1xuICAgICAgJ2RldkRlcGVuZGVuY2llcyc6IHsgJ3R5cGUnOiAnYm9vbGVhbicgfSxcbiAgICAgICdvcHRpb25hbERlcGVuZGVuY2llcyc6IHsgJ3R5cGUnOiAnYm9vbGVhbicgfSxcbiAgICAgICdwZWVyRGVwZW5kZW5jaWVzJzogeyAndHlwZSc6ICdib29sZWFuJyB9LFxuICAgIH0sXG4gICAgJ2FkZGl0aW9uYWxQcm9wZXJ0aWVzJzogZmFsc2UsXG4gIH0sXG5dXG4iXX0=

@@ -100,2 +100,2 @@ 'use strict';

*/
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0E7Ozs7QUFFQTs7OztBQUNBOzs7Ozs7Ozs7O0FBTUEsT0FBTyxPQUFQLEdBQWlCLFVBQVMsT0FBVCxFQUFrQjs7QUFFakMsTUFBTSxjQUFjLHNCQUFwQjtBQUNBLE1BQU0scUJBQXFCLHNCQUEzQjs7QUFFQSxXQUFTLG1CQUFULENBQTZCLElBQTdCLEVBQW1DO0FBQ2pDLFFBQU0sY0FBYyxpQ0FBa0IsT0FBbEIsQ0FBcEI7QUFDQSxRQUFNLFlBQVkscUJBQVEsR0FBUixDQUFZLFlBQVksTUFBWixDQUFtQixLQUEvQixFQUFzQyxPQUF0QyxDQUFsQjtBQUNBLFFBQUksYUFBYSxJQUFqQixFQUF1Qjs7QUFFdkIsUUFBSSxVQUFVLE1BQVYsQ0FBaUIsTUFBckIsRUFBNkI7QUFDM0IsZ0JBQVUsWUFBVixDQUF1QixPQUF2QixFQUFnQyxXQUFoQztBQUNBO0FBQ0Q7O0FBRUQsZ0JBQVksR0FBWixDQUFnQixLQUFLLEtBQUwsQ0FBVyxJQUEzQixFQUFpQztBQUMvQiwwQkFEK0I7QUFFL0Isa0JBQVksWUFBWSxNQUFaLENBQW1CO0FBRkEsS0FBakM7QUFJRDs7QUFFRCxXQUFTLG1CQUFULENBQTZCLFVBQTdCLEVBQXlDLFFBQXpDLEVBQW1ELElBQW5ELEVBQXlEO0FBQ3ZELFFBQU0sVUFBVSxtQkFBbUIsR0FBbkIsQ0FBdUIsVUFBdkIsS0FBc0MsRUFBdEQ7QUFDQSxZQUFRLElBQVIsQ0FBYSxFQUFDLFVBQUQsRUFBTyxrQkFBUCxFQUFiO0FBQ0EsdUJBQW1CLEdBQW5CLENBQXVCLFVBQXZCLEVBQW1DLE9BQW5DO0FBQ0Q7O0FBRUQsV0FBUyxnQkFBVCxDQUEwQixJQUExQixFQUFnQztBQUM5QixRQUFNLGFBQWEsS0FBSyxNQUFMLENBQVksSUFBL0I7QUFDQSxRQUFNLFdBQVcsS0FBSyxRQUFMLENBQWMsSUFBL0I7QUFDQSx3QkFBb0IsVUFBcEIsRUFBZ0MsUUFBaEMsRUFBMEMsSUFBMUM7QUFDRDs7QUFFRCxXQUFTLDZCQUFULENBQXVDLElBQXZDLEVBQTZDO0FBQzNDLFFBQU0sZ0JBQ0osS0FBSyxFQUFMLENBQVEsSUFBUixLQUFpQixlQUFqQixJQUNBLEtBQUssSUFBTCxJQUFhLElBRGIsSUFFQSxLQUFLLElBQUwsQ0FBVSxJQUFWLEtBQW1CLFlBSHJCO0FBS0EsUUFBSSxDQUFDLGFBQUwsRUFBb0I7O0FBRXBCLFFBQU0sYUFBYSxLQUFLLElBQUwsQ0FBVSxJQUE3QjtBQUNBLFNBQUssRUFBTCxDQUFRLFVBQVIsQ0FBbUIsT0FBbkIsQ0FBMkIsZ0JBQVc7QUFBQSxVQUFULEdBQVMsUUFBVCxHQUFTOztBQUNwQyxVQUFJLE9BQU8sSUFBWCxFQUFpQjs7QUFDZiw0QkFBb0IsVUFBcEIsRUFBZ0MsSUFBSSxJQUFwQyxFQUEwQyxHQUExQztBQUNEO0FBQ0YsS0FKRDtBQUtEOztBQUVELFdBQVMsaUJBQVQsR0FBNkI7QUFDM0IsdUJBQW1CLE9BQW5CLENBQTJCLFVBQUMsT0FBRCxFQUFVLFVBQVYsRUFBeUI7QUFDbEQsVUFBTSxhQUFhLFlBQVksR0FBWixDQUFnQixVQUFoQixDQUFuQjtBQUNBLFVBQUksY0FBYyxJQUFsQixFQUF3Qjs7QUFFeEIsY0FBUSxPQUFSLENBQWdCLGlCQUFzQjtBQUFBLFlBQXBCLFFBQW9CLFNBQXBCLFFBQW9CO0FBQUEsWUFBVixJQUFVLFNBQVYsSUFBVTs7QUFDcEMsWUFBSSxXQUFXLFNBQVgsQ0FBcUIsU0FBckIsQ0FBK0IsR0FBL0IsQ0FBbUMsUUFBbkMsQ0FBSixFQUFrRDtBQUNoRCxrQkFBUSxNQUFSLENBQWU7QUFDYixzQkFEYTtBQUViLHFCQUNFLGVBQWMsVUFBZCx5Q0FDSyxRQURMLHVEQUVhLFFBRmIsaUJBRWdDLFdBQVcsVUFGM0MsYUFHQTtBQU5XLFdBQWY7QUFTRDtBQUNGLE9BWkQ7QUFhRCxLQWpCRDtBQWtCRDs7QUFFRCxTQUFPO0FBQ0wsOEJBQTBCLG1CQURyQjtBQUVMLHdCQUFvQixnQkFGZjtBQUdMLDBCQUFzQiw2QkFIakI7QUFJTCxvQkFBZ0I7QUFKWCxHQUFQO0FBTUQsQ0E1RUQsQyIsImZpbGUiOiJydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIHdhcm4gYWJvdXQgcG90ZW50aWFsbHkgY29uZnVzZWQgdXNlIG9mIG5hbWUgZXhwb3J0c1xuICogQGF1dGhvciBEZXNtb25kIEJyYW5kXG4gKiBAY29weXJpZ2h0IDIwMTYgRGVzbW9uZCBCcmFuZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFNlZSBMSUNFTlNFIGluIHJvb3QgZGlyZWN0b3J5IGZvciBmdWxsIGxpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IE1hcCBmcm9tICdlczYtbWFwJ1xuXG5pbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9jb3JlL2dldEV4cG9ydHMnXG5pbXBvcnQgaW1wb3J0RGVjbGFyYXRpb24gZnJvbSAnLi4vaW1wb3J0RGVjbGFyYXRpb24nXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSdWxlIERlZmluaXRpb25cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oY29udGV4dCkge1xuXG4gIGNvbnN0IGZpbGVJbXBvcnRzID0gbmV3IE1hcCgpXG4gIGNvbnN0IGFsbFByb3BlcnR5TG9va3VwcyA9IG5ldyBNYXAoKVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUltcG9ydERlZmF1bHQobm9kZSkge1xuICAgIGNvbnN0IGRlY2xhcmF0aW9uID0gaW1wb3J0RGVjbGFyYXRpb24oY29udGV4dClcbiAgICBjb25zdCBleHBvcnRNYXAgPSBFeHBvcnRzLmdldChkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgaWYgKGV4cG9ydE1hcCA9PSBudWxsKSByZXR1cm5cblxuICAgIGlmIChleHBvcnRNYXAuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgZXhwb3J0TWFwLnJlcG9ydEVycm9ycyhjb250ZXh0LCBkZWNsYXJhdGlvbilcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGZpbGVJbXBvcnRzLnNldChub2RlLmxvY2FsLm5hbWUsIHtcbiAgICAgIGV4cG9ydE1hcCxcbiAgICAgIHNvdXJjZVBhdGg6IGRlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZSxcbiAgICB9KVxuICB9XG5cbiAgZnVuY3Rpb24gc3RvcmVQcm9wZXJ0eUxvb2t1cChvYmplY3ROYW1lLCBwcm9wTmFtZSwgbm9kZSkge1xuICAgIGNvbnN0IGxvb2t1cHMgPSBhbGxQcm9wZXJ0eUxvb2t1cHMuZ2V0KG9iamVjdE5hbWUpIHx8IFtdXG4gICAgbG9va3Vwcy5wdXNoKHtub2RlLCBwcm9wTmFtZX0pXG4gICAgYWxsUHJvcGVydHlMb29rdXBzLnNldChvYmplY3ROYW1lLCBsb29rdXBzKVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlUHJvcExvb2t1cChub2RlKSB7XG4gICAgY29uc3Qgb2JqZWN0TmFtZSA9IG5vZGUub2JqZWN0Lm5hbWVcbiAgICBjb25zdCBwcm9wTmFtZSA9IG5vZGUucHJvcGVydHkubmFtZVxuICAgIHN0b3JlUHJvcGVydHlMb29rdXAob2JqZWN0TmFtZSwgcHJvcE5hbWUsIG5vZGUpXG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVEZXN0cnVjdHVyaW5nQXNzaWdubWVudChub2RlKSB7XG4gICAgY29uc3QgaXNEZXN0cnVjdHVyZSA9IChcbiAgICAgIG5vZGUuaWQudHlwZSA9PT0gJ09iamVjdFBhdHRlcm4nICYmXG4gICAgICBub2RlLmluaXQgIT0gbnVsbCAmJlxuICAgICAgbm9kZS5pbml0LnR5cGUgPT09ICdJZGVudGlmaWVyJ1xuICAgIClcbiAgICBpZiAoIWlzRGVzdHJ1Y3R1cmUpIHJldHVyblxuXG4gICAgY29uc3Qgb2JqZWN0TmFtZSA9IG5vZGUuaW5pdC5uYW1lXG4gICAgbm9kZS5pZC5wcm9wZXJ0aWVzLmZvckVhY2goKHtrZXl9KSA9PiB7XG4gICAgICBpZiAoa2V5ICE9IG51bGwpIHsgLy8gcmVzdCBwcm9wZXJ0aWVzIGFyZSBudWxsXG4gICAgICAgIHN0b3JlUHJvcGVydHlMb29rdXAob2JqZWN0TmFtZSwga2V5Lm5hbWUsIGtleSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlUHJvZ3JhbUV4aXQoKSB7XG4gICAgYWxsUHJvcGVydHlMb29rdXBzLmZvckVhY2goKGxvb2t1cHMsIG9iamVjdE5hbWUpID0+IHtcbiAgICAgIGNvbnN0IGZpbGVJbXBvcnQgPSBmaWxlSW1wb3J0cy5nZXQob2JqZWN0TmFtZSlcbiAgICAgIGlmIChmaWxlSW1wb3J0ID09IG51bGwpIHJldHVyblxuXG4gICAgICBsb29rdXBzLmZvckVhY2goKHtwcm9wTmFtZSwgbm9kZX0pID0+IHtcbiAgICAgICAgaWYgKGZpbGVJbXBvcnQuZXhwb3J0TWFwLm5hbWVzcGFjZS5oYXMocHJvcE5hbWUpKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IChcbiAgICAgICAgICAgICAgYENhdXRpb246IFxcYCR7b2JqZWN0TmFtZX1cXGAgYWxzbyBoYXMgYSBuYW1lZCBleHBvcnQgYCArXG4gICAgICAgICAgICAgIGBcXGAke3Byb3BOYW1lfVxcYC4gQ2hlY2sgaWYgeW91IG1lYW50IHRvIHdyaXRlIGAgK1xuICAgICAgICAgICAgICBgXFxgaW1wb3J0IHske3Byb3BOYW1lfX0gZnJvbSAnJHtmaWxlSW1wb3J0LnNvdXJjZVBhdGh9J1xcYCBgICtcbiAgICAgICAgICAgICAgJ2luc3RlYWQuJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICByZXR1cm4ge1xuICAgICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJzogaGFuZGxlSW1wb3J0RGVmYXVsdCxcbiAgICAnTWVtYmVyRXhwcmVzc2lvbic6IGhhbmRsZVByb3BMb29rdXAsXG4gICAgJ1ZhcmlhYmxlRGVjbGFyYXRvcic6IGhhbmRsZURlc3RydWN0dXJpbmdBc3NpZ25tZW50LFxuICAgICdQcm9ncmFtOmV4aXQnOiBoYW5kbGVQcm9ncmFtRXhpdCxcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0E7Ozs7QUFFQTs7OztBQUNBOzs7Ozs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsT0FBTyxPQUFQLEdBQWlCLFVBQVMsT0FBVCxFQUFrQjs7QUFFakMsTUFBTSxjQUFjLHNCQUFwQjtBQUNBLE1BQU0scUJBQXFCLHNCQUEzQjs7QUFFQSxXQUFTLG1CQUFULENBQTZCLElBQTdCLEVBQW1DO0FBQ2pDLFFBQU0sY0FBYyxpQ0FBa0IsT0FBbEIsQ0FBcEI7QUFDQSxRQUFNLFlBQVkscUJBQVEsR0FBUixDQUFZLFlBQVksTUFBWixDQUFtQixLQUEvQixFQUFzQyxPQUF0QyxDQUFsQjtBQUNBLFFBQUksYUFBYSxJQUFqQixFQUF1Qjs7QUFFdkIsUUFBSSxVQUFVLE1BQVYsQ0FBaUIsTUFBckIsRUFBNkI7QUFDM0IsZ0JBQVUsWUFBVixDQUF1QixPQUF2QixFQUFnQyxXQUFoQztBQUNBO0FBQ0Q7O0FBRUQsZ0JBQVksR0FBWixDQUFnQixLQUFLLEtBQUwsQ0FBVyxJQUEzQixFQUFpQztBQUMvQiwwQkFEK0I7QUFFL0Isa0JBQVksWUFBWSxNQUFaLENBQW1CO0FBRkEsS0FBakM7QUFJRDs7QUFFRCxXQUFTLG1CQUFULENBQTZCLFVBQTdCLEVBQXlDLFFBQXpDLEVBQW1ELElBQW5ELEVBQXlEO0FBQ3ZELFFBQU0sVUFBVSxtQkFBbUIsR0FBbkIsQ0FBdUIsVUFBdkIsS0FBc0MsRUFBdEQ7QUFDQSxZQUFRLElBQVIsQ0FBYSxFQUFDLFVBQUQsRUFBTyxrQkFBUCxFQUFiO0FBQ0EsdUJBQW1CLEdBQW5CLENBQXVCLFVBQXZCLEVBQW1DLE9BQW5DO0FBQ0Q7O0FBRUQsV0FBUyxnQkFBVCxDQUEwQixJQUExQixFQUFnQztBQUM5QixRQUFNLGFBQWEsS0FBSyxNQUFMLENBQVksSUFBL0I7QUFDQSxRQUFNLFdBQVcsS0FBSyxRQUFMLENBQWMsSUFBL0I7QUFDQSx3QkFBb0IsVUFBcEIsRUFBZ0MsUUFBaEMsRUFBMEMsSUFBMUM7QUFDRDs7QUFFRCxXQUFTLDZCQUFULENBQXVDLElBQXZDLEVBQTZDO0FBQzNDLFFBQU0sZ0JBQ0osS0FBSyxFQUFMLENBQVEsSUFBUixLQUFpQixlQUFqQixJQUNBLEtBQUssSUFBTCxJQUFhLElBRGIsSUFFQSxLQUFLLElBQUwsQ0FBVSxJQUFWLEtBQW1CLFlBSHJCO0FBS0EsUUFBSSxDQUFDLGFBQUwsRUFBb0I7O0FBRXBCLFFBQU0sYUFBYSxLQUFLLElBQUwsQ0FBVSxJQUE3QjtBQUNBLFNBQUssRUFBTCxDQUFRLFVBQVIsQ0FBbUIsT0FBbkIsQ0FBMkIsZ0JBQVc7QUFBQSxVQUFULEdBQVMsUUFBVCxHQUFTOztBQUNwQyxVQUFJLE9BQU8sSUFBWCxFQUFpQjtBQUFFO0FBQ2pCLDRCQUFvQixVQUFwQixFQUFnQyxJQUFJLElBQXBDLEVBQTBDLEdBQTFDO0FBQ0Q7QUFDRixLQUpEO0FBS0Q7O0FBRUQsV0FBUyxpQkFBVCxHQUE2QjtBQUMzQix1QkFBbUIsT0FBbkIsQ0FBMkIsVUFBQyxPQUFELEVBQVUsVUFBVixFQUF5QjtBQUNsRCxVQUFNLGFBQWEsWUFBWSxHQUFaLENBQWdCLFVBQWhCLENBQW5CO0FBQ0EsVUFBSSxjQUFjLElBQWxCLEVBQXdCOztBQUV4QixjQUFRLE9BQVIsQ0FBZ0IsaUJBQXNCO0FBQUEsWUFBcEIsUUFBb0IsU0FBcEIsUUFBb0I7QUFBQSxZQUFWLElBQVUsU0FBVixJQUFVOztBQUNwQyxZQUFJLFdBQVcsU0FBWCxDQUFxQixTQUFyQixDQUErQixHQUEvQixDQUFtQyxRQUFuQyxDQUFKLEVBQWtEO0FBQ2hELGtCQUFRLE1BQVIsQ0FBZTtBQUNiLHNCQURhO0FBRWIscUJBQ0UsZUFBYyxVQUFkLHlDQUNLLFFBREwsdURBRWEsUUFGYixpQkFFZ0MsV0FBVyxVQUYzQyxhQUdBO0FBTlcsV0FBZjtBQVNEO0FBQ0YsT0FaRDtBQWFELEtBakJEO0FBa0JEOztBQUVELFNBQU87QUFDTCw4QkFBMEIsbUJBRHJCO0FBRUwsd0JBQW9CLGdCQUZmO0FBR0wsMEJBQXNCLDZCQUhqQjtBQUlMLG9CQUFnQjtBQUpYLEdBQVA7QUFNRCxDQTVFRCxDLENBaEJBIiwiZmlsZSI6InJ1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZW92ZXJ2aWV3IFJ1bGUgdG8gd2FybiBhYm91dCBwb3RlbnRpYWxseSBjb25mdXNlZCB1c2Ugb2YgbmFtZSBleHBvcnRzXG4gKiBAYXV0aG9yIERlc21vbmQgQnJhbmRcbiAqIEBjb3B5cmlnaHQgMjAxNiBEZXNtb25kIEJyYW5kLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogU2VlIExJQ0VOU0UgaW4gcm9vdCBkaXJlY3RvcnkgZm9yIGZ1bGwgbGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgTWFwIGZyb20gJ2VzNi1tYXAnXG5cbmltcG9ydCBFeHBvcnRzIGZyb20gJy4uL2NvcmUvZ2V0RXhwb3J0cydcbmltcG9ydCBpbXBvcnREZWNsYXJhdGlvbiBmcm9tICcuLi9pbXBvcnREZWNsYXJhdGlvbidcblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJ1bGUgRGVmaW5pdGlvblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihjb250ZXh0KSB7XG5cbiAgY29uc3QgZmlsZUltcG9ydHMgPSBuZXcgTWFwKClcbiAgY29uc3QgYWxsUHJvcGVydHlMb29rdXBzID0gbmV3IE1hcCgpXG5cbiAgZnVuY3Rpb24gaGFuZGxlSW1wb3J0RGVmYXVsdChub2RlKSB7XG4gICAgY29uc3QgZGVjbGFyYXRpb24gPSBpbXBvcnREZWNsYXJhdGlvbihjb250ZXh0KVxuICAgIGNvbnN0IGV4cG9ydE1hcCA9IEV4cG9ydHMuZ2V0KGRlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICBpZiAoZXhwb3J0TWFwID09IG51bGwpIHJldHVyblxuXG4gICAgaWYgKGV4cG9ydE1hcC5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICBleHBvcnRNYXAucmVwb3J0RXJyb3JzKGNvbnRleHQsIGRlY2xhcmF0aW9uKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgZmlsZUltcG9ydHMuc2V0KG5vZGUubG9jYWwubmFtZSwge1xuICAgICAgZXhwb3J0TWFwLFxuICAgICAgc291cmNlUGF0aDogZGVjbGFyYXRpb24uc291cmNlLnZhbHVlLFxuICAgIH0pXG4gIH1cblxuICBmdW5jdGlvbiBzdG9yZVByb3BlcnR5TG9va3VwKG9iamVjdE5hbWUsIHByb3BOYW1lLCBub2RlKSB7XG4gICAgY29uc3QgbG9va3VwcyA9IGFsbFByb3BlcnR5TG9va3Vwcy5nZXQob2JqZWN0TmFtZSkgfHwgW11cbiAgICBsb29rdXBzLnB1c2goe25vZGUsIHByb3BOYW1lfSlcbiAgICBhbGxQcm9wZXJ0eUxvb2t1cHMuc2V0KG9iamVjdE5hbWUsIGxvb2t1cHMpXG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVQcm9wTG9va3VwKG5vZGUpIHtcbiAgICBjb25zdCBvYmplY3ROYW1lID0gbm9kZS5vYmplY3QubmFtZVxuICAgIGNvbnN0IHByb3BOYW1lID0gbm9kZS5wcm9wZXJ0eS5uYW1lXG4gICAgc3RvcmVQcm9wZXJ0eUxvb2t1cChvYmplY3ROYW1lLCBwcm9wTmFtZSwgbm9kZSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZURlc3RydWN0dXJpbmdBc3NpZ25tZW50KG5vZGUpIHtcbiAgICBjb25zdCBpc0Rlc3RydWN0dXJlID0gKFxuICAgICAgbm9kZS5pZC50eXBlID09PSAnT2JqZWN0UGF0dGVybicgJiZcbiAgICAgIG5vZGUuaW5pdCAhPSBudWxsICYmXG4gICAgICBub2RlLmluaXQudHlwZSA9PT0gJ0lkZW50aWZpZXInXG4gICAgKVxuICAgIGlmICghaXNEZXN0cnVjdHVyZSkgcmV0dXJuXG5cbiAgICBjb25zdCBvYmplY3ROYW1lID0gbm9kZS5pbml0Lm5hbWVcbiAgICBub2RlLmlkLnByb3BlcnRpZXMuZm9yRWFjaCgoe2tleX0pID0+IHtcbiAgICAgIGlmIChrZXkgIT0gbnVsbCkgeyAvLyByZXN0IHByb3BlcnRpZXMgYXJlIG51bGxcbiAgICAgICAgc3RvcmVQcm9wZXJ0eUxvb2t1cChvYmplY3ROYW1lLCBrZXkubmFtZSwga2V5KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVQcm9ncmFtRXhpdCgpIHtcbiAgICBhbGxQcm9wZXJ0eUxvb2t1cHMuZm9yRWFjaCgobG9va3Vwcywgb2JqZWN0TmFtZSkgPT4ge1xuICAgICAgY29uc3QgZmlsZUltcG9ydCA9IGZpbGVJbXBvcnRzLmdldChvYmplY3ROYW1lKVxuICAgICAgaWYgKGZpbGVJbXBvcnQgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICAgIGxvb2t1cHMuZm9yRWFjaCgoe3Byb3BOYW1lLCBub2RlfSkgPT4ge1xuICAgICAgICBpZiAoZmlsZUltcG9ydC5leHBvcnRNYXAubmFtZXNwYWNlLmhhcyhwcm9wTmFtZSkpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogKFxuICAgICAgICAgICAgICBgQ2F1dGlvbjogXFxgJHtvYmplY3ROYW1lfVxcYCBhbHNvIGhhcyBhIG5hbWVkIGV4cG9ydCBgICtcbiAgICAgICAgICAgICAgYFxcYCR7cHJvcE5hbWV9XFxgLiBDaGVjayBpZiB5b3UgbWVhbnQgdG8gd3JpdGUgYCArXG4gICAgICAgICAgICAgIGBcXGBpbXBvcnQgeyR7cHJvcE5hbWV9fSBmcm9tICcke2ZpbGVJbXBvcnQuc291cmNlUGF0aH0nXFxgIGAgK1xuICAgICAgICAgICAgICAnaW5zdGVhZC4nXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInOiBoYW5kbGVJbXBvcnREZWZhdWx0LFxuICAgICdNZW1iZXJFeHByZXNzaW9uJzogaGFuZGxlUHJvcExvb2t1cCxcbiAgICAnVmFyaWFibGVEZWNsYXJhdG9yJzogaGFuZGxlRGVzdHJ1Y3R1cmluZ0Fzc2lnbm1lbnQsXG4gICAgJ1Byb2dyYW06ZXhpdCc6IGhhbmRsZVByb2dyYW1FeGl0LFxuICB9XG59XG4iXX0=

@@ -12,2 +12,3 @@ 'use strict';

module.exports = function (context) {

@@ -20,2 +21,2 @@ return {

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLW5hbWVzcGFjZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQVVBLE9BQU8sT0FBUCxHQUFpQixVQUFVLE9BQVYsRUFBbUI7QUFDbEMsU0FBTztBQUNMLGdDQUE0QixrQ0FBVSxJQUFWLEVBQWdCO0FBQzFDLGNBQVEsTUFBUixDQUFlLElBQWY7QUFDRDtBQUhJLEdBQVA7QUFLRCxDQU5EIiwiZmlsZSI6InJ1bGVzL25vLW5hbWVzcGFjZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIGRpc2FsbG93IG5hbWVzcGFjZSBpbXBvcnRcbiAqIEBhdXRob3IgUmFkZWsgQmVua2VsXG4gKi9cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJ1bGUgRGVmaW5pdGlvblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gIHJldHVybiB7XG4gICAgJ0ltcG9ydE5hbWVzcGFjZVNwZWNpZmllcic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBjb250ZXh0LnJlcG9ydChub2RlLCBgVW5leHBlY3RlZCBuYW1lc3BhY2UgaW1wb3J0LmApXG4gICAgfSxcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL25vLW5hbWVzcGFjZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOzs7OztBQUtBO0FBQ0E7QUFDQTs7O0FBR0EsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjtBQUNsQyxTQUFPO0FBQ0wsZ0NBQTRCLGtDQUFVLElBQVYsRUFBZ0I7QUFDMUMsY0FBUSxNQUFSLENBQWUsSUFBZjtBQUNEO0FBSEksR0FBUDtBQUtELENBTkQiLCJmaWxlIjoicnVsZXMvbm8tbmFtZXNwYWNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZW92ZXJ2aWV3IFJ1bGUgdG8gZGlzYWxsb3cgbmFtZXNwYWNlIGltcG9ydFxuICogQGF1dGhvciBSYWRlayBCZW5rZWxcbiAqL1xuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUnVsZSBEZWZpbml0aW9uXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgcmV0dXJuIHtcbiAgICAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJzogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIGNvbnRleHQucmVwb3J0KG5vZGUsIGBVbmV4cGVjdGVkIG5hbWVzcGFjZSBpbXBvcnQuYClcbiAgICB9LFxuICB9XG59XG4iXX0=

@@ -110,2 +110,2 @@ 'use strict';

}];
//# sourceMappingURL=data:application/json;base64,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LEdBRFk7OztBQUc5QixVQUFJLFlBQVksR0FBaEIsRUFBcUI7QUFDbkIsaUJBQVMsZ0JBQVQsSUFBNkIsVUFBVSxJQUFWLEVBQWdCO0FBQzNDLGNBQUksUUFBSixFQUFjLFlBQVksSUFBWjtBQUNkLGNBQUksR0FBSixFQUFTLFNBQVMsSUFBVDtBQUNWLFNBSEQ7QUFJRDtBQVI2QjtBQVMvQjs7QUFFRCxTQUFPLFFBQVA7QUFDRCxDQTdFRCxDOzs7OztBQStFQSxPQUFPLE9BQVAsQ0FBZSxNQUFmLEdBQXdCLENBQ3RCO0FBQ0UsVUFBUSxRQURWO0FBRUUsZ0JBQWM7QUFDWixnQkFBWSxFQUFFLFFBQVEsU0FBVixFQURBO0FBRVosV0FBTyxFQUFFLFFBQVEsU0FBVixFQUZLO0FBR1osY0FBVTtBQUNSLGNBQVEsT0FEQTtBQUVSLGtCQUFZLENBRko7QUFHUixlQUFTLEVBQUUsUUFBUSxRQUFWLEVBSEQ7QUFJUixxQkFBZTtBQUpQO0FBSEUsR0FGaEI7QUFZRSwwQkFBd0I7QUFaMUIsQ0FEc0IsQ0FBeEIiLCJmaWxlIjoicnVsZXMvbm8tdW5yZXNvbHZlZC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVPdmVydmlldyBFbnN1cmVzIHRoYXQgYW4gaW1wb3J0ZWQgcGF0aCBleGlzdHMsIGdpdmVuIHJlc29sdXRpb24gcnVsZXMuXG4gKiBAYXV0aG9yIEJlbiBNb3NoZXJcbiAqL1xuXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICcuLi9jb3JlL3Jlc29sdmUnXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcblxuICBsZXQgaWdub3JlUmVnRXhwcyA9IFtdXG4gIGlmIChjb250ZXh0Lm9wdGlvbnNbMF0gIT0gbnVsbCAmJiBjb250ZXh0Lm9wdGlvbnNbMF0uaWdub3JlICE9IG51bGwpIHtcbiAgICBpZ25vcmVSZWdFeHBzID0gY29udGV4dC5vcHRpb25zWzBdLmlnbm9yZS5tYXAocCA9PiBuZXcgUmVnRXhwKHApKVxuICB9XG5cbiAgZnVuY3Rpb24gY2hlY2tTb3VyY2VWYWx1ZShzb3VyY2UpIHtcbiAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVyblxuXG4gICAgaWYgKGlnbm9yZVJlZ0V4cHMuc29tZShyZSA9PiByZS50ZXN0KHNvdXJjZS52YWx1ZSkpKSByZXR1cm5cblxuICAgIGlmIChyZXNvbHZlKHNvdXJjZS52YWx1ZSwgY29udGV4dCkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29udGV4dC5yZXBvcnQoc291cmNlLFxuICAgICAgICAnVW5hYmxlIHRvIHJlc29sdmUgcGF0aCB0byBtb2R1bGUgXFwnJyArIHNvdXJjZS52YWx1ZSArICdcXCcuJylcbiAgICB9XG4gIH1cblxuICAvLyBmb3IgaW1wb3J0LXkgZGVjbGFyYXRpb25zXG4gIGZ1bmN0aW9uIGNoZWNrU291cmNlKG5vZGUpIHtcbiAgICBjaGVja1NvdXJjZVZhbHVlKG5vZGUuc291cmNlKVxuICB9XG5cbiAgLy8gZm9yIENvbW1vbkpTIGByZXF1aXJlYCBjYWxsc1xuICAvLyBhZGFwdGVkIGZyb20gQG1jdGVwOiBodHRwOi8vZ2l0LmlvL3Y0ckF1XG4gIGZ1bmN0aW9uIGNoZWNrQ29tbW9uKGNhbGwpIHtcbiAgICBpZiAoY2FsbC5jYWxsZWUudHlwZSAhPT0gJ0lkZW50aWZpZXInKSByZXR1cm5cbiAgICBpZiAoY2FsbC5jYWxsZWUubmFtZSAhPT0gJ3JlcXVpcmUnKSByZXR1cm5cbiAgICBpZiAoY2FsbC5hcmd1bWVudHMubGVuZ3RoICE9PSAxKSByZXR1cm5cblxuICAgIGNvbnN0IG1vZHVsZVBhdGggPSBjYWxsLmFyZ3VtZW50c1swXVxuICAgIGlmIChtb2R1bGVQYXRoLnR5cGUgIT09ICdMaXRlcmFsJykgcmV0dXJuXG4gICAgaWYgKHR5cGVvZiBtb2R1bGVQYXRoLnZhbHVlICE9PSAnc3RyaW5nJykgcmV0dXJuXG5cbiAgICBjaGVja1NvdXJjZVZhbHVlKG1vZHVsZVBhdGgpXG4gIH1cblxuICBmdW5jdGlvbiBjaGVja0FNRChjYWxsKSB7XG4gICAgaWYgKGNhbGwuY2FsbGVlLnR5cGUgIT09ICdJZGVudGlmaWVyJykgcmV0dXJuXG4gICAgaWYgKGNhbGwuY2FsbGVlLm5hbWUgIT09ICdyZXF1aXJlJyAmJlxuICAgICAgICBjYWxsLmNhbGxlZS5uYW1lICE9PSAnZGVmaW5lJykgcmV0dXJuXG4gICAgaWYgKGNhbGwuYXJndW1lbnRzLmxlbmd0aCAhPT0gMikgcmV0dXJuXG5cbiAgICBjb25zdCBtb2R1bGVzID0gY2FsbC5hcmd1bWVudHNbMF1cbiAgICBpZiAobW9kdWxlcy50eXBlICE9PSAnQXJyYXlFeHByZXNzaW9uJykgcmV0dXJuXG5cbiAgICBtb2R1bGVzLmVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09ICdMaXRlcmFsJyAmJlxuICAgICAgICAgIHR5cGVvZiBlbGVtZW50LnZhbHVlID09PSAnc3RyaW5nJykge1xuXG4gICAgICAgIC8vIG1hZ2ljIG1vZHVsZXM6IGh0dHA6Ly9naXQuaW8vdkJ5YW5cbiAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUgIT09ICdyZXF1aXJlJyAmJlxuICAgICAgICAgICAgZWxlbWVudC52YWx1ZSAhPT0gJ2V4cG9ydHMnKSB7XG4gICAgICAgICAgY2hlY2tTb3VyY2VWYWx1ZShlbGVtZW50KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IHZpc2l0b3JzID0ge1xuICAgICdJbXBvcnREZWNsYXJhdGlvbic6IGNoZWNrU291cmNlLFxuICAgICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJzogY2hlY2tTb3VyY2UsXG4gICAgJ0V4cG9ydEFsbERlY2xhcmF0aW9uJzogY2hlY2tTb3VyY2UsXG4gIH1cblxuICBpZiAoY29udGV4dC5vcHRpb25zWzBdICE9IG51bGwpIHtcbiAgICBjb25zdCB7IGNvbW1vbmpzLCBhbWQgfSA9IGNvbnRleHQub3B0aW9uc1swXVxuXG4gICAgaWYgKGNvbW1vbmpzIHx8IGFtZCkge1xuICAgICAgdmlzaXRvcnNbJ0NhbGxFeHByZXNzaW9uJ10gPSBmdW5jdGlvbiAoY2FsbCkge1xuICAgICAgICBpZiAoY29tbW9uanMpIGNoZWNrQ29tbW9uKGNhbGwpXG4gICAgICAgIGlmIChhbWQpIGNoZWNrQU1EKGNhbGwpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZpc2l0b3JzXG59XG5cbm1vZHVsZS5leHBvcnRzLnNjaGVtYSA9IFtcbiAge1xuICAgICd0eXBlJzogJ29iamVjdCcsXG4gICAgJ3Byb3BlcnRpZXMnOiB7XG4gICAgICAnY29tbW9uanMnOiB7ICd0eXBlJzogJ2Jvb2xlYW4nIH0sXG4gICAgICAnYW1kJzogeyAndHlwZSc6ICdib29sZWFuJyB9LFxuICAgICAgJ2lnbm9yZSc6IHtcbiAgICAgICAgJ3R5cGUnOiAnYXJyYXknLFxuICAgICAgICAnbWluSXRlbXMnOiAxLFxuICAgICAgICAnaXRlbXMnOiB7ICd0eXBlJzogJ3N0cmluZycgfSxcbiAgICAgICAgJ3VuaXF1ZUl0ZW1zJzogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICAnYWRkaXRpb25hbFByb3BlcnRpZXMnOiBmYWxzZSxcbiAgfSxcbl1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,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LFVBQ1osR0FEWSxxQkFDWixHQURZOzs7QUFHOUIsVUFBSSxZQUFZLEdBQWhCLEVBQXFCO0FBQ25CLGlCQUFTLGdCQUFULElBQTZCLFVBQVUsSUFBVixFQUFnQjtBQUMzQyxjQUFJLFFBQUosRUFBYyxZQUFZLElBQVo7QUFDZCxjQUFJLEdBQUosRUFBUyxTQUFTLElBQVQ7QUFDVixTQUhEO0FBSUQ7QUFSNkI7QUFTL0I7O0FBRUQsU0FBTyxRQUFQO0FBQ0QsQ0E3RUQsQyxDQVBBOzs7OztBQXNGQSxPQUFPLE9BQVAsQ0FBZSxNQUFmLEdBQXdCLENBQ3RCO0FBQ0UsVUFBUSxRQURWO0FBRUUsZ0JBQWM7QUFDWixnQkFBWSxFQUFFLFFBQVEsU0FBVixFQURBO0FBRVosV0FBTyxFQUFFLFFBQVEsU0FBVixFQUZLO0FBR1osY0FBVTtBQUNSLGNBQVEsT0FEQTtBQUVSLGtCQUFZLENBRko7QUFHUixlQUFTLEVBQUUsUUFBUSxRQUFWLEVBSEQ7QUFJUixxQkFBZTtBQUpQO0FBSEUsR0FGaEI7QUFZRSwwQkFBd0I7QUFaMUIsQ0FEc0IsQ0FBeEIiLCJmaWxlIjoicnVsZXMvbm8tdW5yZXNvbHZlZC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVPdmVydmlldyBFbnN1cmVzIHRoYXQgYW4gaW1wb3J0ZWQgcGF0aCBleGlzdHMsIGdpdmVuIHJlc29sdXRpb24gcnVsZXMuXG4gKiBAYXV0aG9yIEJlbiBNb3NoZXJcbiAqL1xuXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICcuLi9jb3JlL3Jlc29sdmUnXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcblxuICBsZXQgaWdub3JlUmVnRXhwcyA9IFtdXG4gIGlmIChjb250ZXh0Lm9wdGlvbnNbMF0gIT0gbnVsbCAmJiBjb250ZXh0Lm9wdGlvbnNbMF0uaWdub3JlICE9IG51bGwpIHtcbiAgICBpZ25vcmVSZWdFeHBzID0gY29udGV4dC5vcHRpb25zWzBdLmlnbm9yZS5tYXAocCA9PiBuZXcgUmVnRXhwKHApKVxuICB9XG5cbiAgZnVuY3Rpb24gY2hlY2tTb3VyY2VWYWx1ZShzb3VyY2UpIHtcbiAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVyblxuXG4gICAgaWYgKGlnbm9yZVJlZ0V4cHMuc29tZShyZSA9PiByZS50ZXN0KHNvdXJjZS52YWx1ZSkpKSByZXR1cm5cblxuICAgIGlmIChyZXNvbHZlKHNvdXJjZS52YWx1ZSwgY29udGV4dCkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29udGV4dC5yZXBvcnQoc291cmNlLFxuICAgICAgICAnVW5hYmxlIHRvIHJlc29sdmUgcGF0aCB0byBtb2R1bGUgXFwnJyArIHNvdXJjZS52YWx1ZSArICdcXCcuJylcbiAgICB9XG4gIH1cblxuICAvLyBmb3IgaW1wb3J0LXkgZGVjbGFyYXRpb25zXG4gIGZ1bmN0aW9uIGNoZWNrU291cmNlKG5vZGUpIHtcbiAgICBjaGVja1NvdXJjZVZhbHVlKG5vZGUuc291cmNlKVxuICB9XG5cbiAgLy8gZm9yIENvbW1vbkpTIGByZXF1aXJlYCBjYWxsc1xuICAvLyBhZGFwdGVkIGZyb20gQG1jdGVwOiBodHRwOi8vZ2l0LmlvL3Y0ckF1XG4gIGZ1bmN0aW9uIGNoZWNrQ29tbW9uKGNhbGwpIHtcbiAgICBpZiAoY2FsbC5jYWxsZWUudHlwZSAhPT0gJ0lkZW50aWZpZXInKSByZXR1cm5cbiAgICBpZiAoY2FsbC5jYWxsZWUubmFtZSAhPT0gJ3JlcXVpcmUnKSByZXR1cm5cbiAgICBpZiAoY2FsbC5hcmd1bWVudHMubGVuZ3RoICE9PSAxKSByZXR1cm5cblxuICAgIGNvbnN0IG1vZHVsZVBhdGggPSBjYWxsLmFyZ3VtZW50c1swXVxuICAgIGlmIChtb2R1bGVQYXRoLnR5cGUgIT09ICdMaXRlcmFsJykgcmV0dXJuXG4gICAgaWYgKHR5cGVvZiBtb2R1bGVQYXRoLnZhbHVlICE9PSAnc3RyaW5nJykgcmV0dXJuXG5cbiAgICBjaGVja1NvdXJjZVZhbHVlKG1vZHVsZVBhdGgpXG4gIH1cblxuICBmdW5jdGlvbiBjaGVja0FNRChjYWxsKSB7XG4gICAgaWYgKGNhbGwuY2FsbGVlLnR5cGUgIT09ICdJZGVudGlmaWVyJykgcmV0dXJuXG4gICAgaWYgKGNhbGwuY2FsbGVlLm5hbWUgIT09ICdyZXF1aXJlJyAmJlxuICAgICAgICBjYWxsLmNhbGxlZS5uYW1lICE9PSAnZGVmaW5lJykgcmV0dXJuXG4gICAgaWYgKGNhbGwuYXJndW1lbnRzLmxlbmd0aCAhPT0gMikgcmV0dXJuXG5cbiAgICBjb25zdCBtb2R1bGVzID0gY2FsbC5hcmd1bWVudHNbMF1cbiAgICBpZiAobW9kdWxlcy50eXBlICE9PSAnQXJyYXlFeHByZXNzaW9uJykgcmV0dXJuXG5cbiAgICBtb2R1bGVzLmVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09ICdMaXRlcmFsJyAmJlxuICAgICAgICAgIHR5cGVvZiBlbGVtZW50LnZhbHVlID09PSAnc3RyaW5nJykge1xuXG4gICAgICAgIC8vIG1hZ2ljIG1vZHVsZXM6IGh0dHA6Ly9naXQuaW8vdkJ5YW5cbiAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUgIT09ICdyZXF1aXJlJyAmJlxuICAgICAgICAgICAgZWxlbWVudC52YWx1ZSAhPT0gJ2V4cG9ydHMnKSB7XG4gICAgICAgICAgY2hlY2tTb3VyY2VWYWx1ZShlbGVtZW50KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IHZpc2l0b3JzID0ge1xuICAgICdJbXBvcnREZWNsYXJhdGlvbic6IGNoZWNrU291cmNlLFxuICAgICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJzogY2hlY2tTb3VyY2UsXG4gICAgJ0V4cG9ydEFsbERlY2xhcmF0aW9uJzogY2hlY2tTb3VyY2UsXG4gIH1cblxuICBpZiAoY29udGV4dC5vcHRpb25zWzBdICE9IG51bGwpIHtcbiAgICBjb25zdCB7IGNvbW1vbmpzLCBhbWQgfSA9IGNvbnRleHQub3B0aW9uc1swXVxuXG4gICAgaWYgKGNvbW1vbmpzIHx8IGFtZCkge1xuICAgICAgdmlzaXRvcnNbJ0NhbGxFeHByZXNzaW9uJ10gPSBmdW5jdGlvbiAoY2FsbCkge1xuICAgICAgICBpZiAoY29tbW9uanMpIGNoZWNrQ29tbW9uKGNhbGwpXG4gICAgICAgIGlmIChhbWQpIGNoZWNrQU1EKGNhbGwpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZpc2l0b3JzXG59XG5cbm1vZHVsZS5leHBvcnRzLnNjaGVtYSA9IFtcbiAge1xuICAgICd0eXBlJzogJ29iamVjdCcsXG4gICAgJ3Byb3BlcnRpZXMnOiB7XG4gICAgICAnY29tbW9uanMnOiB7ICd0eXBlJzogJ2Jvb2xlYW4nIH0sXG4gICAgICAnYW1kJzogeyAndHlwZSc6ICdib29sZWFuJyB9LFxuICAgICAgJ2lnbm9yZSc6IHtcbiAgICAgICAgJ3R5cGUnOiAnYXJyYXknLFxuICAgICAgICAnbWluSXRlbXMnOiAxLFxuICAgICAgICAnaXRlbXMnOiB7ICd0eXBlJzogJ3N0cmluZycgfSxcbiAgICAgICAgJ3VuaXF1ZUl0ZW1zJzogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICAnYWRkaXRpb25hbFByb3BlcnRpZXMnOiBmYWxzZSxcbiAgfSxcbl1cbiJdfQ==

@@ -218,2 +218,2 @@ 'use strict';

}];
//# sourceMappingURL=data:application/json;base64,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TSxPQUFPLEtBQUssU0FBTCxDQUFlLENBQWYsRUFBa0IsS0FBL0I7QUFDQSxtQkFBYSxPQUFiLEVBQXNCLElBQXRCLEVBQTRCLElBQTVCLEVBQWtDLFNBQWxDLEVBQTZDLEtBQTdDLEVBQW9ELFFBQXBEO0FBQ0QsS0FiSTtBQWNMLG9CQUFnQixTQUFTLGNBQVQsR0FBMEI7QUFDeEMsMkJBQXFCLE9BQXJCLEVBQThCLFFBQTlCOztBQUVBLFVBQUksc0JBQXNCLE9BQTFCLEVBQW1DO0FBQ2pDLGtDQUEwQixPQUExQixFQUFtQyxRQUFuQyxFQUE2QyxRQUFRLGtCQUFSLENBQTdDO0FBQ0Q7O0FBRUQsaUJBQVcsRUFBWDtBQUNELEtBdEJJO0FBdUJMLHlCQUFxQixjQXZCaEI7QUF3Qkwsd0JBQW9CLGNBeEJmO0FBeUJMLDZCQUF5QixjQXpCcEI7QUEwQkwsb0JBQWdCLGNBMUJYO0FBMkJMLHNCQUFrQixjQTNCYjtBQTRCTCxnQ0FBNEIsY0E1QnZCO0FBNkJMLCtCQUEyQixjQTdCdEI7QUE4Qkwsb0NBQWdDLGNBOUIzQjtBQStCTCwyQkFBdUIsY0EvQmxCO0FBZ0NMLDZCQUF5QjtBQWhDcEIsR0FBUDtBQWtDRCxDQTFERDs7QUE0REEsT0FBTyxPQUFQLENBQWUsTUFBZixHQUF3QixDQUN0QjtBQUNFLFFBQU0sUUFEUjtBQUVFLGNBQVk7QUFDVixZQUFRO0FBQ04sWUFBTTtBQURBLEtBREU7QUFJVix3QkFBb0I7QUFDbEIsWUFBTSxDQUFFLFFBQUYsRUFBWSxPQUFaO0FBRFk7QUFKVixHQUZkO0FBVUUsd0JBQXNCO0FBVnhCLENBRHNCLENBQXhCIiwiZmlsZSI6InJ1bGVzL29yZGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCBmaW5kIGZyb20gJ2xvZGFzaC5maW5kJ1xuaW1wb3J0IGltcG9ydFR5cGUgZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJ1xuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5cbmNvbnN0IGRlZmF1bHRHcm91cHMgPSBbJ2J1aWx0aW4nLCAnZXh0ZXJuYWwnLCAncGFyZW50JywgJ3NpYmxpbmcnLCAnaW5kZXgnXVxuXG4vLyBSRVBPUlRJTkdcblxuZnVuY3Rpb24gcmV2ZXJzZShhcnJheSkge1xuICByZXR1cm4gYXJyYXkubWFwKGZ1bmN0aW9uICh2KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHYubmFtZSxcbiAgICAgIHJhbms6IC12LnJhbmssXG4gICAgICBub2RlOiB2Lm5vZGUsXG4gICAgfVxuICB9KS5yZXZlcnNlKClcbn1cblxuZnVuY3Rpb24gZmluZE91dE9mT3JkZXIoaW1wb3J0ZWQpIHtcbiAgaWYgKGltcG9ydGVkLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXVxuICB9XG4gIGxldCBtYXhTZWVuUmFua05vZGUgPSBpbXBvcnRlZFswXVxuICByZXR1cm4gaW1wb3J0ZWQuZmlsdGVyKGZ1bmN0aW9uIChpbXBvcnRlZE1vZHVsZSkge1xuICAgIGNvbnN0IHJlcyA9IGltcG9ydGVkTW9kdWxlLnJhbmsgPCBtYXhTZWVuUmFua05vZGUucmFua1xuICAgIGlmIChtYXhTZWVuUmFua05vZGUucmFuayA8IGltcG9ydGVkTW9kdWxlLnJhbmspIHtcbiAgICAgIG1heFNlZW5SYW5rTm9kZSA9IGltcG9ydGVkTW9kdWxlXG4gICAgfVxuICAgIHJldHVybiByZXNcbiAgfSlcbn1cblxuZnVuY3Rpb24gcmVwb3J0T3V0T2ZPcmRlcihjb250ZXh0LCBpbXBvcnRlZCwgb3V0T2ZPcmRlciwgb3JkZXIpIHtcbiAgb3V0T2ZPcmRlci5mb3JFYWNoKGZ1bmN0aW9uIChpbXApIHtcbiAgICBjb25zdCBmb3VuZCA9IGZpbmQoaW1wb3J0ZWQsIGZ1bmN0aW9uIGhhc0hpZ2hlclJhbmsoaW1wb3J0ZWRJdGVtKSB7XG4gICAgICByZXR1cm4gaW1wb3J0ZWRJdGVtLnJhbmsgPiBpbXAucmFua1xuICAgIH0pXG4gICAgY29udGV4dC5yZXBvcnQoaW1wLm5vZGUsICdgJyArIGltcC5uYW1lICsgJ2AgaW1wb3J0IHNob3VsZCBvY2N1ciAnICsgb3JkZXIgK1xuICAgICAgJyBpbXBvcnQgb2YgYCcgKyBmb3VuZC5uYW1lICsgJ2AnKVxuICB9KVxufVxuXG5mdW5jdGlvbiBtYWtlT3V0T2ZPcmRlclJlcG9ydChjb250ZXh0LCBpbXBvcnRlZCkge1xuICBjb25zdCBvdXRPZk9yZGVyID0gZmluZE91dE9mT3JkZXIoaW1wb3J0ZWQpXG4gIGlmICghb3V0T2ZPcmRlci5sZW5ndGgpIHtcbiAgICByZXR1cm5cbiAgfVxuICAvLyBUaGVyZSBhcmUgdGhpbmdzIHRvIHJlcG9ydC4gVHJ5IHRvIG1pbmltaXplIHRoZSBudW1iZXIgb2YgcmVwb3J0ZWQgZXJyb3JzLlxuICBjb25zdCByZXZlcnNlZEltcG9ydGVkID0gcmV2ZXJzZShpbXBvcnRlZClcbiAgY29uc3QgcmV2ZXJzZWRPcmRlciA9IGZpbmRPdXRPZk9yZGVyKHJldmVyc2VkSW1wb3J0ZWQpXG4gIGlmIChyZXZlcnNlZE9yZGVyLmxlbmd0aCA8IG91dE9mT3JkZXIubGVuZ3RoKSB7XG4gICAgcmVwb3J0T3V0T2ZPcmRlcihjb250ZXh0LCByZXZlcnNlZEltcG9ydGVkLCByZXZlcnNlZE9yZGVyLCAnYWZ0ZXInKVxuICAgIHJldHVyblxuICB9XG4gIHJlcG9ydE91dE9mT3JkZXIoY29udGV4dCwgaW1wb3J0ZWQsIG91dE9mT3JkZXIsICdiZWZvcmUnKVxufVxuXG4vLyBERVRFQ1RJTkdcblxuZnVuY3Rpb24gY29tcHV0ZVJhbmsoY29udGV4dCwgcmFua3MsIG5hbWUsIHR5cGUpIHtcbiAgcmV0dXJuIHJhbmtzW2ltcG9ydFR5cGUobmFtZSwgY29udGV4dCldICtcbiAgICAodHlwZSA9PT0gJ2ltcG9ydCcgPyAwIDogMTAwKVxufVxuXG5mdW5jdGlvbiByZWdpc3Rlck5vZGUoY29udGV4dCwgbm9kZSwgbmFtZSwgdHlwZSwgcmFua3MsIGltcG9ydGVkKSB7XG4gIGNvbnN0IHJhbmsgPSBjb21wdXRlUmFuayhjb250ZXh0LCByYW5rcywgbmFtZSwgdHlwZSlcbiAgaWYgKHJhbmsgIT09IC0xKSB7XG4gICAgaW1wb3J0ZWQucHVzaCh7bmFtZSwgcmFuaywgbm9kZX0pXG4gIH1cbn1cblxuZnVuY3Rpb24gaXNJblZhcmlhYmxlRGVjbGFyYXRvcihub2RlKSB7XG4gIHJldHVybiBub2RlICYmXG4gICAgKG5vZGUudHlwZSA9PT0gJ1ZhcmlhYmxlRGVjbGFyYXRvcicgfHwgaXNJblZhcmlhYmxlRGVjbGFyYXRvcihub2RlLnBhcmVudCkpXG59XG5cbmNvbnN0IHR5cGVzID0gWydidWlsdGluJywgJ2V4dGVybmFsJywgJ2ludGVybmFsJywgJ3BhcmVudCcsICdzaWJsaW5nJywgJ2luZGV4J11cblxuLy8gQ3JlYXRlcyBhbiBvYmplY3Qgd2l0aCB0eXBlLXJhbmsgcGFpcnMuXG4vLyBFeGFtcGxlOiB7IGluZGV4OiAwLCBzaWJsaW5nOiAxLCBwYXJlbnQ6IDEsIGV4dGVybmFsOiAxLCBidWlsdGluOiAyLCBpbnRlcm5hbDogMiB9XG4vLyBXaWxsIHRocm93IGFuIGVycm9yIGlmIGl0IGNvbnRhaW5zIGEgdHlwZSB0aGF0IGRvZXMgbm90IGV4aXN0LCBvciBoYXMgYSBkdXBsaWNhdGVcbmZ1bmN0aW9uIGNvbnZlcnRHcm91cHNUb1JhbmtzKGdyb3Vwcykge1xuICBjb25zdCByYW5rT2JqZWN0ID0gZ3JvdXBzLnJlZHVjZShmdW5jdGlvbihyZXMsIGdyb3VwLCBpbmRleCkge1xuICAgIGlmICh0eXBlb2YgZ3JvdXAgPT09ICdzdHJpbmcnKSB7XG4gICAgICBncm91cCA9IFtncm91cF1cbiAgICB9XG4gICAgZ3JvdXAuZm9yRWFjaChmdW5jdGlvbihncm91cEl0ZW0pIHtcbiAgICAgIGlmICh0eXBlcy5pbmRleE9mKGdyb3VwSXRlbSkgPT09IC0xKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHJ1bGU6IFVua25vd24gdHlwZSBgJyArXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZ3JvdXBJdGVtKSArICdgJylcbiAgICAgIH1cbiAgICAgIGlmIChyZXNbZ3JvdXBJdGVtXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHJ1bGU6IGAnICsgZ3JvdXBJdGVtICsgJ2AgaXMgZHVwbGljYXRlZCcpXG4gICAgICB9XG4gICAgICByZXNbZ3JvdXBJdGVtXSA9IGluZGV4XG4gICAgfSlcbiAgICByZXR1cm4gcmVzXG4gIH0sIHt9KVxuXG4gIGNvbnN0IG9taXR0ZWRUeXBlcyA9IHR5cGVzLmZpbHRlcihmdW5jdGlvbih0eXBlKSB7XG4gICAgcmV0dXJuIHJhbmtPYmplY3RbdHlwZV0gPT09IHVuZGVmaW5lZFxuICB9KVxuXG4gIHJldHVybiBvbWl0dGVkVHlwZXMucmVkdWNlKGZ1bmN0aW9uKHJlcywgdHlwZSkge1xuICAgIHJlc1t0eXBlXSA9IGdyb3Vwcy5sZW5ndGhcbiAgICByZXR1cm4gcmVzXG4gIH0sIHJhbmtPYmplY3QpXG59XG5cbmZ1bmN0aW9uIG1ha2VOZXdsaW5lc0JldHdlZW5SZXBvcnQgKGNvbnRleHQsIGltcG9ydGVkLCBuZXdsaW5lc0JldHdlZW5JbXBvcnRzKSB7XG4gIGNvbnN0IGdldE51bWJlck9mRW1wdHlMaW5lc0JldHdlZW4gPSAoY3VycmVudEltcG9ydCwgcHJldmlvdXNJbXBvcnQpID0+IHtcbiAgICBjb25zdCBsaW5lc0JldHdlZW5JbXBvcnRzID0gY29udGV4dC5nZXRTb3VyY2VDb2RlKCkubGluZXMuc2xpY2UoXG4gICAgICBwcmV2aW91c0ltcG9ydC5ub2RlLmxvYy5lbmQubGluZSxcbiAgICAgIGN1cnJlbnRJbXBvcnQubm9kZS5sb2Muc3RhcnQubGluZSAtIDFcbiAgICApXG5cbiAgICByZXR1cm4gbGluZXNCZXR3ZWVuSW1wb3J0cy5maWx0ZXIoKGxpbmUpID0+ICFsaW5lLnRyaW0oKS5sZW5ndGgpLmxlbmd0aFxuICB9XG4gIGxldCBwcmV2aW91c0ltcG9ydCA9IGltcG9ydGVkWzBdXG5cbiAgaW1wb3J0ZWQuc2xpY2UoMSkuZm9yRWFjaChmdW5jdGlvbihjdXJyZW50SW1wb3J0KSB7XG4gICAgaWYgKG5ld2xpbmVzQmV0d2VlbkltcG9ydHMgPT09ICdhbHdheXMnKSB7XG4gICAgICBpZiAoY3VycmVudEltcG9ydC5yYW5rICE9PSBwcmV2aW91c0ltcG9ydC5yYW5rXG4gICAgICAgICYmIGdldE51bWJlck9mRW1wdHlMaW5lc0JldHdlZW4oY3VycmVudEltcG9ydCwgcHJldmlvdXNJbXBvcnQpID09PSAwKVxuICAgICAge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChcbiAgICAgICAgICBwcmV2aW91c0ltcG9ydC5ub2RlLCAnVGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0IG9uZSBlbXB0eSBsaW5lIGJldHdlZW4gaW1wb3J0IGdyb3VwcydcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIGlmIChjdXJyZW50SW1wb3J0LnJhbmsgPT09IHByZXZpb3VzSW1wb3J0LnJhbmtcbiAgICAgICAgJiYgZ2V0TnVtYmVyT2ZFbXB0eUxpbmVzQmV0d2VlbihjdXJyZW50SW1wb3J0LCBwcmV2aW91c0ltcG9ydCkgPiAwKVxuICAgICAge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChcbiAgICAgICAgICBwcmV2aW91c0ltcG9ydC5ub2RlLCAnVGhlcmUgc2hvdWxkIGJlIG5vIGVtcHR5IGxpbmUgd2l0aGluIGltcG9ydCBncm91cCdcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZ2V0TnVtYmVyT2ZFbXB0eUxpbmVzQmV0d2VlbihjdXJyZW50SW1wb3J0LCBwcmV2aW91c0ltcG9ydCkgPiAwKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHByZXZpb3VzSW1wb3J0Lm5vZGUsICdUaGVyZSBzaG91bGQgYmUgbm8gZW1wdHkgbGluZSBiZXR3ZWVuIGltcG9ydCBncm91cHMnKVxuICAgICAgfVxuICAgIH1cblxuICAgIHByZXZpb3VzSW1wb3J0ID0gY3VycmVudEltcG9ydFxuICB9KVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGltcG9ydE9yZGVyUnVsZSAoY29udGV4dCkge1xuICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9XG4gIGxldCByYW5rc1xuXG4gIHRyeSB7XG4gICAgcmFua3MgPSBjb252ZXJ0R3JvdXBzVG9SYW5rcyhvcHRpb25zLmdyb3VwcyB8fCBkZWZhdWx0R3JvdXBzKVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIE1hbGZvcm1lZCBjb25maWd1cmF0aW9uXG4gICAgcmV0dXJuIHtcbiAgICAgIFByb2dyYW06IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQobm9kZSwgZXJyb3IubWVzc2FnZSlcbiAgICAgIH0sXG4gICAgfVxuICB9XG4gIGxldCBpbXBvcnRlZCA9IFtdXG4gIGxldCBsZXZlbCA9IDBcblxuICBmdW5jdGlvbiBpbmNyZW1lbnRMZXZlbCgpIHtcbiAgICBsZXZlbCsrXG4gIH1cbiAgZnVuY3Rpb24gZGVjcmVtZW50TGV2ZWwoKSB7XG4gICAgbGV2ZWwtLVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBJbXBvcnREZWNsYXJhdGlvbjogZnVuY3Rpb24gaGFuZGxlSW1wb3J0cyhub2RlKSB7XG4gICAgICBpZiAobm9kZS5zcGVjaWZpZXJzLmxlbmd0aCkgeyAvLyBJZ25vcmluZyB1bmFzc2lnbmVkIGltcG9ydHNcbiAgICAgICAgY29uc3QgbmFtZSA9IG5vZGUuc291cmNlLnZhbHVlXG4gICAgICAgIHJlZ2lzdGVyTm9kZShjb250ZXh0LCBub2RlLCBuYW1lLCAnaW1wb3J0JywgcmFua3MsIGltcG9ydGVkKVxuICAgICAgfVxuICAgIH0sXG4gICAgQ2FsbEV4cHJlc3Npb246IGZ1bmN0aW9uIGhhbmRsZVJlcXVpcmVzKG5vZGUpIHtcbiAgICAgIGlmIChsZXZlbCAhPT0gMCB8fCAhaXNTdGF0aWNSZXF1aXJlKG5vZGUpIHx8ICFpc0luVmFyaWFibGVEZWNsYXJhdG9yKG5vZGUucGFyZW50KSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNvbnN0IG5hbWUgPSBub2RlLmFyZ3VtZW50c1swXS52YWx1ZVxuICAgICAgcmVnaXN0ZXJOb2RlKGNvbnRleHQsIG5vZGUsIG5hbWUsICdyZXF1aXJlJywgcmFua3MsIGltcG9ydGVkKVxuICAgIH0sXG4gICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uIHJlcG9ydEFuZFJlc2V0KCkge1xuICAgICAgbWFrZU91dE9mT3JkZXJSZXBvcnQoY29udGV4dCwgaW1wb3J0ZWQpXG5cbiAgICAgIGlmICgnbmV3bGluZXMtYmV0d2VlbicgaW4gb3B0aW9ucykge1xuICAgICAgICBtYWtlTmV3bGluZXNCZXR3ZWVuUmVwb3J0KGNvbnRleHQsIGltcG9ydGVkLCBvcHRpb25zWyduZXdsaW5lcy1iZXR3ZWVuJ10pXG4gICAgICB9XG5cbiAgICAgIGltcG9ydGVkID0gW11cbiAgICB9LFxuICAgIEZ1bmN0aW9uRGVjbGFyYXRpb246IGluY3JlbWVudExldmVsLFxuICAgIEZ1bmN0aW9uRXhwcmVzc2lvbjogaW5jcmVtZW50TGV2ZWwsXG4gICAgQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246IGluY3JlbWVudExldmVsLFxuICAgIEJsb2NrU3RhdGVtZW50OiBpbmNyZW1lbnRMZXZlbCxcbiAgICBPYmplY3RFeHByZXNzaW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICAnRnVuY3Rpb25EZWNsYXJhdGlvbjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgJ0Z1bmN0aW9uRXhwcmVzc2lvbjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgJ0Fycm93RnVuY3Rpb25FeHByZXNzaW9uOmV4aXQnOiBkZWNyZW1lbnRMZXZlbCxcbiAgICAnQmxvY2tTdGF0ZW1lbnQ6ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICdPYmplY3RFeHByZXNzaW9uOmV4aXQnOiBkZWNyZW1lbnRMZXZlbCxcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cy5zY2hlbWEgPSBbXG4gIHtcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBncm91cHM6IHtcbiAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIH0sXG4gICAgICAnbmV3bGluZXMtYmV0d2Vlbic6IHtcbiAgICAgICAgZW51bTogWyAnYWx3YXlzJywgJ25ldmVyJyBdLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgfSxcbl1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,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LENBQTlDLEVBQW1GO0FBQ2pGO0FBQ0Q7QUFDRCxVQUFNLE9BQU8sS0FBSyxTQUFMLENBQWUsQ0FBZixFQUFrQixLQUEvQjtBQUNBLG1CQUFhLE9BQWIsRUFBc0IsSUFBdEIsRUFBNEIsSUFBNUIsRUFBa0MsU0FBbEMsRUFBNkMsS0FBN0MsRUFBb0QsUUFBcEQ7QUFDRCxLQWJJO0FBY0wsb0JBQWdCLFNBQVMsY0FBVCxHQUEwQjtBQUN4QywyQkFBcUIsT0FBckIsRUFBOEIsUUFBOUI7O0FBRUEsVUFBSSxzQkFBc0IsT0FBMUIsRUFBbUM7QUFDakMsa0NBQTBCLE9BQTFCLEVBQW1DLFFBQW5DLEVBQTZDLFFBQVEsa0JBQVIsQ0FBN0M7QUFDRDs7QUFFRCxpQkFBVyxFQUFYO0FBQ0QsS0F0Qkk7QUF1QkwseUJBQXFCLGNBdkJoQjtBQXdCTCx3QkFBb0IsY0F4QmY7QUF5QkwsNkJBQXlCLGNBekJwQjtBQTBCTCxvQkFBZ0IsY0ExQlg7QUEyQkwsc0JBQWtCLGNBM0JiO0FBNEJMLGdDQUE0QixjQTVCdkI7QUE2QkwsK0JBQTJCLGNBN0J0QjtBQThCTCxvQ0FBZ0MsY0E5QjNCO0FBK0JMLDJCQUF1QixjQS9CbEI7QUFnQ0wsNkJBQXlCO0FBaENwQixHQUFQO0FBa0NELENBMUREOztBQTREQSxPQUFPLE9BQVAsQ0FBZSxNQUFmLEdBQXdCLENBQ3RCO0FBQ0UsUUFBTSxRQURSO0FBRUUsY0FBWTtBQUNWLFlBQVE7QUFDTixZQUFNO0FBREEsS0FERTtBQUlWLHdCQUFvQjtBQUNsQixZQUFNLENBQUUsUUFBRixFQUFZLE9BQVo7QUFEWTtBQUpWLEdBRmQ7QUFVRSx3QkFBc0I7QUFWeEIsQ0FEc0IsQ0FBeEIiLCJmaWxlIjoicnVsZXMvb3JkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxuaW1wb3J0IGZpbmQgZnJvbSAnbG9kYXNoLmZpbmQnXG5pbXBvcnQgaW1wb3J0VHlwZSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnXG5pbXBvcnQgaXNTdGF0aWNSZXF1aXJlIGZyb20gJy4uL2NvcmUvc3RhdGljUmVxdWlyZSdcblxuY29uc3QgZGVmYXVsdEdyb3VwcyA9IFsnYnVpbHRpbicsICdleHRlcm5hbCcsICdwYXJlbnQnLCAnc2libGluZycsICdpbmRleCddXG5cbi8vIFJFUE9SVElOR1xuXG5mdW5jdGlvbiByZXZlcnNlKGFycmF5KSB7XG4gIHJldHVybiBhcnJheS5tYXAoZnVuY3Rpb24gKHYpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdi5uYW1lLFxuICAgICAgcmFuazogLXYucmFuayxcbiAgICAgIG5vZGU6IHYubm9kZSxcbiAgICB9XG4gIH0pLnJldmVyc2UoKVxufVxuXG5mdW5jdGlvbiBmaW5kT3V0T2ZPcmRlcihpbXBvcnRlZCkge1xuICBpZiAoaW1wb3J0ZWQubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdXG4gIH1cbiAgbGV0IG1heFNlZW5SYW5rTm9kZSA9IGltcG9ydGVkWzBdXG4gIHJldHVybiBpbXBvcnRlZC5maWx0ZXIoZnVuY3Rpb24gKGltcG9ydGVkTW9kdWxlKSB7XG4gICAgY29uc3QgcmVzID0gaW1wb3J0ZWRNb2R1bGUucmFuayA8IG1heFNlZW5SYW5rTm9kZS5yYW5rXG4gICAgaWYgKG1heFNlZW5SYW5rTm9kZS5yYW5rIDwgaW1wb3J0ZWRNb2R1bGUucmFuaykge1xuICAgICAgbWF4U2VlblJhbmtOb2RlID0gaW1wb3J0ZWRNb2R1bGVcbiAgICB9XG4gICAgcmV0dXJuIHJlc1xuICB9KVxufVxuXG5mdW5jdGlvbiByZXBvcnRPdXRPZk9yZGVyKGNvbnRleHQsIGltcG9ydGVkLCBvdXRPZk9yZGVyLCBvcmRlcikge1xuICBvdXRPZk9yZGVyLmZvckVhY2goZnVuY3Rpb24gKGltcCkge1xuICAgIGNvbnN0IGZvdW5kID0gZmluZChpbXBvcnRlZCwgZnVuY3Rpb24gaGFzSGlnaGVyUmFuayhpbXBvcnRlZEl0ZW0pIHtcbiAgICAgIHJldHVybiBpbXBvcnRlZEl0ZW0ucmFuayA+IGltcC5yYW5rXG4gICAgfSlcbiAgICBjb250ZXh0LnJlcG9ydChpbXAubm9kZSwgJ2AnICsgaW1wLm5hbWUgKyAnYCBpbXBvcnQgc2hvdWxkIG9jY3VyICcgKyBvcmRlciArXG4gICAgICAnIGltcG9ydCBvZiBgJyArIGZvdW5kLm5hbWUgKyAnYCcpXG4gIH0pXG59XG5cbmZ1bmN0aW9uIG1ha2VPdXRPZk9yZGVyUmVwb3J0KGNvbnRleHQsIGltcG9ydGVkKSB7XG4gIGNvbnN0IG91dE9mT3JkZXIgPSBmaW5kT3V0T2ZPcmRlcihpbXBvcnRlZClcbiAgaWYgKCFvdXRPZk9yZGVyLmxlbmd0aCkge1xuICAgIHJldHVyblxuICB9XG4gIC8vIFRoZXJlIGFyZSB0aGluZ3MgdG8gcmVwb3J0LiBUcnkgdG8gbWluaW1pemUgdGhlIG51bWJlciBvZiByZXBvcnRlZCBlcnJvcnMuXG4gIGNvbnN0IHJldmVyc2VkSW1wb3J0ZWQgPSByZXZlcnNlKGltcG9ydGVkKVxuICBjb25zdCByZXZlcnNlZE9yZGVyID0gZmluZE91dE9mT3JkZXIocmV2ZXJzZWRJbXBvcnRlZClcbiAgaWYgKHJldmVyc2VkT3JkZXIubGVuZ3RoIDwgb3V0T2ZPcmRlci5sZW5ndGgpIHtcbiAgICByZXBvcnRPdXRPZk9yZGVyKGNvbnRleHQsIHJldmVyc2VkSW1wb3J0ZWQsIHJldmVyc2VkT3JkZXIsICdhZnRlcicpXG4gICAgcmV0dXJuXG4gIH1cbiAgcmVwb3J0T3V0T2ZPcmRlcihjb250ZXh0LCBpbXBvcnRlZCwgb3V0T2ZPcmRlciwgJ2JlZm9yZScpXG59XG5cbi8vIERFVEVDVElOR1xuXG5mdW5jdGlvbiBjb21wdXRlUmFuayhjb250ZXh0LCByYW5rcywgbmFtZSwgdHlwZSkge1xuICByZXR1cm4gcmFua3NbaW1wb3J0VHlwZShuYW1lLCBjb250ZXh0KV0gK1xuICAgICh0eXBlID09PSAnaW1wb3J0JyA/IDAgOiAxMDApXG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyTm9kZShjb250ZXh0LCBub2RlLCBuYW1lLCB0eXBlLCByYW5rcywgaW1wb3J0ZWQpIHtcbiAgY29uc3QgcmFuayA9IGNvbXB1dGVSYW5rKGNvbnRleHQsIHJhbmtzLCBuYW1lLCB0eXBlKVxuICBpZiAocmFuayAhPT0gLTEpIHtcbiAgICBpbXBvcnRlZC5wdXNoKHtuYW1lLCByYW5rLCBub2RlfSlcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0luVmFyaWFibGVEZWNsYXJhdG9yKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUgJiZcbiAgICAobm9kZS50eXBlID09PSAnVmFyaWFibGVEZWNsYXJhdG9yJyB8fCBpc0luVmFyaWFibGVEZWNsYXJhdG9yKG5vZGUucGFyZW50KSlcbn1cblxuY29uc3QgdHlwZXMgPSBbJ2J1aWx0aW4nLCAnZXh0ZXJuYWwnLCAnaW50ZXJuYWwnLCAncGFyZW50JywgJ3NpYmxpbmcnLCAnaW5kZXgnXVxuXG4vLyBDcmVhdGVzIGFuIG9iamVjdCB3aXRoIHR5cGUtcmFuayBwYWlycy5cbi8vIEV4YW1wbGU6IHsgaW5kZXg6IDAsIHNpYmxpbmc6IDEsIHBhcmVudDogMSwgZXh0ZXJuYWw6IDEsIGJ1aWx0aW46IDIsIGludGVybmFsOiAyIH1cbi8vIFdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgaXQgY29udGFpbnMgYSB0eXBlIHRoYXQgZG9lcyBub3QgZXhpc3QsIG9yIGhhcyBhIGR1cGxpY2F0ZVxuZnVuY3Rpb24gY29udmVydEdyb3Vwc1RvUmFua3MoZ3JvdXBzKSB7XG4gIGNvbnN0IHJhbmtPYmplY3QgPSBncm91cHMucmVkdWNlKGZ1bmN0aW9uKHJlcywgZ3JvdXAsIGluZGV4KSB7XG4gICAgaWYgKHR5cGVvZiBncm91cCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGdyb3VwID0gW2dyb3VwXVxuICAgIH1cbiAgICBncm91cC5mb3JFYWNoKGZ1bmN0aW9uKGdyb3VwSXRlbSkge1xuICAgICAgaWYgKHR5cGVzLmluZGV4T2YoZ3JvdXBJdGVtKSA9PT0gLTEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbmNvcnJlY3QgY29uZmlndXJhdGlvbiBvZiB0aGUgcnVsZTogVW5rbm93biB0eXBlIGAnICtcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShncm91cEl0ZW0pICsgJ2AnKVxuICAgICAgfVxuICAgICAgaWYgKHJlc1tncm91cEl0ZW1dICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbmNvcnJlY3QgY29uZmlndXJhdGlvbiBvZiB0aGUgcnVsZTogYCcgKyBncm91cEl0ZW0gKyAnYCBpcyBkdXBsaWNhdGVkJylcbiAgICAgIH1cbiAgICAgIHJlc1tncm91cEl0ZW1dID0gaW5kZXhcbiAgICB9KVxuICAgIHJldHVybiByZXNcbiAgfSwge30pXG5cbiAgY29uc3Qgb21pdHRlZFR5cGVzID0gdHlwZXMuZmlsdGVyKGZ1bmN0aW9uKHR5cGUpIHtcbiAgICByZXR1cm4gcmFua09iamVjdFt0eXBlXSA9PT0gdW5kZWZpbmVkXG4gIH0pXG5cbiAgcmV0dXJuIG9taXR0ZWRUeXBlcy5yZWR1Y2UoZnVuY3Rpb24ocmVzLCB0eXBlKSB7XG4gICAgcmVzW3R5cGVdID0gZ3JvdXBzLmxlbmd0aFxuICAgIHJldHVybiByZXNcbiAgfSwgcmFua09iamVjdClcbn1cblxuZnVuY3Rpb24gbWFrZU5ld2xpbmVzQmV0d2VlblJlcG9ydCAoY29udGV4dCwgaW1wb3J0ZWQsIG5ld2xpbmVzQmV0d2VlbkltcG9ydHMpIHtcbiAgY29uc3QgZ2V0TnVtYmVyT2ZFbXB0eUxpbmVzQmV0d2VlbiA9IChjdXJyZW50SW1wb3J0LCBwcmV2aW91c0ltcG9ydCkgPT4ge1xuICAgIGNvbnN0IGxpbmVzQmV0d2VlbkltcG9ydHMgPSBjb250ZXh0LmdldFNvdXJjZUNvZGUoKS5saW5lcy5zbGljZShcbiAgICAgIHByZXZpb3VzSW1wb3J0Lm5vZGUubG9jLmVuZC5saW5lLFxuICAgICAgY3VycmVudEltcG9ydC5ub2RlLmxvYy5zdGFydC5saW5lIC0gMVxuICAgIClcblxuICAgIHJldHVybiBsaW5lc0JldHdlZW5JbXBvcnRzLmZpbHRlcigobGluZSkgPT4gIWxpbmUudHJpbSgpLmxlbmd0aCkubGVuZ3RoXG4gIH1cbiAgbGV0IHByZXZpb3VzSW1wb3J0ID0gaW1wb3J0ZWRbMF1cblxuICBpbXBvcnRlZC5zbGljZSgxKS5mb3JFYWNoKGZ1bmN0aW9uKGN1cnJlbnRJbXBvcnQpIHtcbiAgICBpZiAobmV3bGluZXNCZXR3ZWVuSW1wb3J0cyA9PT0gJ2Fsd2F5cycpIHtcbiAgICAgIGlmIChjdXJyZW50SW1wb3J0LnJhbmsgIT09IHByZXZpb3VzSW1wb3J0LnJhbmtcbiAgICAgICAgJiYgZ2V0TnVtYmVyT2ZFbXB0eUxpbmVzQmV0d2VlbihjdXJyZW50SW1wb3J0LCBwcmV2aW91c0ltcG9ydCkgPT09IDApXG4gICAgICB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KFxuICAgICAgICAgIHByZXZpb3VzSW1wb3J0Lm5vZGUsICdUaGVyZSBzaG91bGQgYmUgYXQgbGVhc3Qgb25lIGVtcHR5IGxpbmUgYmV0d2VlbiBpbXBvcnQgZ3JvdXBzJ1xuICAgICAgICApXG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnRJbXBvcnQucmFuayA9PT0gcHJldmlvdXNJbXBvcnQucmFua1xuICAgICAgICAmJiBnZXROdW1iZXJPZkVtcHR5TGluZXNCZXR3ZWVuKGN1cnJlbnRJbXBvcnQsIHByZXZpb3VzSW1wb3J0KSA+IDApXG4gICAgICB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KFxuICAgICAgICAgIHByZXZpb3VzSW1wb3J0Lm5vZGUsICdUaGVyZSBzaG91bGQgYmUgbm8gZW1wdHkgbGluZSB3aXRoaW4gaW1wb3J0IGdyb3VwJ1xuICAgICAgICApXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChnZXROdW1iZXJPZkVtcHR5TGluZXNCZXR3ZWVuKGN1cnJlbnRJbXBvcnQsIHByZXZpb3VzSW1wb3J0KSA+IDApIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQocHJldmlvdXNJbXBvcnQubm9kZSwgJ1RoZXJlIHNob3VsZCBiZSBubyBlbXB0eSBsaW5lIGJldHdlZW4gaW1wb3J0IGdyb3VwcycpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJldmlvdXNJbXBvcnQgPSBjdXJyZW50SW1wb3J0XG4gIH0pXG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW1wb3J0T3JkZXJSdWxlIChjb250ZXh0KSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge31cbiAgbGV0IHJhbmtzXG5cbiAgdHJ5IHtcbiAgICByYW5rcyA9IGNvbnZlcnRHcm91cHNUb1JhbmtzKG9wdGlvbnMuZ3JvdXBzIHx8IGRlZmF1bHRHcm91cHMpXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gTWFsZm9ybWVkIGNvbmZpZ3VyYXRpb25cbiAgICByZXR1cm4ge1xuICAgICAgUHJvZ3JhbTogZnVuY3Rpb24obm9kZSkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChub2RlLCBlcnJvci5tZXNzYWdlKVxuICAgICAgfSxcbiAgICB9XG4gIH1cbiAgbGV0IGltcG9ydGVkID0gW11cbiAgbGV0IGxldmVsID0gMFxuXG4gIGZ1bmN0aW9uIGluY3JlbWVudExldmVsKCkge1xuICAgIGxldmVsKytcbiAgfVxuICBmdW5jdGlvbiBkZWNyZW1lbnRMZXZlbCgpIHtcbiAgICBsZXZlbC0tXG4gIH1cblxuICByZXR1cm4ge1xuICAgIEltcG9ydERlY2xhcmF0aW9uOiBmdW5jdGlvbiBoYW5kbGVJbXBvcnRzKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLnNwZWNpZmllcnMubGVuZ3RoKSB7IC8vIElnbm9yaW5nIHVuYXNzaWduZWQgaW1wb3J0c1xuICAgICAgICBjb25zdCBuYW1lID0gbm9kZS5zb3VyY2UudmFsdWVcbiAgICAgICAgcmVnaXN0ZXJOb2RlKGNvbnRleHQsIG5vZGUsIG5hbWUsICdpbXBvcnQnLCByYW5rcywgaW1wb3J0ZWQpXG4gICAgICB9XG4gICAgfSxcbiAgICBDYWxsRXhwcmVzc2lvbjogZnVuY3Rpb24gaGFuZGxlUmVxdWlyZXMobm9kZSkge1xuICAgICAgaWYgKGxldmVsICE9PSAwIHx8ICFpc1N0YXRpY1JlcXVpcmUobm9kZSkgfHwgIWlzSW5WYXJpYWJsZURlY2xhcmF0b3Iobm9kZS5wYXJlbnQpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgY29uc3QgbmFtZSA9IG5vZGUuYXJndW1lbnRzWzBdLnZhbHVlXG4gICAgICByZWdpc3Rlck5vZGUoY29udGV4dCwgbm9kZSwgbmFtZSwgJ3JlcXVpcmUnLCByYW5rcywgaW1wb3J0ZWQpXG4gICAgfSxcbiAgICAnUHJvZ3JhbTpleGl0JzogZnVuY3Rpb24gcmVwb3J0QW5kUmVzZXQoKSB7XG4gICAgICBtYWtlT3V0T2ZPcmRlclJlcG9ydChjb250ZXh0LCBpbXBvcnRlZClcblxuICAgICAgaWYgKCduZXdsaW5lcy1iZXR3ZWVuJyBpbiBvcHRpb25zKSB7XG4gICAgICAgIG1ha2VOZXdsaW5lc0JldHdlZW5SZXBvcnQoY29udGV4dCwgaW1wb3J0ZWQsIG9wdGlvbnNbJ25ld2xpbmVzLWJldHdlZW4nXSlcbiAgICAgIH1cblxuICAgICAgaW1wb3J0ZWQgPSBbXVxuICAgIH0sXG4gICAgRnVuY3Rpb25EZWNsYXJhdGlvbjogaW5jcmVtZW50TGV2ZWwsXG4gICAgRnVuY3Rpb25FeHByZXNzaW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICBBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbjogaW5jcmVtZW50TGV2ZWwsXG4gICAgQmxvY2tTdGF0ZW1lbnQ6IGluY3JlbWVudExldmVsLFxuICAgIE9iamVjdEV4cHJlc3Npb246IGluY3JlbWVudExldmVsLFxuICAgICdGdW5jdGlvbkRlY2xhcmF0aW9uOmV4aXQnOiBkZWNyZW1lbnRMZXZlbCxcbiAgICAnRnVuY3Rpb25FeHByZXNzaW9uOmV4aXQnOiBkZWNyZW1lbnRMZXZlbCxcbiAgICAnQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICdCbG9ja1N0YXRlbWVudDpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgJ09iamVjdEV4cHJlc3Npb246ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzLnNjaGVtYSA9IFtcbiAge1xuICAgIHR5cGU6ICdvYmplY3QnLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIGdyb3Vwczoge1xuICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgfSxcbiAgICAgICduZXdsaW5lcy1iZXR3ZWVuJzoge1xuICAgICAgICBlbnVtOiBbICdhbHdheXMnLCAnbmV2ZXInIF0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICB9LFxuXVxuIl19

@@ -62,2 +62,2 @@ 'use strict';

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL3ByZWZlci1kZWZhdWx0LWV4cG9ydC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQSxPQUFPLE9BQVAsR0FBaUIsVUFBUyxPQUFULEVBQWtCO0FBQ2pDLE1BQUksdUJBQXVCLENBQTNCO0FBQ0EsTUFBSSxtQkFBbUIsS0FBdkI7QUFDQSxNQUFJLGdCQUFnQixLQUFwQjtBQUNBLE1BQUksa0JBQWtCLElBQXRCOztBQUVBLFNBQU87QUFDTCx1QkFBbUIseUJBQVMsSUFBVCxFQUFlO0FBQ2hDLFVBQUksS0FBSyxRQUFMLENBQWMsSUFBZCxLQUF1QixTQUEzQixFQUFzQztBQUNwQywyQkFBbUIsSUFBbkI7QUFDRCxPQUZELE1BRU87QUFDTDtBQUNBLDBCQUFrQixJQUFsQjtBQUNEO0FBQ0YsS0FSSTs7QUFVTCw4QkFBMEIsZ0NBQVMsSUFBVCxFQUFlOztBQUV2QyxVQUFJLENBQUMsS0FBSyxXQUFWLEVBQXVCOztBQUV2QixlQUFTLGtCQUFULENBQTRCLG1CQUE1QixFQUFpRDtBQUMvQyxZQUFJLG9CQUFvQixJQUFwQixLQUE2QixlQUFqQyxFQUFrRDs7QUFFaEQsOEJBQW9CLFVBQXBCLENBQ0csT0FESCxDQUNXLFVBQVMsUUFBVCxFQUFtQjtBQUMxQiwrQkFBbUIsU0FBUyxLQUE1QjtBQUNELFdBSEg7QUFJRCxTQU5ELE1BTU87O0FBRUw7QUFDRDtBQUNGOztBQUVELFVBQUksS0FBSyxXQUFMLENBQWlCLFlBQXJCLEVBQW1DO0FBQ2pDLGFBQUssV0FBTCxDQUFpQixZQUFqQixDQUE4QixPQUE5QixDQUFzQyxVQUFTLFdBQVQsRUFBc0I7QUFDMUQsNkJBQW1CLFlBQVksRUFBL0I7QUFDRCxTQUZEO0FBR0QsT0FKRCxNQUtLOztBQUVIO0FBQ0Q7O0FBRUQsd0JBQWtCLElBQWxCO0FBQ0QsS0F0Q0k7O0FBd0NMLGdDQUE0QixvQ0FBVztBQUNyQyx5QkFBbUIsSUFBbkI7QUFDRCxLQTFDSTs7QUE0Q0wsNEJBQXdCLGdDQUFXO0FBQ2pDLHNCQUFnQixJQUFoQjtBQUNELEtBOUNJOztBQWdETCxvQkFBZ0IsdUJBQVc7QUFDekIsVUFBSSx5QkFBeUIsQ0FBekIsSUFBOEIsQ0FBQyxnQkFBL0IsSUFBbUQsQ0FBQyxhQUF4RCxFQUF1RTtBQUNyRSxnQkFBUSxNQUFSLENBQWUsZUFBZixFQUFnQyx3QkFBaEM7QUFDRDtBQUNGO0FBcERJLEdBQVA7QUFzREQsQ0E1REQiLCJmaWxlIjoicnVsZXMvcHJlZmVyLWRlZmF1bHQtZXhwb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oY29udGV4dCkge1xuICBsZXQgc3BlY2lmaWVyRXhwb3J0Q291bnQgPSAwXG4gIGxldCBoYXNEZWZhdWx0RXhwb3J0ID0gZmFsc2VcbiAgbGV0IGhhc1N0YXJFeHBvcnQgPSBmYWxzZVxuICBsZXQgbmFtZWRFeHBvcnROb2RlID0gbnVsbFxuXG4gIHJldHVybiB7XG4gICAgJ0V4cG9ydFNwZWNpZmllcic6IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLmV4cG9ydGVkLm5hbWUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICBoYXNEZWZhdWx0RXhwb3J0ID0gdHJ1ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3BlY2lmaWVyRXhwb3J0Q291bnQrK1xuICAgICAgICBuYW1lZEV4cG9ydE5vZGUgPSBub2RlXG4gICAgICB9XG4gICAgfSxcblxuICAgICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJzogZnVuY3Rpb24obm9kZSkge1xuICAgICAgLy8gaWYgdGhlcmUgYXJlIHNwZWNpZmllcnMsIG5vZGUuZGVjbGFyYXRpb24gc2hvdWxkIGJlIG51bGxcbiAgICAgIGlmICghbm9kZS5kZWNsYXJhdGlvbikgcmV0dXJuXG5cbiAgICAgIGZ1bmN0aW9uIGNhcHR1cmVEZWNsYXJhdGlvbihpZGVudGlmaWVyT3JQYXR0ZXJuKSB7XG4gICAgICAgIGlmIChpZGVudGlmaWVyT3JQYXR0ZXJuLnR5cGUgPT09ICdPYmplY3RQYXR0ZXJuJykge1xuICAgICAgICAgIC8vIHJlY3Vyc2l2ZWx5IGNhcHR1cmVcbiAgICAgICAgICBpZGVudGlmaWVyT3JQYXR0ZXJuLnByb3BlcnRpZXNcbiAgICAgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uKHByb3BlcnR5KSB7XG4gICAgICAgICAgICAgIGNhcHR1cmVEZWNsYXJhdGlvbihwcm9wZXJ0eS52YWx1ZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGFzc3VtZSBpdCdzIGEgc2luZ2xlIHN0YW5kYXJkIGlkZW50aWZpZXJcbiAgICAgICAgICBzcGVjaWZpZXJFeHBvcnRDb3VudCsrXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG5vZGUuZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zKSB7XG4gICAgICAgIG5vZGUuZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zLmZvckVhY2goZnVuY3Rpb24oZGVjbGFyYXRpb24pIHtcbiAgICAgICAgICBjYXB0dXJlRGVjbGFyYXRpb24oZGVjbGFyYXRpb24uaWQpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgLy8gY2FwdHVyZXMgJ2V4cG9ydCBmdW5jdGlvbiBmb28oKSB7fScgc3ludGF4XG4gICAgICAgIHNwZWNpZmllckV4cG9ydENvdW50KytcbiAgICAgIH1cblxuICAgICAgbmFtZWRFeHBvcnROb2RlID0gbm9kZVxuICAgIH0sXG5cbiAgICAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJzogZnVuY3Rpb24oKSB7XG4gICAgICBoYXNEZWZhdWx0RXhwb3J0ID0gdHJ1ZVxuICAgIH0sXG5cbiAgICAnRXhwb3J0QWxsRGVjbGFyYXRpb24nOiBmdW5jdGlvbigpIHtcbiAgICAgIGhhc1N0YXJFeHBvcnQgPSB0cnVlXG4gICAgfSxcblxuICAgICdQcm9ncmFtOmV4aXQnOiBmdW5jdGlvbigpIHtcbiAgICAgIGlmIChzcGVjaWZpZXJFeHBvcnRDb3VudCA9PT0gMSAmJiAhaGFzRGVmYXVsdEV4cG9ydCAmJiAhaGFzU3RhckV4cG9ydCkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChuYW1lZEV4cG9ydE5vZGUsICdQcmVmZXIgZGVmYXVsdCBleHBvcnQuJylcbiAgICAgIH1cbiAgICB9LFxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL3ByZWZlci1kZWZhdWx0LWV4cG9ydC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQSxPQUFPLE9BQVAsR0FBaUIsVUFBUyxPQUFULEVBQWtCO0FBQ2pDLE1BQUksdUJBQXVCLENBQTNCO0FBQ0EsTUFBSSxtQkFBbUIsS0FBdkI7QUFDQSxNQUFJLGdCQUFnQixLQUFwQjtBQUNBLE1BQUksa0JBQWtCLElBQXRCOztBQUVBLFNBQU87QUFDTCx1QkFBbUIseUJBQVMsSUFBVCxFQUFlO0FBQ2hDLFVBQUksS0FBSyxRQUFMLENBQWMsSUFBZCxLQUF1QixTQUEzQixFQUFzQztBQUNwQywyQkFBbUIsSUFBbkI7QUFDRCxPQUZELE1BRU87QUFDTDtBQUNBLDBCQUFrQixJQUFsQjtBQUNEO0FBQ0YsS0FSSTs7QUFVTCw4QkFBMEIsZ0NBQVMsSUFBVCxFQUFlO0FBQ3ZDO0FBQ0EsVUFBSSxDQUFDLEtBQUssV0FBVixFQUF1Qjs7QUFFdkIsZUFBUyxrQkFBVCxDQUE0QixtQkFBNUIsRUFBaUQ7QUFDL0MsWUFBSSxvQkFBb0IsSUFBcEIsS0FBNkIsZUFBakMsRUFBa0Q7QUFDaEQ7QUFDQSw4QkFBb0IsVUFBcEIsQ0FDRyxPQURILENBQ1csVUFBUyxRQUFULEVBQW1CO0FBQzFCLCtCQUFtQixTQUFTLEtBQTVCO0FBQ0QsV0FISDtBQUlELFNBTkQsTUFNTztBQUNQO0FBQ0U7QUFDRDtBQUNGOztBQUVELFVBQUksS0FBSyxXQUFMLENBQWlCLFlBQXJCLEVBQW1DO0FBQ2pDLGFBQUssV0FBTCxDQUFpQixZQUFqQixDQUE4QixPQUE5QixDQUFzQyxVQUFTLFdBQVQsRUFBc0I7QUFDMUQsNkJBQW1CLFlBQVksRUFBL0I7QUFDRCxTQUZEO0FBR0QsT0FKRCxNQUtLO0FBQ0g7QUFDQTtBQUNEOztBQUVELHdCQUFrQixJQUFsQjtBQUNELEtBdENJOztBQXdDTCxnQ0FBNEIsb0NBQVc7QUFDckMseUJBQW1CLElBQW5CO0FBQ0QsS0ExQ0k7O0FBNENMLDRCQUF3QixnQ0FBVztBQUNqQyxzQkFBZ0IsSUFBaEI7QUFDRCxLQTlDSTs7QUFnREwsb0JBQWdCLHVCQUFXO0FBQ3pCLFVBQUkseUJBQXlCLENBQXpCLElBQThCLENBQUMsZ0JBQS9CLElBQW1ELENBQUMsYUFBeEQsRUFBdUU7QUFDckUsZ0JBQVEsTUFBUixDQUFlLGVBQWYsRUFBZ0Msd0JBQWhDO0FBQ0Q7QUFDRjtBQXBESSxHQUFQO0FBc0RELENBNUREIiwiZmlsZSI6InJ1bGVzL3ByZWZlci1kZWZhdWx0LWV4cG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGNvbnRleHQpIHtcbiAgbGV0IHNwZWNpZmllckV4cG9ydENvdW50ID0gMFxuICBsZXQgaGFzRGVmYXVsdEV4cG9ydCA9IGZhbHNlXG4gIGxldCBoYXNTdGFyRXhwb3J0ID0gZmFsc2VcbiAgbGV0IG5hbWVkRXhwb3J0Tm9kZSA9IG51bGxcblxuICByZXR1cm4ge1xuICAgICdFeHBvcnRTcGVjaWZpZXInOiBmdW5jdGlvbihub2RlKSB7XG4gICAgICBpZiAobm9kZS5leHBvcnRlZC5uYW1lID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgaGFzRGVmYXVsdEV4cG9ydCA9IHRydWVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNwZWNpZmllckV4cG9ydENvdW50KytcbiAgICAgICAgbmFtZWRFeHBvcnROb2RlID0gbm9kZVxuICAgICAgfVxuICAgIH0sXG5cbiAgICAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbic6IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgIC8vIGlmIHRoZXJlIGFyZSBzcGVjaWZpZXJzLCBub2RlLmRlY2xhcmF0aW9uIHNob3VsZCBiZSBudWxsXG4gICAgICBpZiAoIW5vZGUuZGVjbGFyYXRpb24pIHJldHVyblxuXG4gICAgICBmdW5jdGlvbiBjYXB0dXJlRGVjbGFyYXRpb24oaWRlbnRpZmllck9yUGF0dGVybikge1xuICAgICAgICBpZiAoaWRlbnRpZmllck9yUGF0dGVybi50eXBlID09PSAnT2JqZWN0UGF0dGVybicpIHtcbiAgICAgICAgICAvLyByZWN1cnNpdmVseSBjYXB0dXJlXG4gICAgICAgICAgaWRlbnRpZmllck9yUGF0dGVybi5wcm9wZXJ0aWVzXG4gICAgICAgICAgICAuZm9yRWFjaChmdW5jdGlvbihwcm9wZXJ0eSkge1xuICAgICAgICAgICAgICBjYXB0dXJlRGVjbGFyYXRpb24ocHJvcGVydHkudmFsdWUpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBhc3N1bWUgaXQncyBhIHNpbmdsZSBzdGFuZGFyZCBpZGVudGlmaWVyXG4gICAgICAgICAgc3BlY2lmaWVyRXhwb3J0Q291bnQrK1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uLmRlY2xhcmF0aW9ucykge1xuICAgICAgICBub2RlLmRlY2xhcmF0aW9uLmRlY2xhcmF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGRlY2xhcmF0aW9uKSB7XG4gICAgICAgICAgY2FwdHVyZURlY2xhcmF0aW9uKGRlY2xhcmF0aW9uLmlkKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIC8vIGNhcHR1cmVzICdleHBvcnQgZnVuY3Rpb24gZm9vKCkge30nIHN5bnRheFxuICAgICAgICBzcGVjaWZpZXJFeHBvcnRDb3VudCsrXG4gICAgICB9XG5cbiAgICAgIG5hbWVkRXhwb3J0Tm9kZSA9IG5vZGVcbiAgICB9LFxuXG4gICAgJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbic6IGZ1bmN0aW9uKCkge1xuICAgICAgaGFzRGVmYXVsdEV4cG9ydCA9IHRydWVcbiAgICB9LFxuXG4gICAgJ0V4cG9ydEFsbERlY2xhcmF0aW9uJzogZnVuY3Rpb24oKSB7XG4gICAgICBoYXNTdGFyRXhwb3J0ID0gdHJ1ZVxuICAgIH0sXG5cbiAgICAnUHJvZ3JhbTpleGl0JzogZnVuY3Rpb24oKSB7XG4gICAgICBpZiAoc3BlY2lmaWVyRXhwb3J0Q291bnQgPT09IDEgJiYgIWhhc0RlZmF1bHRFeHBvcnQgJiYgIWhhc1N0YXJFeHBvcnQpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQobmFtZWRFeHBvcnROb2RlLCAnUHJlZmVyIGRlZmF1bHQgZXhwb3J0LicpXG4gICAgICB9XG4gICAgfSxcbiAgfVxufVxuIl19
{
"name": "eslint-plugin-import",
"version": "1.11.1",
"version": "1.12.0",
"description": "Import with sanity.",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

@@ -7,2 +7,3 @@ # eslint-plugin-import

[![npm](https://img.shields.io/npm/v/eslint-plugin-import.svg)](https://www.npmjs.com/package/eslint-plugin-import)
[![npm downloads](https://img.shields.io/npm/dt/eslint-plugin-import.svg?maxAge=2592000)](http://www.npmtrends.com/eslint-plugin-import)

@@ -264,2 +265,6 @@ This plugin intends to support linting of ES2015+ (ES6+) import/export syntax, and prevent issues with misspelling of file paths and import names. All the goodness that the ES2015+ static module syntax intends to provide, marked up in your editor.

#### `import/external-module-folders`
An array of folders. Resolved modules only from those folders will be considered as "external". By default - `["node_modules"]`. Makes sense if you have configured your path or webpack to handle your internal paths differently and want to considered modules from some folders, for example `bower_components` or `jspm_modules`, as "external".
#### `import/resolver`

@@ -266,0 +271,0 @@

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