page-parser-tree
Advanced tools
Comparing version 0.2.11 to 0.3.0
@@ -35,5 +35,5 @@ 'use strict'; | ||
var _flatMap = require('live-set/flatMap'); | ||
var _flatMapR = require('live-set/flatMapR'); | ||
var _flatMap2 = _interopRequireDefault(_flatMap); | ||
var _flatMapR2 = _interopRequireDefault(_flatMapR); | ||
@@ -138,3 +138,3 @@ var _tagTree = require('tag-tree'); | ||
var combinedWatcherSet = tagsWithWatchers.has(tag) ? (0, _flatMap2.default)(liveSet, function (s) { | ||
var combinedWatcherSet = tagsWithWatchers.has(tag) ? (0, _flatMapR2.default)(liveSet, function (s) { | ||
return s; | ||
@@ -323,2 +323,2 @@ }) : null; | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJtYWtlVGFnT3B0aW9ucyIsIm9wdGlvbnMiLCJtYXAiLCJsaXN0IiwidGFncyIsImZvckVhY2giLCJ0YWdPcHRpb25zIiwidGFnIiwib3duZWRCeSIsInB1c2giLCJzZXQiLCJmaW5kZXJzIiwiY29uY2F0Iiwid2F0Y2hlcnMiLCJ3IiwiaGFzIiwiUGFnZVBhcnNlclRyZWUiLCJyb290IiwiX3N1YnNjcmlwdGlvbnMiLCJyb290RWwiLCJub2RlVHlwZSIsIk5vZGUiLCJET0NVTUVOVF9OT0RFIiwiZG9jdW1lbnRFbGVtZW50IiwiRXJyb3IiLCJfb3B0aW9ucyIsIl9sb2dFcnJvciIsImxvZ0Vycm9yIiwiZXJyIiwic2V0VGltZW91dCIsInRhZ09wdGlvbnNNYXAiLCJfdGFnT3B0aW9ucyIsIl90YWdzTGlzdCIsInRyZWUiLCJleGVjdXRvciIsIl90cmVlQ29udHJvbGxlciIsImNvbnRyb2xsZXIiLCJfcm9vdE1hdGNoZWRTZXQiLCJjb25zdGFudCIsImVsIiwiZ2V0VmFsdWUiLCJwYXJlbnRzIiwibm9kZSIsIl9zZXR1cFdhdGNoZXJzQW5kRmluZGVycyIsInRhZ3NXaXRoV2F0Y2hlcnMiLCJhZGQiLCJ3YXRjaGVyIiwiX2VjU291cmNlcyIsImdldCIsImFjdGl2ZSIsImxpdmVTZXQiLCJjb21iaW5lZFdhdGNoZXJTZXQiLCJzIiwiZmluZGVyIiwiZWNzVG9UYWciLCJlbGVtZW50c1RvTm9kZXMiLCJmaW5kUGFyZW50Tm9kZSIsInRhZ2dlZFBhcmVudHMiLCJwYXJlbnROb2RlIiwiaSIsImxlbmd0aCIsImVjU2V0IiwicmVhZCIsImxpc3RlbiIsInNldFZhbHVlcyIsIm0iLCJjYiIsImVjIiwiYWRkVGFnZ2VkVmFsdWUiLCJuZXdQYXJlbnRzIiwic3Vic2NyaWJlIiwic3RhcnQiLCJ2YWx1ZXMiLCJuZXdWYWx1ZSIsInZhbHVlIiwibmV4dCIsImVjc1JlbW92ZWRJbk5vdGlmaWNhdGlvbiIsImNoYW5nZXMiLCJjaGFuZ2UiLCJ0eXBlIiwiZGVsZXRlIiwicmVtb3ZlIiwibm9kZVBhcmVudCIsImdldFBhcmVudCIsIm93bnNOb2RlIiwicmVtb3ZlVGFnZ2VkTm9kZSIsImVycm9yIiwiY29tcGxldGUiLCJlbmQiLCJzb3VyY2VzIiwic2VsZWN0b3JzIiwic291cmNlU2V0cyIsImVudHJ5Iiwic291cmNlU2V0IiwidHJhbnNmb3JtZXIiLCJlY0VudHJ5Iiwic3ViIiwicHVsbENoYW5nZXMiLCJ1bnN1YnNjcmliZSIsImdldE93bmVkIiwiX2R1bXBXaXRob3V0RW5kIiwidGFnRXJyU3RyIiwic2l6ZSIsIm9sZE9wdGlvbnMiLCJuZXdPcHRpb25zIiwib2xkT3duZWRCeSIsIm5ld093bmVkQnkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7Ozs7QUFFQTs7OztBQUNBOzs7O0FBQ0E7O0FBR0E7Ozs7QUFDQTs7Ozs7O0FBMkNBLFNBQVNBLGNBQVQsQ0FBd0JDLE9BQXhCLEVBQXdEO0FBQ3RELE1BQU1DLE1BQU0sbUJBQVo7QUFDQSxNQUFNQyxPQUFPLEVBQWI7QUFDQSxzQkFBWUYsUUFBUUcsSUFBcEIsRUFBMEJDLE9BQTFCLENBQWtDLGVBQU87QUFDdkMsUUFBTUMsYUFBYUwsUUFBUUcsSUFBUixDQUFhRyxHQUFiLENBQW5CO0FBRHVDLFFBRWhDQyxPQUZnQyxHQUVyQkYsVUFGcUIsQ0FFaENFLE9BRmdDOztBQUd2Q0wsU0FBS00sSUFBTCxDQUFVLEVBQUNGLFFBQUQsRUFBTUMsZ0JBQU4sRUFBVjtBQUNBTixRQUFJUSxHQUFKLENBQVFILEdBQVIsRUFBYUQsVUFBYjtBQUNELEdBTEQ7QUFNQSxzQkFBWUwsUUFBUVUsT0FBcEIsRUFDR0MsTUFESCxDQUNVWCxRQUFRWSxRQUFSLENBQWlCWCxHQUFqQixDQUFxQjtBQUFBLFdBQUtZLEVBQUVQLEdBQVA7QUFBQSxHQUFyQixDQURWLEVBRUdGLE9BRkgsQ0FFVyxlQUFPO0FBQ2QsUUFBSSxDQUFDSCxJQUFJYSxHQUFKLENBQVFSLEdB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NUMsWUFBTWlHLGFBQWExRSxjQUFja0IsR0FBZCxDQUFrQnpDLEdBQWxCLENBQW5CO0FBQ0EsWUFBSSxDQUFDaUcsVUFBTCxFQUFpQixNQUFNLElBQUloRixLQUFKLENBQVU2RSxTQUFWLENBQU47QUFDakIsWUFBTUksYUFBYUYsV0FBVy9GLE9BQVgsSUFBc0IsRUFBekM7QUFDQSxZQUFNa0csYUFBYSxrQkFBUUYsV0FBV2hHLE9BQVgsSUFBc0IsRUFBOUIsQ0FBbkI7QUFDQSxZQUFJaUcsV0FBVzdDLE1BQVgsS0FBc0I4QyxXQUFXSixJQUFyQyxFQUEyQyxNQUFNLElBQUk5RSxLQUFKLENBQVU2RSxTQUFWLENBQU47QUFDM0NJLG1CQUFXcEcsT0FBWCxDQUFtQixlQUFPO0FBQ3hCLGNBQUksQ0FBQ3FHLFdBQVczRixHQUFYLENBQWVSLEdBQWYsQ0FBTCxFQUEwQixNQUFNLElBQUlpQixLQUFKLENBQVU2RSxTQUFWLENBQU47QUFDM0IsU0FGRDtBQUdELE9BVEQ7O0FBV0EsV0FBS0QsZUFBTDtBQUNBLFdBQUszRSxRQUFMLEdBQWdCeEIsT0FBaEI7QUFDQSxXQUFLMEMsd0JBQUw7QUFDRDs7Ozs7a0JBbE9rQjNCLGMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgTGl2ZVNldCBmcm9tICdsaXZlLXNldCc7XG5pbXBvcnQgdHlwZSB7TGl2ZVNldENvbnRyb2xsZXIsIExpdmVTZXRTdWJzY3JpcHRpb259IGZyb20gJ2xpdmUtc2V0JztcbmltcG9ydCBsaXZlU2V0TWVyZ2UgZnJvbSAnbGl2ZS1zZXQvbWVyZ2UnO1xuaW1wb3J0IGxpdmVTZXRGbGF0TWFwIGZyb20gJ2xpdmUtc2V0L2ZsYXRNYXAnO1xuaW1wb3J0IHtUYWdUcmVlfSBmcm9tICd0YWctdHJlZSc7XG5pbXBvcnQgdHlwZSB7VGFnVHJlZUNvbnRyb2xsZXIsIFRhZ1RyZWVOb2RlfSBmcm9tICd0YWctdHJlZSc7XG5cbmltcG9ydCB3YXRjaGVyRmluZGVyTWVyZ2VyIGZyb20gJy4vd2F0Y2hlckZpbmRlck1lcmdlcic7XG5pbXBvcnQgbWFrZUxpdmVTZXRUcmFuc2Zvcm1lckZyb21TZWxlY3RvcnMgZnJvbSAnLi9tYWtlTGl2ZVNldFRyYW5zZm9ybWVyRnJvbVNlbGVjdG9ycyc7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdG9yID1cbiAgc3RyaW5nXG4gIHwge3wgJGZpbHRlcjogKGVsOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbiB8fVxuICB8IHt8ICRtYXA6IChlbDogSFRNTEVsZW1lbnQpID0+ID9IVE1MRWxlbWVudCB8fVxuICB8IHt8ICR3YXRjaDoge3wgYXR0cmlidXRlRmlsdGVyOiBzdHJpbmdbXSwgY29uZDogc3RyaW5nIHwgKGVsOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbiB8fSB8fVxuICB8IHt8ICRvcjogQXJyYXk8QXJyYXk8U2VsZWN0b3I+PiB8fVxuICB8IHt8ICRsb2c6IHN0cmluZyB8fVxuO1xuXG5leHBvcnQgdHlwZSBXYXRjaGVyID0ge3xcbiAgc291cmNlczogQXJyYXk8c3RyaW5nfG51bGw+O1xuICB0YWc6IHN0cmluZztcbiAgc2VsZWN0b3JzOiBBcnJheTxTZWxlY3Rvcj47XG58fTtcblxuZXhwb3J0IHR5cGUgRmluZGVyID0ge3xcbiAgZm4ocm9vdDogSFRNTEVsZW1lbnQpOiBBcnJheTxIVE1MRWxlbWVudD4gfCBOb2RlTGlzdDxIVE1MRWxlbWVudD47XG4gIGludGVydmFsPzogP251bWJlcnwoZWxlbWVudENvdW50OiBudW1iZXIsIHRpbWVSdW5uaW5nOiBudW1iZXIpID0+IG51bWJlcjtcbnx9O1xuXG5leHBvcnQgdHlwZSBUYWdPcHRpb25zID0ge3xcbiAgb3duZWRCeT86ID9BcnJheTxzdHJpbmc+O1xufH07XG5cbmV4cG9ydCB0eXBlIFBhZ2VQYXJzZXJUcmVlT3B0aW9ucyA9IHt8XG4gIGxvZ0Vycm9yPzogPyhlcnI6IEVycm9yLCBlbDogP0hUTUxFbGVtZW50KSA9PiB2b2lkO1xuICB0YWdzOiB7W3RhZzpzdHJpbmddOiBUYWdPcHRpb25zfTtcbiAgd2F0Y2hlcnM6IEFycmF5PFdhdGNoZXI+O1xuICBmaW5kZXJzOiB7W3RhZzpzdHJpbmddOiBGaW5kZXJ9O1xufH07XG5cbnR5cGUgTm9kZVRhZ1BhaXIgPSB7fFxuICB0YWc6ID9zdHJpbmc7XG4gIG5vZGU6IFRhZ1RyZWVOb2RlPEhUTUxFbGVtZW50Pjtcbnx9O1xuXG5leHBvcnQgdHlwZSBFbGVtZW50Q29udGV4dCA9IHt8XG4gIGVsOiBIVE1MRWxlbWVudDtcbiAgcGFyZW50czogQXJyYXk8Tm9kZVRhZ1BhaXI+O1xufH07XG5cbmZ1bmN0aW9uIG1ha2VUYWdPcHRpb25zKG9wdGlvbnM6IFBhZ2VQYXJzZXJUcmVlT3B0aW9ucykge1xuICBjb25zdCBtYXAgPSBuZXcgTWFwKCk7XG4gIGNvbnN0IGxpc3QgPSBbXTtcbiAgT2JqZWN0LmtleXMob3B0aW9ucy50YWdzKS5mb3JFYWNoKHRhZyA9PiB7XG4gICAgY29uc3QgdGFnT3B0aW9ucyA9IG9wdGlvbnMudGFnc1t0YWddO1xuICAgIGNvbnN0IHtvd25lZEJ5fSA9IHRhZ09wdGlvbnM7XG4gICAgbGlzdC5wdXNoKHt0YWcsIG93bmVkQnl9KTtcbiAgICBtYXAuc2V0KHRhZywgdGFnT3B0aW9ucyk7XG4gIH0pO1xuICBPYmplY3Qua2V5cyhvcHRpb25zLmZpbmRlcnMpXG4gICAgLmNvbmNhdChvcHRpb25zLndhdGNoZXJzLm1hcCh3ID0+IHcudGFnKSlcbiAgICAuZm9yRWFjaCh0YWcgPT4ge1xuICAgICAgaWYgKCFtYXAuaGFzKHRhZykpIHtcbiAgICAgICAgbWFwLnNldCh0YWcsIHtvd25lZEJ5OiBbXX0pO1xuICAgICAgICBsaXN0LnB1c2goe3RhZ30pO1xuICAgICAgfVxuICAgIH0pO1xuICByZXR1cm4ge21hcCwgbGlzdH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhZ2VQYXJzZXJUcmVlIHtcbiAgdHJlZTogVGFnVHJlZTxIVE1MRWxlbWVudD47XG4gIF90cmVlQ29udHJvbGxlcjogVGFnVHJlZUNvbnRyb2xsZXI8SFRNTEVsZW1lbnQ+O1xuXG4gIF9yb290TWF0Y2hlZFNldDogTGl2ZVNldDxFbGVtZW50Q29udGV4dD47XG4gIF9lY1NvdXJjZXM6IE1hcDxzdHJpbmcsIHtcbiAgICBsaXZlU2V0OiBMaXZlU2V0PExpdmVTZXQ8RWxlbWVudENvbnRleHQ+PjtcbiAgICBjb250cm9sbGVyOiBMaXZlU2V0Q29udHJvbGxlcjxMaXZlU2V0PEVsZW1lbnRDb250ZXh0Pj47XG4gICAgZWNTZXQ6IExpdmVTZXQ8RWxlbWVudENvbnRleHQ+O1xuICB9PjtcblxuICBfbG9nRXJyb3I6IChlcnI6IEVycm9yLCBlbDogP0hUTUxFbGVtZW50KSA9PiB2b2lkO1xuICBfb3B0aW9uczogUGFnZVBhcnNlclRyZWVPcHRpb25zO1xuICBfdGFnT3B0aW9uczogTWFwPHN0cmluZywgVGFnT3B0aW9ucz47XG4gIF90YWdzTGlzdDogQXJyYXk8e3wgdGFnOiBzdHJpbmcsIG93bmVkQnk/OiA/c3RyaW5nW10gfH0+O1xuICBfc3Vic2NyaXB0aW9uczogQXJyYXk8TGl2ZVNldFN1YnNjcmlwdGlvbj4gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihyb290OiBEb2N1bWVudHxIVE1MRWxlbWVudCwgb3B0aW9uczogUGFnZVBhcnNlclRyZWVPcHRpb25zKSB7XG4gICAgbGV0IHJvb3RFbDtcbiAgICBpZiAocm9vdC5ub2RlVHlwZSA9PT0gTm9kZS5ET0NVTUVOVF9OT0RFKSB7XG4gICAgICByb290RWwgPSAoKHJvb3Q6YW55KTpEb2N1bWVudCkuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgaWYgKCFyb290RWwpIHRocm93IG5ldyBFcnJvcignbWlzc2luZyBkb2N1bWVudEVsZW1lbnQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm9vdEVsID0gKHJvb3Q6YW55KTtcbiAgICB9XG5cbiAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLl9sb2dFcnJvciA9IG9wdGlvbnMubG9nRXJyb3IgfHwgZnVuY3Rpb24oZXJyKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfSwgMCk7XG4gICAgfTtcblxuICAgIGNvbnN0IHttYXA6IHRhZ09wdGlvbnNNYXAsIGxpc3Q6IHRhZ3N9ID0gbWFrZVRhZ09wdGlvbnModGhpcy5fb3B0aW9ucyk7XG4gICAgdGhpcy5fdGFnT3B0aW9ucyA9IHRhZ09wdGlvbnNNYXA7XG4gICAgdGhpcy5fdGFnc0xpc3QgPSB0YWdzO1xuXG4gICAgdGhpcy50cmVlID0gbmV3IFRhZ1RyZWUoe1xuICAgICAgcm9vdDogcm9vdEVsLFxuICAgICAgdGFncyxcbiAgICAgIGV4ZWN1dG9yOiBjb250cm9sbGVyID0+IHtcbiAgICAgICAgdGhpcy5fdHJlZUNvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuX3Jvb3RNYXRjaGVkU2V0ID0gTGl2ZVNldC5jb25zdGFudChuZXcgU2V0KFt7XG4gICAgICBlbDogdGhpcy50cmVlLmdldFZhbHVlKCksXG4gICAgICBwYXJlbnRzOiBbe3RhZzogbnVsbCwgbm9kZTogdGhpcy50cmVlfV1cbiAgICB9XSkpO1xuXG4gICAgdGhpcy5fc2V0dXBXYXRjaGVyc0FuZEZpbmRlcnMoKTtcbiAgfVxuXG4gIF9zZXR1cFdhdGNoZXJzQW5kRmluZGVycygpIHtcbiAgICBjb25zdCB0YWdzV2l0aFdhdGNoZXJzID0gbmV3IFNldCgpO1xuICAgIHRoaXMuX29wdGlvbnMud2F0Y2hlcnMuZm9yRWFjaCh3YXRjaGVyID0+IHtcbiAgICAgIHRhZ3NXaXRoV2F0Y2hlcnMuYWRkKHdhdGNoZXIudGFnKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX2VjU291cmNlcyA9IG5ldyBNYXAodGhpcy5fdGFnc0xpc3QubWFwKCh7dGFnfSkgPT4ge1xuICAgICAgY29uc3QgdGFnT3B0aW9ucyA9IHRoaXMuX3RhZ09wdGlvbnMuZ2V0KHRhZyk7XG4gICAgICBpZiAoIXRhZ09wdGlvbnMpIHRocm93IG5ldyBFcnJvcigpO1xuICAgICAgY29uc3Qgb3duZWRCeSA9IG5ldyBTZXQodGFnT3B0aW9ucy5vd25lZEJ5IHx8IFtdKTtcblxuICAgICAgY29uc3Qge2xpdmVTZXQsIGNvbnRyb2xsZXJ9ID0gTGl2ZVNldC5hY3RpdmUoKTtcbiAgICAgIGNvbnN0IGNvbWJpbmVkV2F0Y2hlclNldCA9IHRhZ3NXaXRoV2F0Y2hlcnMuaGFzKHRhZykgP1xuICAgICAgICBsaXZlU2V0RmxhdE1hcChsaXZlU2V0LCBzID0+IHMpIDogbnVsbDtcbiAgICAgIGNvbnN0IGZpbmRlciA9IHRoaXMuX29wdGlvbnMuZmluZGVyc1t0YWddO1xuICAgICAgY29uc3QgZWNzVG9UYWcgPSBmaW5kZXIgP1xuICAgICAgICB3YXRjaGVyRmluZGVyTWVyZ2VyKFxuICAgICAgICAgIHRoaXMudHJlZSwgdGFnLCB0YWdPcHRpb25zLCBjb21iaW5lZFdhdGNoZXJTZXQsIGZpbmRlciwgdGhpcy5fbG9nRXJyb3JcbiAgICAgICAgKSA6IGNvbWJpbmVkV2F0Y2hlclNldCB8fCBMaXZlU2V0LmNvbnN0YW50KG5ldyBTZXQoKSk7XG5cbiAgICAgIGNvbnN0IGVsZW1lbnRzVG9Ob2RlczogTWFwPEhUTUxFbGVtZW50LCBUYWdUcmVlTm9kZTxIVE1MRWxlbWVudD4+ID0gbmV3IE1hcCgpO1xuXG4gICAgICBmdW5jdGlvbiBmaW5kUGFyZW50Tm9kZSh0YWdnZWRQYXJlbnRzOiBOb2RlVGFnUGFpcltdKTogVGFnVHJlZU5vZGU8SFRNTEVsZW1lbnQ+IHtcbiAgICAgICAgbGV0IHBhcmVudE5vZGU7XG4gICAgICAgIGZvciAobGV0IGk9dGFnZ2VkUGFyZW50cy5sZW5ndGgtMTsgaT49MDsgaS0tKSB7XG4gICAgICAgICAgaWYgKHRhZ2dlZFBhcmVudHNbaV0udGFnID09IG51bGwgfHwgb3duZWRCeS5oYXModGFnZ2VkUGFyZW50c1tpXS50YWcpKSB7XG4gICAgICAgICAgICBwYXJlbnROb2RlID0gdGFnZ2VkUGFyZW50c1tpXS5ub2RlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghcGFyZW50Tm9kZSkgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgICAgIHJldHVybiBwYXJlbnROb2RlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlY1NldCA9IG5ldyBMaXZlU2V0KHtcbiAgICAgICAgcmVhZCgpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICAgICAgfSxcbiAgICAgICAgbGlzdGVuOiAoc2V0VmFsdWVzLCBjb250cm9sbGVyKSA9PiB7XG4gICAgICAgICAgY29uc3QgbTogTWFwPEVsZW1lbnRDb250ZXh0LCBFbGVtZW50Q29udGV4dD4gPSBuZXcgTWFwKCk7XG5cbiAgICAgICAgICBjb25zdCBjYiA9IChlYzogRWxlbWVudENvbnRleHQpOiBFbGVtZW50Q29udGV4dCA9PiB7XG4gICAgICAgICAgICBjb25zdCB7ZWwsIHBhcmVudHN9ID0gZWM7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0gZmluZFBhcmVudE5vZGUocGFyZW50cyk7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5fdHJlZUNvbnRyb2xsZXIuYWRkVGFnZ2VkVmFsdWUocGFyZW50Tm9kZSwgdGFnLCBlbCk7XG4gICAgICAgICAgICBpZiAoZWxlbWVudHNUb05vZGVzLmhhcyhlbCkpIHtcbiAgICAgICAgICAgICAgdGhpcy5fbG9nRXJyb3IobmV3IEVycm9yKGBQYWdlUGFyc2VyVHJlZSgke3RhZ30pIHdhdGNoZXIgcmVjZWl2ZWQgZWxlbWVudCB0d2ljZWApLCBlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbGVtZW50c1RvTm9kZXMuc2V0KGVsLCBub2RlKTtcblxuICAgICAgICAgICAgY29uc3QgbmV3UGFyZW50cyA9IGVjLnBhcmVudHMuY29uY2F0KFt7dGFnLCBub2RlfV0pO1xuICAgICAgICAgICAgcmV0dXJuIHtlbCwgcGFyZW50czogbmV3UGFyZW50c307XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJldHVybiBlY3NUb1RhZy5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgc3RhcnQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcyA9IG5ldyBTZXQoKTtcbiAgICAgICAgICAgICAgZWNzVG9UYWcudmFsdWVzKCkuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBjYih2YWx1ZSk7XG4gICAgICAgICAgICAgICAgbS5zZXQodmFsdWUsIG5ld1ZhbHVlKTtcbiAgICAgICAgICAgICAgICBzLmFkZChuZXdWYWx1ZSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBzZXRWYWx1ZXMocyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dDogY2hhbmdlcyA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGVjc1JlbW92ZWRJbk5vdGlmaWNhdGlvbiA9IG5ldyBTZXQoKTtcbiAgICAgICAgICAgICAgaWYgKGNoYW5nZXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIGNoYW5nZXMuZm9yRWFjaChjaGFuZ2UgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKGNoYW5nZS50eXBlID09PSAncmVtb3ZlJykge1xuICAgICAgICAgICAgICAgICAgICBlY3NSZW1vdmVkSW5Ob3RpZmljYXRpb24uYWRkKGNoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjaGFuZ2VzLmZvckVhY2goY2hhbmdlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY2hhbmdlLnR5cGUgPT09ICdhZGQnKSB7XG4gICAgICAgICAgICAgICAgICAvLyBEb24ndCBwcm9jZXNzIGFkZHMgb2YgZWxlbWVudHMgdGhhdCBhcmUgcmVtb3ZlZCBieSBhIGxhdGVyXG4gICAgICAgICAgICAgICAgICAvLyBjaGFuZ2UgaW4gdGhpcyBub3RpZmljYXRpb24uXG4gICAgICAgICAgICAgICAgICBpZiAoZWNzUmVtb3ZlZEluTm90aWZpY2F0aW9uLmhhcyhjaGFuZ2UudmFsdWUpKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGNiKGNoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICBtLnNldChjaGFuZ2UudmFsdWUsIG5ld1ZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuYWRkKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZS50eXBlID09PSAncmVtb3ZlJykge1xuICAgICAgICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBtLmdldChjaGFuZ2UudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgaWYgKCFuZXdWYWx1ZSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgbS5kZWxldGUoY2hhbmdlLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIucmVtb3ZlKG5ld1ZhbHVlKTtcblxuICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IGVsZW1lbnRzVG9Ob2Rlcy5nZXQobmV3VmFsdWUuZWwpO1xuICAgICAgICAgICAgICAgICAgaWYgKCFub2RlKSB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBub3QgaGFwcGVuOiByZWNlaXZlZCByZW1vdmFsIG9mIHVuc2VlbiBlbGVtZW50Jyk7XG4gICAgICAgICAgICAgICAgICBlbGVtZW50c1RvTm9kZXMuZGVsZXRlKG5ld1ZhbHVlLmVsKTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVQYXJlbnQgPSBub2RlLmdldFBhcmVudCgpO1xuXG4gICAgICAgICAgICAgICAgICAvLyBUaGUgbm9kZSBtaWdodCBoYXZlIGFscmVhZHkgYmVlbiByZW1vdmVkIGZyb20gdGhlIHRyZWUgaWYgaXRcbiAgICAgICAgICAgICAgICAgIC8vIGlzIG93bmVkIGJ5IGEgbm9kZSB0aGF0IHdhcyBqdXN0IHJlbW92ZWQuXG4gICAgICAgICAgICAgICAgICBpZiAobm9kZVBhcmVudCAmJiBub2RlUGFyZW50Lm93bnNOb2RlKG5vZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RyZWVDb250cm9sbGVyLnJlbW92ZVRhZ2dlZE5vZGUobm9kZVBhcmVudCwgdGFnLCBub2RlKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yKGVycikge1xuICAgICAgICAgICAgICBjb250cm9sbGVyLmVycm9yKGVycik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29tcGxldGUoKSB7XG4gICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5kKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnB1c2goZWNTZXQuc3Vic2NyaWJlKHt9KSk7XG5cbiAgICAgIHJldHVybiBbdGFnLCB7bGl2ZVNldCwgY29udHJvbGxlciwgZWNTZXR9XTtcbiAgICB9KSk7XG5cbiAgICB0aGlzLl9vcHRpb25zLndhdGNoZXJzLmZvckVhY2goKHtzb3VyY2VzLCBzZWxlY3RvcnMsIHRhZ30pID0+IHtcbiAgICAgIGNvbnN0IHNvdXJjZVNldHMgPSBzb3VyY2VzLm1hcCh0YWcgPT4ge1xuICAgICAgICBpZiAoIXRhZykgcmV0dXJuIHRoaXMuX3Jvb3RNYXRjaGVkU2V0O1xuICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuX2VjU291cmNlcy5nZXQodGFnKTtcbiAgICAgICAgaWYgKCFlbnRyeSkgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIHNvdXJjZTogJyt0YWcpO1xuICAgICAgICByZXR1cm4gZW50cnkuZWNTZXQ7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHNvdXJjZVNldCA9IHNvdXJjZVNldHMubGVuZ3RoID09PSAxID8gc291cmNlU2V0c1swXSA6IGxpdmVTZXRNZXJnZShzb3VyY2VTZXRzKTtcbiAgICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gbWFrZUxpdmVTZXRUcmFuc2Zvcm1lckZyb21TZWxlY3RvcnMoc2VsZWN0b3JzKTtcblxuICAgICAgY29uc3QgZWNFbnRyeSA9IHRoaXMuX2VjU291cmNlcy5nZXQodGFnKTtcbiAgICAgIGlmICghZWNFbnRyeSkgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgICBlY0VudHJ5LmNvbnRyb2xsZXIuYWRkKHRyYW5zZm9ybWVyKHNvdXJjZVNldCkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiB7XG4gICAgICBzdWIucHVsbENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIF9kdW1wV2l0aG91dEVuZCgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHtcbiAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMubGVuZ3RoID0gMDtcbiAgICB0aGlzLnRyZWUuZ2V0T3duZWQoKS5mb3JFYWNoKChsaXZlU2V0LCB0YWcpID0+IHtcbiAgICAgIGxpdmVTZXQudmFsdWVzKCkuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgdGhpcy5fdHJlZUNvbnRyb2xsZXIucmVtb3ZlVGFnZ2VkTm9kZSh0aGlzLnRyZWUsIHRhZywgbm9kZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGR1bXAoKSB7XG4gICAgdGhpcy5fZHVtcFdpdGhvdXRFbmQoKTtcbiAgICB0aGlzLl90cmVlQ29udHJvbGxlci5lbmQoKTtcbiAgfVxuXG4gIC8vIEludGVuZGVkIGZvciB1c2Ugd2l0aCBob3QgbW9kdWxlIHJlcGxhY2VtZW50LlxuICByZXBsYWNlT3B0aW9ucyhvcHRpb25zOiBQYWdlUGFyc2VyVHJlZU9wdGlvbnMpIHtcbiAgICBjb25zdCB0YWdFcnJTdHIgPSAncmVwbGFjZU9wdGlvbnMgZG9lcyBub3Qgc3VwcG9ydCB0YWcgY2hhbmdlcyc7XG4gICAgY29uc3Qge21hcDogdGFnT3B0aW9uc01hcH0gPSBtYWtlVGFnT3B0aW9ucyhvcHRpb25zKTtcbiAgICBpZiAodGhpcy5fdGFnT3B0aW9ucy5zaXplICE9PSB0YWdPcHRpb25zTWFwLnNpemUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcih0YWdFcnJTdHIpO1xuICAgIH1cbiAgICB0aGlzLl90YWdPcHRpb25zLmZvckVhY2goKG9sZE9wdGlvbnMsIHRhZykgPT4ge1xuICAgICAgY29uc3QgbmV3T3B0aW9ucyA9IHRhZ09wdGlvbnNNYXAuZ2V0KHRhZyk7XG4gICAgICBpZiAoIW5ld09wdGlvbnMpIHRocm93IG5ldyBFcnJvcih0YWdFcnJTdHIpO1xuICAgICAgY29uc3Qgb2xkT3duZWRCeSA9IG9sZE9wdGlvbnMub3duZWRCeSB8fCBbXTtcbiAgICAgIGNvbnN0IG5ld093bmVkQnkgPSBuZXcgU2V0KG5ld09wdGlvbnMub3duZWRCeSB8fCBbXSk7XG4gICAgICBpZiAob2xkT3duZWRCeS5sZW5ndGggIT09IG5ld093bmVkQnkuc2l6ZSkgdGhyb3cgbmV3IEVycm9yKHRhZ0VyclN0cik7XG4gICAgICBvbGRPd25lZEJ5LmZvckVhY2godGFnID0+IHtcbiAgICAgICAgaWYgKCFuZXdPd25lZEJ5Lmhhcyh0YWcpKSB0aHJvdyBuZXcgRXJyb3IodGFnRXJyU3RyKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZHVtcFdpdGhvdXRFbmQoKTtcbiAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLl9zZXR1cFdhdGNoZXJzQW5kRmluZGVycygpO1xuICB9XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJtYWtlVGFnT3B0aW9ucyIsIm9wdGlvbnMiLCJtYXAiLCJsaXN0IiwidGFncyIsImZvckVhY2giLCJ0YWdPcHRpb25zIiwidGFnIiwib3duZWRCeSIsInB1c2giLCJzZXQiLCJmaW5kZXJzIiwiY29uY2F0Iiwid2F0Y2hlcnMiLCJ3IiwiaGFzIiwiUGFnZVBhcnNlclRyZWUiLCJyb290IiwiX3N1YnNjcmlwdGlvbnMiLCJyb290RWwiLCJub2RlVHlwZSIsIk5vZGUiLCJET0NVTUVOVF9OT0RFIiwiZG9jdW1lbnRFbGVtZW50IiwiRXJyb3IiLCJfb3B0aW9ucyIsIl9sb2dFcnJvciIsImxvZ0Vycm9yIiwiZXJyIiwic2V0VGltZW91dCIsInRhZ09wdGlvbnNNYXAiLCJfdGFnT3B0aW9ucyIsIl90YWdzTGlzdCIsInRyZWUiLCJleGVjdXRvciIsIl90cmVlQ29udHJvbGxlciIsImNvbnRyb2xsZXIiLCJfcm9vdE1hdGNoZWRTZXQiLCJjb25zdGFudCIsImVsIiwiZ2V0VmFsdWUiLCJwYXJlbnRzIiwibm9kZSIsIl9zZXR1cFdhdGNoZXJzQW5kRmluZGVycyIsInRhZ3NXaXRoV2F0Y2hlcnMiLCJhZGQiLCJ3YXRjaGVyIiwiX2VjU291cmNlcyIsImdldCIsImFjdGl2ZSIsImxpdmVTZXQiLCJjb21iaW5lZFdhdGNoZXJTZXQiLCJzIiwiZmluZGVyIiwiZWNzVG9UYWciLCJlbGVtZW50c1RvTm9kZXMiLCJmaW5kUGFyZW50Tm9kZSIsInRhZ2dlZFBhcmVudHMiLCJwYXJlbnROb2RlIiwiaSIsImxlbmd0aCIsImVjU2V0IiwicmVhZCIsImxpc3RlbiIsInNldFZhbHVlcyIsIm0iLCJjYiIsImVjIiwiYWRkVGFnZ2VkVmFsdWUiLCJuZXdQYXJlbnRzIiwic3Vic2NyaWJlIiwic3RhcnQiLCJ2YWx1ZXMiLCJuZXdWYWx1ZSIsInZhbHVlIiwibmV4dCIsImVjc1JlbW92ZWRJbk5vdGlmaWNhdGlvbiIsImNoYW5nZXMiLCJjaGFuZ2UiLCJ0eXBlIiwiZGVsZXRlIiwicmVtb3ZlIiwibm9kZVBhcmVudCIsImdldFBhcmVudCIsIm93bnNOb2RlIiwicmVtb3ZlVGFnZ2VkTm9kZSIsImVycm9yIiwiY29tcGxldGUiLCJlbmQiLCJzb3VyY2VzIiwic2VsZWN0b3JzIiwic291cmNlU2V0cyIsImVudHJ5Iiwic291cmNlU2V0IiwidHJhbnNmb3JtZXIiLCJlY0VudHJ5Iiwic3ViIiwicHVsbENoYW5nZXMiLCJ1bnN1YnNjcmliZSIsImdldE93bmVkIiwiX2R1bXBXaXRob3V0RW5kIiwidGFnRXJyU3RyIiwic2l6ZSIsIm9sZE9wdGlvbnMiLCJuZXdPcHRpb25zIiwib2xkT3duZWRCeSIsIm5ld093bmVkQnkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7Ozs7QUFFQTs7OztBQUNBOzs7O0FBQ0E7O0FBR0E7Ozs7QUFDQTs7Ozs7O0FBMkNBLFNBQVNBLGNBQVQsQ0FBd0JDLE9BQXhCLEVBQXdEO0FBQ3RELE1BQU1DLE1BQU0sbUJBQVo7QUFDQSxNQUFNQyxPQUFPLEVBQWI7QUFDQSxzQkFBWUYsUUFBUUcsSUFBcEIsRUFBMEJDLE9BQTFCLENBQWtDLGVBQU87QUFDdkMsUUFBTUMsYUFBYUwsUUFBUUcsSUFBUixDQUFhRyxHQUFiLENBQW5CO0FBRHVDLFFBRWhDQyxPQUZnQyxHQUVyQkYsVUFGcUIsQ0FFaENFLE9BRmdDOztBQUd2Q0wsU0FBS00sSUFBTCxDQUFVLEVBQUNGLFFBQUQsRUFBTUMsZ0JBQU4sRUFBVjtBQUNBTixRQUFJUSxHQUFKLENBQVFILEdBQVIsRUFBYUQsVUFBYjtBQUNELEdBTEQ7QUFNQSxzQkFBWUwsUUFBUVUsT0FBcEIsRUFDR0MsTUFESCxDQUNVWCxRQUFRWSxRQUFSLENBQWlCWCxHQUFqQixDQUFxQjtBQUFBLFdBQUtZLEVBQUVQLEdBQVA7QUFBQSxHQUFyQixDQURWLEVBRUdGLE9BRkgsQ0FFVyxlQUFPO0FBQ2QsUUFBSSxDQUFDSCxJQUFJYSxHQUFKLENBQVFSLEdB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QUM1QyxZQUFNaUcsYUFBYTFFLGNBQWNrQixHQUFkLENBQWtCekMsR0FBbEIsQ0FBbkI7QUFDQSxZQUFJLENBQUNpRyxVQUFMLEVBQWlCLE1BQU0sSUFBSWhGLEtBQUosQ0FBVTZFLFNBQVYsQ0FBTjtBQUNqQixZQUFNSSxhQUFhRixXQUFXL0YsT0FBWCxJQUFzQixFQUF6QztBQUNBLFlBQU1rRyxhQUFhLGtCQUFRRixXQUFXaEcsT0FBWCxJQUFzQixFQUE5QixDQUFuQjtBQUNBLFlBQUlpRyxXQUFXN0MsTUFBWCxLQUFzQjhDLFdBQVdKLElBQXJDLEVBQTJDLE1BQU0sSUFBSTlFLEtBQUosQ0FBVTZFLFNBQVYsQ0FBTjtBQUMzQ0ksbUJBQVdwRyxPQUFYLENBQW1CLGVBQU87QUFDeEIsY0FBSSxDQUFDcUcsV0FBVzNGLEdBQVgsQ0FBZVIsR0FBZixDQUFMLEVBQTBCLE1BQU0sSUFBSWlCLEtBQUosQ0FBVTZFLFNBQVYsQ0FBTjtBQUMzQixTQUZEO0FBR0QsT0FURDs7QUFXQSxXQUFLRCxlQUFMO0FBQ0EsV0FBSzNFLFFBQUwsR0FBZ0J4QixPQUFoQjtBQUNBLFdBQUswQyx3QkFBTDtBQUNEOzs7OztrQkFsT2tCM0IsYyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmltcG9ydCBMaXZlU2V0IGZyb20gJ2xpdmUtc2V0JztcbmltcG9ydCB0eXBlIHtMaXZlU2V0Q29udHJvbGxlciwgTGl2ZVNldFN1YnNjcmlwdGlvbn0gZnJvbSAnbGl2ZS1zZXQnO1xuaW1wb3J0IGxpdmVTZXRNZXJnZSBmcm9tICdsaXZlLXNldC9tZXJnZSc7XG5pbXBvcnQgbGl2ZVNldEZsYXRNYXBSIGZyb20gJ2xpdmUtc2V0L2ZsYXRNYXBSJztcbmltcG9ydCB7VGFnVHJlZX0gZnJvbSAndGFnLXRyZWUnO1xuaW1wb3J0IHR5cGUge1RhZ1RyZWVDb250cm9sbGVyLCBUYWdUcmVlTm9kZX0gZnJvbSAndGFnLXRyZWUnO1xuXG5pbXBvcnQgd2F0Y2hlckZpbmRlck1lcmdlciBmcm9tICcuL3dhdGNoZXJGaW5kZXJNZXJnZXInO1xuaW1wb3J0IG1ha2VMaXZlU2V0VHJhbnNmb3JtZXJGcm9tU2VsZWN0b3JzIGZyb20gJy4vbWFrZUxpdmVTZXRUcmFuc2Zvcm1lckZyb21TZWxlY3RvcnMnO1xuXG5leHBvcnQgdHlwZSBTZWxlY3RvciA9XG4gIHN0cmluZ1xuICB8IHt8ICRmaWx0ZXI6IChlbDogSFRNTEVsZW1lbnQpID0+IGJvb2xlYW4gfH1cbiAgfCB7fCAkbWFwOiAoZWw6IEhUTUxFbGVtZW50KSA9PiA/SFRNTEVsZW1lbnQgfH1cbiAgfCB7fCAkd2F0Y2g6IHt8IGF0dHJpYnV0ZUZpbHRlcjogc3RyaW5nW10sIGNvbmQ6IHN0cmluZyB8IChlbDogSFRNTEVsZW1lbnQpID0+IGJvb2xlYW4gfH0gfH1cbiAgfCB7fCAkb3I6IEFycmF5PEFycmF5PFNlbGVjdG9yPj4gfH1cbiAgfCB7fCAkbG9nOiBzdHJpbmcgfH1cbjtcblxuZXhwb3J0IHR5cGUgV2F0Y2hlciA9IHt8XG4gIHNvdXJjZXM6IEFycmF5PHN0cmluZ3xudWxsPjtcbiAgdGFnOiBzdHJpbmc7XG4gIHNlbGVjdG9yczogQXJyYXk8U2VsZWN0b3I+O1xufH07XG5cbmV4cG9ydCB0eXBlIEZpbmRlciA9IHt8XG4gIGZuKHJvb3Q6IEhUTUxFbGVtZW50KTogQXJyYXk8SFRNTEVsZW1lbnQ+IHwgTm9kZUxpc3Q8SFRNTEVsZW1lbnQ+O1xuICBpbnRlcnZhbD86ID9udW1iZXJ8KGVsZW1lbnRDb3VudDogbnVtYmVyLCB0aW1lUnVubmluZzogbnVtYmVyKSA9PiBudW1iZXI7XG58fTtcblxuZXhwb3J0IHR5cGUgVGFnT3B0aW9ucyA9IHt8XG4gIG93bmVkQnk/OiA/QXJyYXk8c3RyaW5nPjtcbnx9O1xuXG5leHBvcnQgdHlwZSBQYWdlUGFyc2VyVHJlZU9wdGlvbnMgPSB7fFxuICBsb2dFcnJvcj86ID8oZXJyOiBFcnJvciwgZWw6ID9IVE1MRWxlbWVudCkgPT4gdm9pZDtcbiAgdGFnczoge1t0YWc6c3RyaW5nXTogVGFnT3B0aW9uc307XG4gIHdhdGNoZXJzOiBBcnJheTxXYXRjaGVyPjtcbiAgZmluZGVyczoge1t0YWc6c3RyaW5nXTogRmluZGVyfTtcbnx9O1xuXG50eXBlIE5vZGVUYWdQYWlyID0ge3xcbiAgdGFnOiA/c3RyaW5nO1xuICBub2RlOiBUYWdUcmVlTm9kZTxIVE1MRWxlbWVudD47XG58fTtcblxuZXhwb3J0IHR5cGUgRWxlbWVudENvbnRleHQgPSB7fFxuICBlbDogSFRNTEVsZW1lbnQ7XG4gIHBhcmVudHM6IEFycmF5PE5vZGVUYWdQYWlyPjtcbnx9O1xuXG5mdW5jdGlvbiBtYWtlVGFnT3B0aW9ucyhvcHRpb25zOiBQYWdlUGFyc2VyVHJlZU9wdGlvbnMpIHtcbiAgY29uc3QgbWFwID0gbmV3IE1hcCgpO1xuICBjb25zdCBsaXN0ID0gW107XG4gIE9iamVjdC5rZXlzKG9wdGlvbnMudGFncykuZm9yRWFjaCh0YWcgPT4ge1xuICAgIGNvbnN0IHRhZ09wdGlvbnMgPSBvcHRpb25zLnRhZ3NbdGFnXTtcbiAgICBjb25zdCB7b3duZWRCeX0gPSB0YWdPcHRpb25zO1xuICAgIGxpc3QucHVzaCh7dGFnLCBvd25lZEJ5fSk7XG4gICAgbWFwLnNldCh0YWcsIHRhZ09wdGlvbnMpO1xuICB9KTtcbiAgT2JqZWN0LmtleXMob3B0aW9ucy5maW5kZXJzKVxuICAgIC5jb25jYXQob3B0aW9ucy53YXRjaGVycy5tYXAodyA9PiB3LnRhZykpXG4gICAgLmZvckVhY2godGFnID0+IHtcbiAgICAgIGlmICghbWFwLmhhcyh0YWcpKSB7XG4gICAgICAgIG1hcC5zZXQodGFnLCB7b3duZWRCeTogW119KTtcbiAgICAgICAgbGlzdC5wdXNoKHt0YWd9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgcmV0dXJuIHttYXAsIGxpc3R9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYWdlUGFyc2VyVHJlZSB7XG4gIHRyZWU6IFRhZ1RyZWU8SFRNTEVsZW1lbnQ+O1xuICBfdHJlZUNvbnRyb2xsZXI6IFRhZ1RyZWVDb250cm9sbGVyPEhUTUxFbGVtZW50PjtcblxuICBfcm9vdE1hdGNoZWRTZXQ6IExpdmVTZXQ8RWxlbWVudENvbnRleHQ+O1xuICBfZWNTb3VyY2VzOiBNYXA8c3RyaW5nLCB7XG4gICAgbGl2ZVNldDogTGl2ZVNldDxMaXZlU2V0PEVsZW1lbnRDb250ZXh0Pj47XG4gICAgY29udHJvbGxlcjogTGl2ZVNldENvbnRyb2xsZXI8TGl2ZVNldDxFbGVtZW50Q29udGV4dD4+O1xuICAgIGVjU2V0OiBMaXZlU2V0PEVsZW1lbnRDb250ZXh0PjtcbiAgfT47XG5cbiAgX2xvZ0Vycm9yOiAoZXJyOiBFcnJvciwgZWw6ID9IVE1MRWxlbWVudCkgPT4gdm9pZDtcbiAgX29wdGlvbnM6IFBhZ2VQYXJzZXJUcmVlT3B0aW9ucztcbiAgX3RhZ09wdGlvbnM6IE1hcDxzdHJpbmcsIFRhZ09wdGlvbnM+O1xuICBfdGFnc0xpc3Q6IEFycmF5PHt8IHRhZzogc3RyaW5nLCBvd25lZEJ5PzogP3N0cmluZ1tdIHx9PjtcbiAgX3N1YnNjcmlwdGlvbnM6IEFycmF5PExpdmVTZXRTdWJzY3JpcHRpb24+ID0gW107XG5cbiAgY29uc3RydWN0b3Iocm9vdDogRG9jdW1lbnR8SFRNTEVsZW1lbnQsIG9wdGlvbnM6IFBhZ2VQYXJzZXJUcmVlT3B0aW9ucykge1xuICAgIGxldCByb290RWw7XG4gICAgaWYgKHJvb3Qubm9kZVR5cGUgPT09IE5vZGUuRE9DVU1FTlRfTk9ERSkge1xuICAgICAgcm9vdEVsID0gKChyb290OmFueSk6RG9jdW1lbnQpLmRvY3VtZW50RWxlbWVudDtcbiAgICAgIGlmICghcm9vdEVsKSB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgZG9jdW1lbnRFbGVtZW50Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvb3RFbCA9IChyb290OmFueSk7XG4gICAgfVxuXG4gICAgdGhpcy5fb3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5fbG9nRXJyb3IgPSBvcHRpb25zLmxvZ0Vycm9yIHx8IGZ1bmN0aW9uKGVycikge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH0sIDApO1xuICAgIH07XG5cbiAgICBjb25zdCB7bWFwOiB0YWdPcHRpb25zTWFwLCBsaXN0OiB0YWdzfSA9IG1ha2VUYWdPcHRpb25zKHRoaXMuX29wdGlvbnMpO1xuICAgIHRoaXMuX3RhZ09wdGlvbnMgPSB0YWdPcHRpb25zTWFwO1xuICAgIHRoaXMuX3RhZ3NMaXN0ID0gdGFncztcblxuICAgIHRoaXMudHJlZSA9IG5ldyBUYWdUcmVlKHtcbiAgICAgIHJvb3Q6IHJvb3RFbCxcbiAgICAgIHRhZ3MsXG4gICAgICBleGVjdXRvcjogY29udHJvbGxlciA9PiB7XG4gICAgICAgIHRoaXMuX3RyZWVDb250cm9sbGVyID0gY29udHJvbGxlcjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLl9yb290TWF0Y2hlZFNldCA9IExpdmVTZXQuY29uc3RhbnQobmV3IFNldChbe1xuICAgICAgZWw6IHRoaXMudHJlZS5nZXRWYWx1ZSgpLFxuICAgICAgcGFyZW50czogW3t0YWc6IG51bGwsIG5vZGU6IHRoaXMudHJlZX1dXG4gICAgfV0pKTtcblxuICAgIHRoaXMuX3NldHVwV2F0Y2hlcnNBbmRGaW5kZXJzKCk7XG4gIH1cblxuICBfc2V0dXBXYXRjaGVyc0FuZEZpbmRlcnMoKSB7XG4gICAgY29uc3QgdGFnc1dpdGhXYXRjaGVycyA9IG5ldyBTZXQoKTtcbiAgICB0aGlzLl9vcHRpb25zLndhdGNoZXJzLmZvckVhY2god2F0Y2hlciA9PiB7XG4gICAgICB0YWdzV2l0aFdhdGNoZXJzLmFkZCh3YXRjaGVyLnRhZyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9lY1NvdXJjZXMgPSBuZXcgTWFwKHRoaXMuX3RhZ3NMaXN0Lm1hcCgoe3RhZ30pID0+IHtcbiAgICAgIGNvbnN0IHRhZ09wdGlvbnMgPSB0aGlzLl90YWdPcHRpb25zLmdldCh0YWcpO1xuICAgICAgaWYgKCF0YWdPcHRpb25zKSB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICAgIGNvbnN0IG93bmVkQnkgPSBuZXcgU2V0KHRhZ09wdGlvbnMub3duZWRCeSB8fCBbXSk7XG5cbiAgICAgIGNvbnN0IHtsaXZlU2V0LCBjb250cm9sbGVyfSA9IExpdmVTZXQuYWN0aXZlKCk7XG4gICAgICBjb25zdCBjb21iaW5lZFdhdGNoZXJTZXQgPSB0YWdzV2l0aFdhdGNoZXJzLmhhcyh0YWcpID9cbiAgICAgICAgbGl2ZVNldEZsYXRNYXBSKGxpdmVTZXQsIHMgPT4gcykgOiBudWxsO1xuICAgICAgY29uc3QgZmluZGVyID0gdGhpcy5fb3B0aW9ucy5maW5kZXJzW3RhZ107XG4gICAgICBjb25zdCBlY3NUb1RhZyA9IGZpbmRlciA/XG4gICAgICAgIHdhdGNoZXJGaW5kZXJNZXJnZXIoXG4gICAgICAgICAgdGhpcy50cmVlLCB0YWcsIHRhZ09wdGlvbnMsIGNvbWJpbmVkV2F0Y2hlclNldCwgZmluZGVyLCB0aGlzLl9sb2dFcnJvclxuICAgICAgICApIDogY29tYmluZWRXYXRjaGVyU2V0IHx8IExpdmVTZXQuY29uc3RhbnQobmV3IFNldCgpKTtcblxuICAgICAgY29uc3QgZWxlbWVudHNUb05vZGVzOiBNYXA8SFRNTEVsZW1lbnQsIFRhZ1RyZWVOb2RlPEhUTUxFbGVtZW50Pj4gPSBuZXcgTWFwKCk7XG5cbiAgICAgIGZ1bmN0aW9uIGZpbmRQYXJlbnROb2RlKHRhZ2dlZFBhcmVudHM6IE5vZGVUYWdQYWlyW10pOiBUYWdUcmVlTm9kZTxIVE1MRWxlbWVudD4ge1xuICAgICAgICBsZXQgcGFyZW50Tm9kZTtcbiAgICAgICAgZm9yIChsZXQgaT10YWdnZWRQYXJlbnRzLmxlbmd0aC0xOyBpPj0wOyBpLS0pIHtcbiAgICAgICAgICBpZiAodGFnZ2VkUGFyZW50c1tpXS50YWcgPT0gbnVsbCB8fCBvd25lZEJ5Lmhhcyh0YWdnZWRQYXJlbnRzW2ldLnRhZykpIHtcbiAgICAgICAgICAgIHBhcmVudE5vZGUgPSB0YWdnZWRQYXJlbnRzW2ldLm5vZGU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFwYXJlbnROb2RlKSB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICAgICAgcmV0dXJuIHBhcmVudE5vZGU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVjU2V0ID0gbmV3IExpdmVTZXQoe1xuICAgICAgICByZWFkKCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgICAgICB9LFxuICAgICAgICBsaXN0ZW46IChzZXRWYWx1ZXMsIGNvbnRyb2xsZXIpID0+IHtcbiAgICAgICAgICBjb25zdCBtOiBNYXA8RWxlbWVudENvbnRleHQsIEVsZW1lbnRDb250ZXh0PiA9IG5ldyBNYXAoKTtcblxuICAgICAgICAgIGNvbnN0IGNiID0gKGVjOiBFbGVtZW50Q29udGV4dCk6IEVsZW1lbnRDb250ZXh0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHtlbCwgcGFyZW50c30gPSBlYztcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBmaW5kUGFyZW50Tm9kZShwYXJlbnRzKTtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLl90cmVlQ29udHJvbGxlci5hZGRUYWdnZWRWYWx1ZShwYXJlbnROb2RlLCB0YWcsIGVsKTtcbiAgICAgICAgICAgIGlmIChlbGVtZW50c1RvTm9kZXMuaGFzKGVsKSkge1xuICAgICAgICAgICAgICB0aGlzLl9sb2dFcnJvcihuZXcgRXJyb3IoYFBhZ2VQYXJzZXJUcmVlKCR7dGFnfSkgd2F0Y2hlciByZWNlaXZlZCBlbGVtZW50IHR3aWNlYCksIGVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsZW1lbnRzVG9Ob2Rlcy5zZXQoZWwsIG5vZGUpO1xuXG4gICAgICAgICAgICBjb25zdCBuZXdQYXJlbnRzID0gZWMucGFyZW50cy5jb25jYXQoW3t0YWcsIG5vZGV9XSk7XG4gICAgICAgICAgICByZXR1cm4ge2VsLCBwYXJlbnRzOiBuZXdQYXJlbnRzfTtcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgcmV0dXJuIGVjc1RvVGFnLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBzdGFydDogKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBzID0gbmV3IFNldCgpO1xuICAgICAgICAgICAgICBlY3NUb1RhZy52YWx1ZXMoKS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGNiKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBtLnNldCh2YWx1ZSwgbmV3VmFsdWUpO1xuICAgICAgICAgICAgICAgIHMuYWRkKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHNldFZhbHVlcyhzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0OiBjaGFuZ2VzID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZWNzUmVtb3ZlZEluTm90aWZpY2F0aW9uID0gbmV3IFNldCgpO1xuICAgICAgICAgICAgICBpZiAoY2hhbmdlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgY2hhbmdlcy5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoY2hhbmdlLnR5cGUgPT09ICdyZW1vdmUnKSB7XG4gICAgICAgICAgICAgICAgICAgIGVjc1JlbW92ZWRJbk5vdGlmaWNhdGlvbi5hZGQoY2hhbmdlLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGNoYW5nZXMuZm9yRWFjaChjaGFuZ2UgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjaGFuZ2UudHlwZSA9PT0gJ2FkZCcpIHtcbiAgICAgICAgICAgICAgICAgIC8vIERvbid0IHByb2Nlc3MgYWRkcyBvZiBlbGVtZW50cyB0aGF0IGFyZSByZW1vdmVkIGJ5IGEgbGF0ZXJcbiAgICAgICAgICAgICAgICAgIC8vIGNoYW5nZSBpbiB0aGlzIG5vdGlmaWNhdGlvbi5cbiAgICAgICAgICAgICAgICAgIGlmIChlY3NSZW1vdmVkSW5Ob3RpZmljYXRpb24uaGFzKGNoYW5nZS52YWx1ZSkpIHJldHVybjtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY2IoY2hhbmdlLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIG0uc2V0KGNoYW5nZS52YWx1ZSwgbmV3VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5hZGQobmV3VmFsdWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlLnR5cGUgPT09ICdyZW1vdmUnKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IG0uZ2V0KGNoYW5nZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICBpZiAoIW5ld1ZhbHVlKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICBtLmRlbGV0ZShjaGFuZ2UudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5yZW1vdmUobmV3VmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gZWxlbWVudHNUb05vZGVzLmdldChuZXdWYWx1ZS5lbCk7XG4gICAgICAgICAgICAgICAgICBpZiAoIW5vZGUpIHRocm93IG5ldyBFcnJvcignU2hvdWxkIG5vdCBoYXBwZW46IHJlY2VpdmVkIHJlbW92YWwgb2YgdW5zZWVuIGVsZW1lbnQnKTtcbiAgICAgICAgICAgICAgICAgIGVsZW1lbnRzVG9Ob2Rlcy5kZWxldGUobmV3VmFsdWUuZWwpO1xuICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZVBhcmVudCA9IG5vZGUuZ2V0UGFyZW50KCk7XG5cbiAgICAgICAgICAgICAgICAgIC8vIFRoZSBub2RlIG1pZ2h0IGhhdmUgYWxyZWFkeSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgdHJlZSBpZiBpdFxuICAgICAgICAgICAgICAgICAgLy8gaXMgb3duZWQgYnkgYSBub2RlIHRoYXQgd2FzIGp1c3QgcmVtb3ZlZC5cbiAgICAgICAgICAgICAgICAgIGlmIChub2RlUGFyZW50ICYmIG5vZGVQYXJlbnQub3duc05vZGUobm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdHJlZUNvbnRyb2xsZXIucmVtb3ZlVGFnZ2VkTm9kZShub2RlUGFyZW50LCB0YWcsIG5vZGUpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3IoZXJyKSB7XG4gICAgICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21wbGV0ZSgpIHtcbiAgICAgICAgICAgICAgY29udHJvbGxlci5lbmQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaChlY1NldC5zdWJzY3JpYmUoe30pKTtcblxuICAgICAgcmV0dXJuIFt0YWcsIHtsaXZlU2V0LCBjb250cm9sbGVyLCBlY1NldH1dO1xuICAgIH0pKTtcblxuICAgIHRoaXMuX29wdGlvbnMud2F0Y2hlcnMuZm9yRWFjaCgoe3NvdXJjZXMsIHNlbGVjdG9ycywgdGFnfSkgPT4ge1xuICAgICAgY29uc3Qgc291cmNlU2V0cyA9IHNvdXJjZXMubWFwKHRhZyA9PiB7XG4gICAgICAgIGlmICghdGFnKSByZXR1cm4gdGhpcy5fcm9vdE1hdGNoZWRTZXQ7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5fZWNTb3VyY2VzLmdldCh0YWcpO1xuICAgICAgICBpZiAoIWVudHJ5KSB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gc291cmNlOiAnK3RhZyk7XG4gICAgICAgIHJldHVybiBlbnRyeS5lY1NldDtcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgc291cmNlU2V0ID0gc291cmNlU2V0cy5sZW5ndGggPT09IDEgPyBzb3VyY2VTZXRzWzBdIDogbGl2ZVNldE1lcmdlKHNvdXJjZVNldHMpO1xuICAgICAgY29uc3QgdHJhbnNmb3JtZXIgPSBtYWtlTGl2ZVNldFRyYW5zZm9ybWVyRnJvbVNlbGVjdG9ycyhzZWxlY3RvcnMpO1xuXG4gICAgICBjb25zdCBlY0VudHJ5ID0gdGhpcy5fZWNTb3VyY2VzLmdldCh0YWcpO1xuICAgICAgaWYgKCFlY0VudHJ5KSB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICAgIGVjRW50cnkuY29udHJvbGxlci5hZGQodHJhbnNmb3JtZXIoc291cmNlU2V0KSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHtcbiAgICAgIHN1Yi5wdWxsQ2hhbmdlcygpO1xuICAgIH0pO1xuICB9XG5cbiAgX2R1bXBXaXRob3V0RW5kKCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4ge1xuICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5sZW5ndGggPSAwO1xuICAgIHRoaXMudHJlZS5nZXRPd25lZCgpLmZvckVhY2goKGxpdmVTZXQsIHRhZykgPT4ge1xuICAgICAgbGl2ZVNldC52YWx1ZXMoKS5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICB0aGlzLl90cmVlQ29udHJvbGxlci5yZW1vdmVUYWdnZWROb2RlKHRoaXMudHJlZSwgdGFnLCBub2RlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZHVtcCgpIHtcbiAgICB0aGlzLl9kdW1wV2l0aG91dEVuZCgpO1xuICAgIHRoaXMuX3RyZWVDb250cm9sbGVyLmVuZCgpO1xuICB9XG5cbiAgLy8gSW50ZW5kZWQgZm9yIHVzZSB3aXRoIGhvdCBtb2R1bGUgcmVwbGFjZW1lbnQuXG4gIHJlcGxhY2VPcHRpb25zKG9wdGlvbnM6IFBhZ2VQYXJzZXJUcmVlT3B0aW9ucykge1xuICAgIGNvbnN0IHRhZ0VyclN0ciA9ICdyZXBsYWNlT3B0aW9ucyBkb2VzIG5vdCBzdXBwb3J0IHRhZyBjaGFuZ2VzJztcbiAgICBjb25zdCB7bWFwOiB0YWdPcHRpb25zTWFwfSA9IG1ha2VUYWdPcHRpb25zKG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLl90YWdPcHRpb25zLnNpemUgIT09IHRhZ09wdGlvbnNNYXAuc2l6ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRhZ0VyclN0cik7XG4gICAgfVxuICAgIHRoaXMuX3RhZ09wdGlvbnMuZm9yRWFjaCgob2xkT3B0aW9ucywgdGFnKSA9PiB7XG4gICAgICBjb25zdCBuZXdPcHRpb25zID0gdGFnT3B0aW9uc01hcC5nZXQodGFnKTtcbiAgICAgIGlmICghbmV3T3B0aW9ucykgdGhyb3cgbmV3IEVycm9yKHRhZ0VyclN0cik7XG4gICAgICBjb25zdCBvbGRPd25lZEJ5ID0gb2xkT3B0aW9ucy5vd25lZEJ5IHx8IFtdO1xuICAgICAgY29uc3QgbmV3T3duZWRCeSA9IG5ldyBTZXQobmV3T3B0aW9ucy5vd25lZEJ5IHx8IFtdKTtcbiAgICAgIGlmIChvbGRPd25lZEJ5Lmxlbmd0aCAhPT0gbmV3T3duZWRCeS5zaXplKSB0aHJvdyBuZXcgRXJyb3IodGFnRXJyU3RyKTtcbiAgICAgIG9sZE93bmVkQnkuZm9yRWFjaCh0YWcgPT4ge1xuICAgICAgICBpZiAoIW5ld093bmVkQnkuaGFzKHRhZykpIHRocm93IG5ldyBFcnJvcih0YWdFcnJTdHIpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9kdW1wV2l0aG91dEVuZCgpO1xuICAgIHRoaXMuX29wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuX3NldHVwV2F0Y2hlcnNBbmRGaW5kZXJzKCk7XG4gIH1cbn1cbiJdfQ== |
{ | ||
"name": "page-parser-tree", | ||
"version": "0.2.11", | ||
"version": "0.3.0", | ||
"description": "Library to find elements in a dynamic web page", | ||
@@ -23,5 +23,5 @@ "main": "js/index.js", | ||
"babel-runtime": "^6.22.0", | ||
"live-set": "^0.3.12", | ||
"live-set": "^0.4.0", | ||
"matches-selector-ng": "^1.0.0", | ||
"tag-tree": "^0.3.3", | ||
"tag-tree": "^0.4.0", | ||
"transducers.js": "^0.3.2" | ||
@@ -28,0 +28,0 @@ }, |
@@ -58,2 +58,9 @@ # page-parser-tree | ||
## Known Issues | ||
This library is still under development. Currently it has a bug that when a | ||
tagged element is first announced through a notification, any elements within | ||
it have not been checked and tagged yet if possible by that point. This | ||
behavior is not intended. | ||
## Example | ||
@@ -60,0 +67,0 @@ |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
132132
406
+ Addedlive-set@0.4.4(transitive)
+ Addedtag-tree@0.4.1(transitive)
+ Addedzen-observable@0.6.1(transitive)
- Removedlive-set@0.3.12(transitive)
- Removedtag-tree@0.3.3(transitive)
- Removedzen-observable@0.4.0(transitive)
Updatedlive-set@^0.4.0
Updatedtag-tree@^0.4.0