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

@glimmer/runtime

Package Overview
Dependencies
Maintainers
10
Versions
289
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@glimmer/runtime - npm Package Compare versions

Comparing version 0.24.0-beta.1 to 0.24.0-beta.2

8

dist/commonjs/es2017/lib/compiled/opcodes/builder.js

@@ -46,4 +46,6 @@ 'use strict';

patch(opcodes) {
for (let { at, Target, target } of this.targets) {
opcodes.set(at, Target, this.labels[target]);
let { targets, labels } = this;
for (let i = 0; i < targets.length; i++) {
let { at, Target, target } = targets[i];
opcodes.set(at, Target, labels[target]);
}

@@ -499,2 +501,2 @@ }

exports.default = OpcodeBuilder;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21waWxlZC9vcGNvZGVzL2J1aWxkZXIuanMiXSwibmFtZXMiOlsiY29udGVudCIsInZtIiwiTGFiZWxzIiwiY29uc3RydWN0b3IiLCJsYWJlbHMiLCJ0YXJnZXRzIiwibGFiZWwiLCJuYW1lIiwiaW5kZXgiLCJ0YXJnZXQiLCJhdCIsIlRhcmdldCIsInB1c2giLCJwYXRjaCIsIm9wY29kZXMiLCJzZXQiLCJCYXNpY09wY29kZUJ1aWxkZXIiLCJlbnYiLCJtZXRhIiwicHJvZ3JhbSIsImxhYmVsc1N0YWNrIiwiY29uc3RhbnRzIiwic3RhcnQiLCJuZXh0IiwicG9zIiwiY3VycmVudCIsIm5leHRQb3MiLCJ1cHZhcnMiLCJjb3VudCIsInJlc2VydmUiLCJvcDEiLCJvcDIiLCJvcDMiLCJmaW5hbGl6ZSIsInB1c2hBcmdzIiwic3ludGhldGljIiwic3RhcnRMYWJlbHMiLCJzdG9wTGFiZWxzIiwicG9wIiwicHVzaENvbXBvbmVudE1hbmFnZXIiLCJkZWZpbml0aW9uIiwib3RoZXIiLCJwdXNoRHluYW1pY0NvbXBvbmVudE1hbmFnZXIiLCJwcmVwYXJlQXJncyIsInN0YXRlIiwiY3JlYXRlQ29tcG9uZW50IiwiaGFzRGVmYXVsdCIsImhhc0ludmVyc2UiLCJmbGFnIiwicmVnaXN0ZXJDb21wb25lbnREZXN0cnVjdG9yIiwiYmVnaW5Db21wb25lbnRUcmFuc2FjdGlvbiIsImNvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uIiwicHVzaENvbXBvbmVudE9wZXJhdGlvbnMiLCJnZXRDb21wb25lbnRTZWxmIiwiZ2V0Q29tcG9uZW50TGF5b3V0IiwiZGlkQ3JlYXRlRWxlbWVudCIsImRpZFJlbmRlckxheW91dCIsImdldFBhcnRpYWxUZW1wbGF0ZSIsInJlc29sdmVNYXliZUxvY2FsIiwic3RyaW5nIiwiZGVidWdnZXIiLCJzeW1ib2xzIiwiZXZhbEluZm8iLCJhcnJheSIsImR5bmFtaWNDb250ZW50IiwiT3Bjb2RlIiwiY2F1dGlvdXNBcHBlbmQiLCJPcHRpbWl6ZWRDYXV0aW91c0FwcGVuZE9wY29kZSIsInRydXN0aW5nQXBwZW5kIiwiT3B0aW1pemVkVHJ1c3RpbmdBcHBlbmRPcGNvZGUiLCJ0ZXh0Iiwib3BlblByaW1pdGl2ZUVsZW1lbnQiLCJ0YWciLCJvcGVuRWxlbWVudFdpdGhPcGVyYXRpb25zIiwib3BlbkR5bmFtaWNFbGVtZW50IiwiZmx1c2hFbGVtZW50IiwiY2xvc2VFbGVtZW50Iiwic3RhdGljQXR0ciIsIl9uYW1lIiwiX25hbWVzcGFjZSIsIl92YWx1ZSIsIm5hbWVzcGFjZSIsInZhbHVlIiwiZHluYW1pY0F0dHJOUyIsInRydXN0aW5nIiwiZHluYW1pY0F0dHIiLCJjb21tZW50IiwiX2NvbW1lbnQiLCJtb2RpZmllciIsIl9kZWZpbml0aW9uIiwicHV0SXRlcmF0b3IiLCJlbnRlckxpc3QiLCJleGl0TGlzdCIsIml0ZXJhdGUiLCJicmVha3MiLCJzZXRWYXJpYWJsZSIsInN5bWJvbCIsImdldFZhcmlhYmxlIiwiZ2V0UHJvcGVydHkiLCJrZXkiLCJnZXRCbG9jayIsImhhc0Jsb2NrIiwiaGFzQmxvY2tQYXJhbXMiLCJjb25jYXQiLCJzaXplIiwiZnVuY3Rpb24iLCJmIiwiZnVuYyIsImxvYWQiLCJyZWdpc3RlciIsImZldGNoIiwiZHVwIiwic3AiLCJvZmZzZXQiLCJwdXNoUmVtb3RlRWxlbWVudCIsInBvcFJlbW90ZUVsZW1lbnQiLCJwdXNoUm9vdFNjb3BlIiwiYmluZENhbGxlclNjb3BlIiwicHVzaENoaWxkU2NvcGUiLCJwb3BTY29wZSIsInJldHVyblRvIiwicmEiLCJwdXNoRHluYW1pY1Njb3BlIiwicG9wRHluYW1pY1Njb3BlIiwicHVzaEltbWVkaWF0ZSIsInByaW1pdGl2ZSIsIl9wcmltaXRpdmUiLCJFcnJvciIsImhlbHBlciIsInB1c2hCbG9jayIsImJsb2NrIiwiYmluZER5bmFtaWNTY29wZSIsIl9uYW1lcyIsIm5hbWVzIiwiZW50ZXIiLCJhcmdzIiwiZXhpdCIsInJldHVybiIsInB1c2hGcmFtZSIsInBvcEZyYW1lIiwiY29tcGlsZUR5bmFtaWNCbG9jayIsImludm9rZUR5bmFtaWMiLCJpbnZva2VyIiwiaW52b2tlU3RhdGljIiwiY2FsbGVyQ291bnQiLCJwYXJhbWV0ZXJzIiwic3ltYm9sVGFibGUiLCJjYWxsZWVDb3VudCIsImxlbmd0aCIsIk1hdGgiLCJtaW4iLCJpIiwiZnAiLCJfYmxvY2siLCJ0ZXN0IiwidGVzdEZ1bmMiLCJfZnVuYyIsIkNvbnN0VGVzdCIsIlNpbXBsZVRlc3QiLCJFbnZpcm9ubWVudFRlc3QiLCJqdW1wIiwianVtcElmIiwianVtcFVubGVzcyIsIl9zdHJpbmciLCJuIiwiaXNDb21waWxhYmxlRXhwcmVzc2lvbiIsImV4cHIiLCJjb21waWxlIiwiT3Bjb2RlQnVpbGRlciIsImNvbXBvbmVudCIsImNvbXBpbGVBcmdzIiwicGFyYW1zIiwiaGFzaCIsInBvc2l0aW9uYWwiLCJ2YWwiLCJndWFyZGVkQXBwZW5kIiwiZXhwcmVzc2lvbiIsInJlZmVyZW5jZSIsImNyZWF0ZSIsImludm9rZUNvbXBvbmVudCIsImF0dHJzIiwiaW52ZXJzZSIsInMwIiwic2NhbiIsInRlbXBsYXRlIiwic3RhdGVtZW50cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBQ0E7O0FBQ0E7O0lBQVlBLE87O0FBQ1o7O0lBQVlDLEU7Ozs7OztBQUNaLE1BQU1DLE1BQU4sQ0FBYTtBQUNUQyxrQkFBYztBQUNWLGFBQUtDLE1BQUwsR0FBYyxpQkFBZDtBQUNBLGFBQUtDLE9BQUwsR0FBZSxFQUFmO0FBQ0g7QUFDREMsVUFBTUMsSUFBTixFQUFZQyxLQUFaLEVBQW1CO0FBQ2YsYUFBS0osTUFBTCxDQUFZRyxJQUFaLElBQW9CQyxLQUFwQjtBQUNIO0FBQ0RDLFdBQU9DLEVBQVAsRUFBV0MsTUFBWCxFQUFtQkYsTUFBbkIsRUFBMkI7QUFDdkIsYUFBS0osT0FBTCxDQUFhTyxJQUFiLENBQWtCLEVBQUVGLEVBQUYsRUFBTUMsTUFBTixFQUFjRixNQUFkLEVBQWxCO0FBQ0g7QUFD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QUFLakksZ0JBQUwsQ0FBc0Isa0JBQVNpSSxFQUEvQjtBQUNBLGFBQUtoSSxrQkFBTCxDQUF3QixrQkFBU2dJLEVBQWpDO0FBQ0EsYUFBS3pDLGFBQUwsQ0FBbUIsbUNBQXdCdUMsU0FBU0EsTUFBTUcsSUFBTixFQUFqQyxDQUFuQjtBQUNBLGFBQUs1QyxRQUFMO0FBQ0EsYUFBS3BCLFFBQUw7QUFDQSxhQUFLSSxlQUFMO0FBQ0EsYUFBS3hFLDBCQUFMO0FBQ0EsYUFBS3lELElBQUwsQ0FBVSxrQkFBUzBFLEVBQW5CO0FBQ0g7QUFDREUsYUFBU3RELEtBQVQsRUFBZ0I7QUFDWixZQUFJLENBQUNBLEtBQUwsRUFBWSxPQUFPLElBQVA7QUFDWixlQUFPLHVCQUFtQixLQUFLaEgsSUFBeEIsRUFBOEJnSCxNQUFNdUQsVUFBcEMsRUFBZ0R2RCxNQUFNZSxVQUF0RCxDQUFQO0FBQ0g7QUFuRnlEO2tCQUF6Q3VCLGEiLCJmaWxlIjoibGliL2NvbXBpbGVkL29wY29kZXMvYnVpbGRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRpY3QsIEVNUFRZX0FSUkFZLCBleHBlY3QsIGZpbGxOdWxscywgU3RhY2sgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IENvbXBvbmVudEJ1aWxkZXIgfSBmcm9tICcuLi8uLi9jb21waWxlcic7XG5pbXBvcnQgeyBSZWdpc3RlciB9IGZyb20gJy4uLy4uL29wY29kZXMnO1xuaW1wb3J0IHsgZXhwciwgSW52b2tlRHluYW1pY0xheW91dCB9IGZyb20gJy4uLy4uL3N5bnRheC9mdW5jdGlvbnMnO1xuaW1wb3J0IFJhd0lubGluZUJsb2NrIGZyb20gJy4uLy4uL3N5bnRheC9yYXctYmxvY2snO1xuaW1wb3J0IHsgSXNDb21wb25lbnREZWZpbml0aW9uUmVmZXJlbmNlIH0gZnJvbSAnLi4vb3Bjb2Rlcy9jb250ZW50JztcbmltcG9ydCAqIGFzIGNvbnRlbnQgZnJvbSAnLi9jb250ZW50JztcbmltcG9ydCAqIGFzIHZtIGZyb20gJy4vdm0nO1xuY2xhc3MgTGFiZWxzIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5sYWJlbHMgPSBkaWN0KCk7XG4gICAgICAgIHRoaXMudGFyZ2V0cyA9IFtdO1xuICAgIH1cbiAgICBsYWJlbChuYW1lLCBpbmRleCkge1xuICAgICAgICB0aGlzLmxhYmVsc1tuYW1lXSA9IGluZGV4O1xuICAgIH1cbiAgICB0YXJnZXQoYXQsIFRhcmdldCwgdGFyZ2V0KSB7XG4gICAgICAgIHRoaXMudGFyZ2V0cy5wdXNoKHsgYXQsIFRhcmdldCwgdGFyZ2V0IH0pO1xuICAgIH1cbiAgICBwYXRjaChvcGNvZGVzKSB7XG4gICAgICAgIGZvciAobGV0IHsgYXQsIFRhcmdldCwgdGFyZ2V0IH0gb2YgdGhpcy50YXJnZXRzKSB7XG4gICAgICAgICAgICBvcGNvZGVzLnNldChhdCwgVGFyZ2V0LCB0aGlzLmxhYmVsc1t0YXJnZXRdKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBCYXNpY09wY29kZUJ1aWxkZXIge1xuICAgIGNvbnN0cnVjdG9yKGVudiwgbWV0YSwgcHJvZ3JhbSkge1xuICAgICAgICB0aGlzLmVudiA9IGVudjtcbiAgICAgICAgdGhpcy5tZXRhID0gbWV0YTtcbiAgICAgICAgdGhpcy5wcm9ncmFtID0gcHJvZ3JhbTtcbiAgICAgICAgdGhpcy5sYWJlbHNTdGFjayA9IG5ldyBTdGFjaygpO1xuICAgICAgICB0aGlzLmNvbnN0YW50cyA9IGVudi5jb25zdGFudHM7XG4gICAgICAgIHRoaXMuc3RhcnQgPSBwcm9ncmFtLm5leHQ7XG4gICAgfVxuICAgIGdldCBwb3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2dyYW0uY3VycmVudDtcbiAgICB9XG4gICAgZ2V0IG5leHRQb3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2dyYW0ubmV4dDtcbiAgICB9XG4gICAgdXB2YXJzKGNvdW50KSB7XG4gICAgICAgIHJldHVybiBmaWxsTnVsbHMoY291bnQpO1xuICAgIH1cbiAgICByZXNlcnZlKG5hbWUpIHtcbiAgICAgICAgdGhpcy5wdXNoKG5hbWUsIDAsIDAsIDApO1xuICAgIH1cbiAgICBwdXNoKG5hbWUsIG9wMSA9IDAsIG9wMiA9IDAsIG9wMyA9IDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZ3JhbS5wdXNoKG5hbWUsIG9wMSwgb3AyLCBvcDMpO1xuICAgIH1cbiAgICBmaW5hbGl6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHVzaCgyMiAvKiBSZXR1cm4gKi8pO1xuICAgIH1cbiAgICAvLyBhcmdzXG4gICAgcHVzaEFyZ3Moc3ludGhldGljKSB7XG4gICAgICAgIHRoaXMucHVzaCg1NyAvKiBQdXNoQXJncyAqLywgc3ludGhldGljID09PSB0cnVlID8gMSA6IDApO1xuICAgIH1cbiAgICAvLyBoZWxwZXJzXG4gICAgZ2V0IGxhYmVscygpIHtcbiAgICAgICAgcmV0dXJuIGV4cGVjdCh0aGlzLmxhYmVsc1N0YWNrLmN1cnJlbnQsICdidWc6IG5vdCBpbiBhIGxhYmVsIHN0YWNrJyk7XG4gICAgfVxuICAgIHN0YXJ0TGFiZWxzKCkge1xuICAgICAgICB0aGlzLmxhYmVsc1N0YWNrLnB1c2gobmV3IExhYmVscygpKTtcbiAgICB9XG4gICAgc3RvcExhYmVscygpIHtcbiAgICAgICAgbGV0IGxhYmVsID0gZXhwZWN0KHRoaXMubGFiZWxzU3RhY2sucG9wKCksICd1bmJhbGFuY2VkIHB1c2ggYW5kIHBvcCBsYWJlbHMnKTtcbiAgICAgICAgbGFiZWwucGF0Y2godGhpcy5wcm9ncmFtKTtcbiAgICB9XG4gICAgLy8gY29tcG9uZW50c1xuICAgIHB1c2hDb21wb25lbnRNYW5hZ2VyKGRlZmluaXRpb24pIHtcbiAgICAgICAgdGhpcy5wdXNoKDU1IC8qIFB1c2hDb21wb25lbnRNYW5hZ2VyICovLCB0aGlzLm90aGVyKGRlZmluaXRpb24pKTtcbiAgICB9XG4gICAgcHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyKCkge1xuICAgICAgICB0aGlzLnB1c2goNTYgLyogUHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyICovKTtcbiAgICB9XG4gICAgcHJlcGFyZUFyZ3Moc3RhdGUpIHtcbiAgICAgICAgdGhpcy5wdXNoKDU4IC8qIFByZXBhcmVBcmdzICovLCBzdGF0ZSk7XG4gICAgfVxuICAgIGNyZWF0ZUNvbXBvbmVudChzdGF0ZSwgaGFzRGVmYXVsdCwgaGFzSW52ZXJzZSkge1xuICAgICAgICBsZXQgZmxhZyA9IChoYXNEZWZhdWx0ID09PSB0cnVlID8gMSA6IDApIHwgKGhhc0ludmVyc2UgPT09IHRydWUgPyAxIDogMCkgPDwgMTtcbiAgICAgICAgdGhpcy5wdXNoKDU5IC8qIENyZWF0ZUNvbXBvbmVudCAqLywgZmxhZywgc3RhdGUpO1xuICAgIH1cbiAgICByZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3Ioc3RhdGUpIHtcbiAgICAgICAgdGhpcy5wdXNoKDYwIC8qIFJlZ2lzdGVyQ29tcG9uZW50RGVzdHJ1Y3RvciAqLywgc3RhdGUpO1xuICAgIH1cbiAgICBiZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uKCkge1xuICAgICAgICB0aGlzLnB1c2goNjQgLyogQmVnaW5Db21wb25lbnRUcmFuc2FjdGlvbiAqLyk7XG4gICAgfVxuICAgIGNvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uKCkge1xuICAgICAgICB0aGlzLnB1c2goNjUgLyogQ29tbWl0Q29tcG9uZW50VHJhbnNhY3Rpb24gKi8pO1xuICAgIH1cbiAgICBwdXNoQ29tcG9uZW50T3BlcmF0aW9ucygpIHtcbiAgICAgICAgdGhpcy5wdXNoKDYxIC8qIFB1c2hDb21wb25lbnRPcGVyYXRpb25zICovKTtcbiAgICB9XG4gICAgZ2V0Q29tcG9uZW50U2VsZihzdGF0ZSkge1xuICAgICAgICB0aGlzLnB1c2goNjIgLyogR2V0Q29tcG9uZW50U2VsZiAqLywgc3RhdGUpO1xuICAgIH1cbiAgICBnZXRDb21wb25lbnRMYXlvdXQoc3RhdGUpIHtcbiAgICAgICAgdGhpcy5wdXNoKDYzIC8qIEdldENvbXBvbmVudExheW91dCAqLywgc3RhdGUpO1xuICAgIH1cbiAgICBkaWRDcmVhdGVFbGVtZW50KHN0YXRlKSB7XG4gICAgICAgIHRoaXMucHVzaCg2NiAvKiBEaWRDcmVhdGVFbGVtZW50ICovLCBzdGF0ZSk7XG4gICAgfVxuICAgIGRpZFJlbmRlckxheW91dChzdGF0ZSkge1xuICAgICAgICB0aGlzLnB1c2goNjcgLyogRGlkUmVuZGVyTGF5b3V0ICovLCBzdGF0ZSk7XG4gICAgfVxuICAgIC8vIHBhcnRpYWxcbiAgICBnZXRQYXJ0aWFsVGVtcGxhdGUoKSB7XG4gICAgICAgIHRoaXMucHVzaCg2OCAvKiBHZXRQYXJ0aWFsVGVtcGxhdGUgKi8pO1xuICAgIH1cbiAgICByZXNvbHZlTWF5YmVMb2NhbChuYW1lKSB7XG4gICAgICAgIHRoaXMucHVzaCg2OSAvKiBSZXNvbHZlTWF5YmVMb2NhbCAqLywgdGhpcy5zdHJpbmcobmFtZSkpO1xuICAgIH1cbiAgICAvLyBkZWJ1Z2dlclxuICAgIGRlYnVnZ2VyKHN5bWJvbHMsIGV2YWxJbmZvKSB7XG4gICAgICAgIHRoaXMucHVzaCg3MCAvKiBEZWJ1Z2dlciAqLywgdGhpcy5jb25zdGFudHMub3RoZXIoc3ltYm9scyksIHRoaXMuY29uc3RhbnRzLmFycmF5KGV2YWxJbmZvKSk7XG4gICAgfVxuICAgIC8vIGNvbnRlbnRcbiAgICBkeW5hbWljQ29udGVudChPcGNvZGUpIHtcbiAgICAgICAgdGhpcy5wdXNoKDI1IC8qIER5bmFtaWNDb250ZW50ICovLCB0aGlzLm90aGVyKE9wY29kZSkpO1xuICAgIH1cbiAgICBjYXV0aW91c0FwcGVuZCgpIHtcbiAgICAgICAgdGhpcy5keW5hbWljQ29udGVudChuZXcgY29udGVudC5PcHRpbWl6ZWRDYXV0aW91c0FwcGVuZE9wY29kZSgpKTtcbiAgICB9XG4gICAgdHJ1c3RpbmdBcHBlbmQoKSB7XG4gICAgICAgIHRoaXMuZHluYW1pY0NvbnRlbnQobmV3IGNvbnRlbnQuT3B0aW1pemVkVHJ1c3RpbmdBcHBlbmRPcGNvZGUoKSk7XG4gICAgfVxuICAgIC8vIGRvbVxuICAgIHRleHQodGV4dCkge1xuICAgICAgICB0aGlzLnB1c2goMjMgLyogVGV4dCAqLywgdGhpcy5jb25zdGFudHMuc3RyaW5nKHRleHQpKTtcbiAgICB9XG4gICAgb3BlblByaW1pdGl2ZUVsZW1lbnQodGFnKSB7XG4gICAgICAgIHRoaXMucHVzaCgyNiAvKiBPcGVuRWxlbWVudCAqLywgdGhpcy5jb25zdGFudHMuc3RyaW5nKHRhZykpO1xuICAgIH1cbiAgICBvcGVuRWxlbWVudFdpdGhPcGVyYXRpb25zKHRhZykge1xuICAgICAgICB0aGlzLnB1c2goMjcgLyogT3BlbkVsZW1lbnRXaXRoT3BlcmF0aW9ucyAqLywgdGhpcy5jb25zdGFudHMuc3RyaW5nKHRhZykpO1xuICAgIH1cbiAgICBvcGVuRHluYW1pY0VsZW1lbnQoKSB7XG4gICAgICAgIHRoaXMucHVzaCgyOCAvKiBPcGVuRHluYW1pY0VsZW1lbnQgKi8pO1xuICAgIH1cbiAgICBmbHVzaEVsZW1lbnQoKSB7XG4gICAgICAgIHRoaXMucHVzaCgzMiAvKiBGbHVzaEVsZW1lbnQgKi8pO1xuICAgIH1cbiAgICBjbG9zZUVsZW1lbnQoKSB7XG4gICAgICAgIHRoaXMucHVzaCgzMyAvKiBDbG9zZUVsZW1lbnQgKi8pO1xuICAgIH1cbiAgICBzdGF0aWNBdHRyKF9uYW1lLCBfbmFtZXNwYWNlLCBfdmFsdWUpIHtcbiAgICAgICAgbGV0IG5hbWUgPSB0aGlzLmNvbnN0YW50cy5zdHJpbmcoX25hbWUpO1xuICAgICAgICBsZXQgbmFtZXNwYWNlID0gX25hbWVzcGFjZSA/IHRoaXMuY29uc3RhbnRzLnN0cmluZyhfbmFtZXNwYWNlKSA6IDA7XG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY29uc3RhbnRzLnN0cmluZyhfdmFsdWUpO1xuICAgICAgICB0aGlzLnB1c2goMjkgLyogU3RhdGljQXR0ciAqLywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZSk7XG4gICAgfVxuICAgIGR5bmFtaWNBdHRyTlMoX25hbWUsIF9uYW1lc3BhY2UsIHRydXN0aW5nKSB7XG4gICAgICAgIGxldCBuYW1lID0gdGhpcy5jb25zdGFudHMuc3RyaW5nKF9uYW1lKTtcbiAgICAgICAgbGV0IG5hbWVzcGFjZSA9IHRoaXMuY29uc3RhbnRzLnN0cmluZyhfbmFtZXNwYWNlKTtcbiAgICAgICAgdGhpcy5wdXNoKDMxIC8qIER5bmFtaWNBdHRyTlMgKi8sIG5hbWUsIG5hbWVzcGFjZSwgdHJ1c3RpbmcgPT09IHRydWUgPyAxIDogMCk7XG4gICAgfVxuICAgIGR5bmFtaWNBdHRyKF9uYW1lLCB0cnVzdGluZykge1xuICAgICAgICBsZXQgbmFtZSA9IHRoaXMuY29uc3RhbnRzLnN0cmluZyhfbmFtZSk7XG4gICAgICAgIHRoaXMucHVzaCgzMCAvKiBEeW5hbWljQXR0ciAqLywgbmFtZSwgdHJ1c3RpbmcgPT09IHRydWUgPyAxIDogMCk7XG4gICAgfVxuICAgIGNvbW1lbnQoX2NvbW1lbnQpIHtcbiAgICAgICAgbGV0IGNvbW1lbnQgPSB0aGlzLmNvbnN0YW50cy5zdHJpbmcoX2NvbW1lbnQpO1xuICAgICAgICB0aGlzLnB1c2goMjQgLyogQ29tbWVudCAqLywgY29tbWVudCk7XG4gICAgfVxuICAgIG1vZGlmaWVyKF9kZWZpbml0aW9uKSB7XG4gICAgICAgIHRoaXMucHVzaCgzNCAvKiBNb2RpZmllciAqLywgdGhpcy5vdGhlcihfZGVmaW5pdGlvbikpO1xuICAgIH1cbiAgICAvLyBsaXN0c1xuICAgIHB1dEl0ZXJhdG9yKCkge1xuICAgICAgICB0aGlzLnB1c2goNTMgLyogUHV0SXRlcmF0b3IgKi8pO1xuICAgIH1cbiAgICBlbnRlckxpc3Qoc3RhcnQpIHtcbiAgICAgICAgdGhpcy5yZXNlcnZlKDUxIC8qIEVudGVyTGlzdCAqLyk7XG4gICAgICAgIHRoaXMubGFiZWxzLnRhcmdldCh0aGlzLnBvcywgNTEgLyogRW50ZXJMaXN0ICovLCBzdGFydCk7XG4gICAgfVxuICAgIGV4aXRMaXN0KCkge1xuICAgICAgICB0aGlzLnB1c2goNTIgLyogRXhpdExpc3QgKi8pO1xuICAgIH1cbiAgICBpdGVyYXRlKGJyZWFrcykge1xuICAgICAgICB0aGlzLnJlc2VydmUoNTQgLyogSXRlcmF0ZSAqLyk7XG4gICAgICAgIHRoaXMubGFiZWxzLnRhcmdldCh0aGlzLnBvcywgNTQgLyogSXRlcmF0ZSAqLywgYnJlYWtzKTtcbiAgICB9XG4gICAgLy8gZXhwcmVzc2lvbnNcbiAgICBzZXRWYXJpYWJsZShzeW1ib2wpIHtcbiAgICAgICAgdGhpcy5wdXNoKDQgLyogU2V0VmFyaWFibGUgKi8sIHN5bWJvbCk7XG4gICAgfVxuICAgIGdldFZhcmlhYmxlKHN5bWJvbCkge1xuICAgICAgICB0aGlzLnB1c2goNSAvKiBHZXRWYXJpYWJsZSAqLywgc3ltYm9sKTtcbiAgICB9XG4gICAgZ2V0UHJvcGVydHkoa2V5KSB7XG4gICAgICAgIHRoaXMucHVzaCg2IC8qIEdldFByb3BlcnR5ICovLCB0aGlzLnN0cmluZyhrZXkpKTtcbiAgICB9XG4gICAgZ2V0QmxvY2soc3ltYm9sKSB7XG4gICAgICAgIHRoaXMucHVzaCg4IC8qIEdldEJsb2NrICovLCBzeW1ib2wpO1xuICAgIH1cbiAgICBoYXNCbG9jayhzeW1ib2wpIHtcbiAgICAgICAgdGhpcy5wdXNoKDkgLyogSGFzQmxvY2sgKi8sIHN5bWJvbCk7XG4gICAgfVxuICAgIGhhc0Jsb2NrUGFyYW1zKHN5bWJvbCkge1xuICAgICAgICB0aGlzLnB1c2goMTAgLyogSGFzQmxvY2tQYXJhbXMgKi8sIHN5bWJvbCk7XG4gICAgfVxuICAgIGNvbmNhdChzaXplKSB7XG4gICAgICAgIHRoaXMucHVzaCgxMSAvKiBDb25jYXQgKi8sIHNpemUpO1xuICAgIH1cbiAgICBmdW5jdGlvbihmKSB7XG4gICAgICAgIHRoaXMucHVzaCgyIC8qIEZ1bmN0aW9uICovLCB0aGlzLmZ1bmMoZikpO1xuICAgIH1cbiAgICBsb2FkKHJlZ2lzdGVyKSB7XG4gICAgICAgIHRoaXMucHVzaCgxNyAvKiBMb2FkICovLCByZWdpc3Rlcik7XG4gICAgfVxuICAgIGZldGNoKHJlZ2lzdGVyKSB7XG4gICAgICAgIHRoaXMucHVzaCgxOCAvKiBGZXRjaCAqLywgcmVnaXN0ZXIpO1xuICAgIH1cbiAgICBkdXAocmVnaXN0ZXIgPSBSZWdpc3Rlci5zcCwgb2Zmc2V0ID0gMCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wdXNoKDE1IC8qIER1cCAqLywgcmVnaXN0ZXIsIG9mZnNldCk7XG4gICAgfVxuICAgIHBvcChjb3VudCA9IDEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHVzaCgxNiAvKiBQb3AgKi8sIGNvdW50KTtcbiAgICB9XG4gICAgLy8gdm1cbiAgICBwdXNoUmVtb3RlRWxlbWVudCgpIHtcbiAgICAgICAgdGhpcy5wdXNoKDM1IC8qIFB1c2hSZW1vdGVFbGVtZW50ICovKTtcbiAgICB9XG4gICAgcG9wUmVtb3RlRWxlbWVudCgpIHtcbiAgICAgICAgdGhpcy5wdXNoKDM2IC8qIFBvcFJlbW90ZUVsZW1lbnQgKi8pO1xuICAgIH1cbiAgICBsYWJlbChuYW1lKSB7XG4gICAgICAgIHRoaXMubGFiZWxzLmxhYmVsKG5hbWUsIHRoaXMubmV4dFBvcyk7XG4gICAgfVxuICAgIHB1c2hSb290U2NvcGUoc3ltYm9scywgYmluZENhbGxlclNjb3BlKSB7XG4gICAgICAgIHRoaXMucHVzaCgxOSAvKiBSb290U2NvcGUgKi8sIHN5bWJvbHMsIGJpbmRDYWxsZXJTY29wZSA/IDEgOiAwKTtcbiAgICB9XG4gICAgcHVzaENoaWxkU2NvcGUoKSB7XG4gICAgICAgIHRoaXMucHVzaCgyMCAvKiBDaGlsZFNjb3BlICovKTtcbiAgICB9XG4gICAgcG9wU2NvcGUoKSB7XG4gICAgICAgIHRoaXMucHVzaCgyMSAvKiBQb3BTY29wZSAqLyk7XG4gICAgfVxuICAgIHJldHVyblRvKGxhYmVsKSB7XG4gICAgICAgIHRoaXMucmVzZXJ2ZSgxMiAvKiBJbW1lZGlhdGUgKi8pO1xuICAgICAgICB0aGlzLmxhYmVscy50YXJnZXQodGhpcy5wb3MsIDEyIC8qIEltbWVkaWF0ZSAqLywgbGFiZWwpO1xuICAgICAgICB0aGlzLmxvYWQoUmVnaXN0ZXIucmEpO1xuICAgIH1cbiAgICBwdXNoRHluYW1pY1Njb3BlKCkge1xuICAgICAgICB0aGlzLnB1c2goMzggLyogUHVzaER5bmFtaWNTY29wZSAqLyk7XG4gICAgfVxuICAgIHBvcER5bmFtaWNTY29wZSgpIHtcbiAgICAgICAgdGhpcy5wdXNoKDM5IC8qIFBvcER5bmFtaWNTY29wZSAqLyk7XG4gICAgfVxuICAgIHB1c2hJbW1lZGlhdGUodmFsdWUpIHtcbiAgICAgICAgdGhpcy5wdXNoKDEzIC8qIENvbnN0YW50ICovLCB0aGlzLm90aGVyKHZhbHVlKSk7XG4gICAgfVxuICAgIHByaW1pdGl2ZShfcHJpbWl0aXZlKSB7XG4gICAgICAgIGxldCBmbGFnID0gMDtcbiAgICAgICAgbGV0IHByaW1pdGl2ZTtcbiAgICAgICAgc3dpdGNoICh0eXBlb2YgX3ByaW1pdGl2ZSkge1xuICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgICAgICBwcmltaXRpdmUgPSBfcHJpbWl0aXZlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgICAgICBwcmltaXRpdmUgPSB0aGlzLnN0cmluZyhfcHJpbWl0aXZlKTtcbiAgICAgICAgICAgICAgICBmbGFnID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgIHByaW1pdGl2ZSA9IF9wcmltaXRpdmUgfCAwO1xuICAgICAgICAgICAgICAgIGZsYWcgPSAyO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAgICAgICAgICAvLyBhc3N1bWUgbnVsbFxuICAgICAgICAgICAgICAgIHByaW1pdGl2ZSA9IDI7XG4gICAgICAgICAgICAgICAgZmxhZyA9IDI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd1bmRlZmluZWQnOlxuICAgICAgICAgICAgICAgIHByaW1pdGl2ZSA9IDM7XG4gICAgICAgICAgICAgICAgZmxhZyA9IDI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBwcmltaXRpdmUgcGFzc2VkIHRvIHB1c2hQcmltaXRpdmUnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnB1c2goMTQgLyogUHJpbWl0aXZlUmVmZXJlbmNlICovLCBmbGFnIDw8IDMwIHwgcHJpbWl0aXZlKTtcbiAgICB9XG4gICAgaGVscGVyKGZ1bmMpIHtcbiAgICAgICAgdGhpcy5wdXNoKDEgLyogSGVscGVyICovLCB0aGlzLmZ1bmMoZnVuYykpO1xuICAgIH1cbiAgICBwdXNoQmxvY2soYmxvY2spIHtcbiAgICAgICAgdGhpcy5wdXNoKDcgLyogUHVzaEJsb2NrICovLCB0aGlzLmJsb2NrKGJsb2NrKSk7XG4gICAgfVxuICAgIGJpbmREeW5hbWljU2NvcGUoX25hbWVzKSB7XG4gICAgICAgIHRoaXMucHVzaCgzNyAvKiBCaW5kRHluYW1pY1Njb3BlICovLCB0aGlzLm5hbWVzKF9uYW1lcykpO1xuICAgIH1cbiAgICBlbnRlcihhcmdzKSB7XG4gICAgICAgIHRoaXMucHVzaCg0OCAvKiBFbnRlciAqLywgYXJncyk7XG4gICAgfVxuICAgIGV4aXQoKSB7XG4gICAgICAgIHRoaXMucHVzaCg0OSAvKiBFeGl0ICovKTtcbiAgICB9XG4gICAgcmV0dXJuKCkge1xuICAgICAgICB0aGlzLnB1c2goMjIgLyogUmV0dXJuICovKTtcbiAgICB9XG4gICAgcHVzaEZyYW1lKCkge1xuICAgICAgICB0aGlzLnB1c2goNDYgLyogUHVzaEZyYW1lICovKTtcbiAgICB9XG4gICAgcG9wRnJhbWUoKSB7XG4gICAgICAgIHRoaXMucHVzaCg0NyAvKiBQb3BGcmFtZSAqLyk7XG4gICAgfVxuICAgIGNvbXBpbGVEeW5hbWljQmxvY2soKSB7XG4gICAgICAgIHRoaXMucHVzaCg0MCAvKiBDb21waWxlRHluYW1pY0Jsb2NrICovKTtcbiAgICB9XG4gICAgaW52b2tlRHluYW1pYyhpbnZva2VyKSB7XG4gICAgICAgIHRoaXMucHVzaCg0MiAvKiBJbnZva2VEeW5hbWljICovLCB0aGlzLm90aGVyKGludm9rZXIpKTtcbiAgICB9XG4gICAgaW52b2tlU3RhdGljKGJsb2NrLCBjYWxsZXJDb3VudCA9IDApIHtcbiAgICAgICAgbGV0IHsgcGFyYW1ldGVycyB9ID0gYmxvY2suc3ltYm9sVGFibGU7XG4gICAgICAgIGxldCBjYWxsZWVDb3VudCA9IHBhcmFtZXRlcnMubGVuZ3RoO1xuICAgICAgICBsZXQgY291bnQgPSBNYXRoLm1pbihjYWxsZXJDb3VudCwgY2FsbGVlQ291bnQpO1xuICAgICAgICB0aGlzLnB1c2hGcmFtZSgpO1xuICAgICAgICBpZiAoY291bnQpIHtcbiAgICAgICAgICAgIHRoaXMucHVzaENoaWxkU2NvcGUoKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuZHVwKFJlZ2lzdGVyLmZwLCBjYWxsZXJDb3VudCAtIGkpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFyaWFibGUocGFyYW1ldGVyc1tpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGV0IF9ibG9jayA9IHRoaXMuY29uc3RhbnRzLmJsb2NrKGJsb2NrKTtcbiAgICAgICAgdGhpcy5wdXNoKDQxIC8qIEludm9rZVN0YXRpYyAqLywgX2Jsb2NrKTtcbiAgICAgICAgaWYgKGNvdW50KSB7XG4gICAgICAgICAgICB0aGlzLnBvcFNjb3BlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wb3BGcmFtZSgpO1xuICAgIH1cbiAgICB0ZXN0KHRlc3RGdW5jKSB7XG4gICAgICAgIGxldCBfZnVuYztcbiAgICAgICAgaWYgKHRlc3RGdW5jID09PSAnY29uc3QnKSB7XG4gICAgICAgICAgICBfZnVuYyA9IHZtLkNvbnN0VGVzdDtcbiAgICAgICAgfSBlbHNlIGlmICh0ZXN0RnVuYyA9PT0gJ3NpbXBsZScpIHtcbiAgICAgICAgICAgIF9mdW5jID0gdm0uU2ltcGxlVGVzdDtcbiAgICAgICAgfSBlbHNlIGlmICh0ZXN0RnVuYyA9PT0gJ2Vudmlyb25tZW50Jykge1xuICAgICAgICAgICAgX2Z1bmMgPSB2bS5FbnZpcm9ubWVudFRlc3Q7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHRlc3RGdW5jID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBfZnVuYyA9IHRlc3RGdW5jO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bnJlYWNoYWJsZScpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBmdW5jID0gdGhpcy5jb25zdGFudHMuZnVuY3Rpb24oX2Z1bmMpO1xuICAgICAgICB0aGlzLnB1c2goNTAgLyogVGVzdCAqLywgZnVuYyk7XG4gICAgfVxuICAgIGp1bXAodGFyZ2V0KSB7XG4gICAgICAgIHRoaXMucmVzZXJ2ZSg0MyAvKiBKdW1wICovKTtcbiAgICAgICAgdGhpcy5sYWJlbHMudGFyZ2V0KHRoaXMucG9zLCA0MyAvKiBKdW1wICovLCB0YXJnZXQpO1xuICAgIH1cbiAgICBqdW1wSWYodGFyZ2V0KSB7XG4gICAgICAgIHRoaXMucmVzZXJ2ZSg0NCAvKiBKdW1wSWYgKi8pO1xuICAgICAgICB0aGlzLmxhYmVscy50YXJnZXQodGhpcy5wb3MsIDQ0IC8qIEp1bXBJZiAqLywgdGFyZ2V0KTtcbiAgICB9XG4gICAganVtcFVubGVzcyh0YXJnZXQpIHtcbiAgICAgICAgdGhpcy5yZXNlcnZlKDQ1IC8qIEp1bXBVbmxlc3MgKi8pO1xuICAgICAgICB0aGlzLmxhYmVscy50YXJnZXQodGhpcy5wb3MsIDQ1IC8qIEp1bXBVbmxlc3MgKi8sIHRhcmdldCk7XG4gICAgfVxuICAgIHN0cmluZyhfc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnN0YW50cy5zdHJpbmcoX3N0cmluZyk7XG4gICAgfVxuICAgIG5hbWVzKF9uYW1lcykge1xuICAgICAgICBsZXQgbmFtZXMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBfbmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBuID0gX25hbWVzW2ldO1xuICAgICAgICAgICAgbmFtZXNbaV0gPSB0aGlzLmNvbnN0YW50cy5zdHJpbmcobik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY29uc3RhbnRzLmFycmF5KG5hbWVzKTtcbiAgICB9XG4gICAgc3ltYm9scyhzeW1ib2xzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnN0YW50cy5hcnJheShzeW1ib2xzKTtcbiAgICB9XG4gICAgb3RoZXIodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uc3RhbnRzLm90aGVyKHZhbHVlKTtcbiAgICB9XG4gICAgYmxvY2soYmxvY2spIHtcbiAgICAgICAgcmV0dXJuIGJsb2NrID8gdGhpcy5jb25zdGFudHMuYmxvY2soYmxvY2spIDogMDtcbiAgICB9XG4gICAgZnVuYyhmdW5jKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnN0YW50cy5mdW5jdGlvbihmdW5jKTtcbiAgICB9XG59XG5mdW5jdGlvbiBpc0NvbXBpbGFibGVFeHByZXNzaW9uKGV4cHIpIHtcbiAgICByZXR1cm4gdHlwZW9mIGV4cHIgPT09ICdvYmplY3QnICYmIGV4cHIgIT09IG51bGwgJiYgdHlwZW9mIGV4cHIuY29tcGlsZSA9PT0gJ2Z1bmN0aW9uJztcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE9wY29kZUJ1aWxkZXIgZXh0ZW5kcyBCYXNpY09wY29kZUJ1aWxkZXIge1xuICAgIGNvbnN0cnVjdG9yKGVudiwgbWV0YSwgcHJvZ3JhbSA9IGVudi5wcm9ncmFtKSB7XG4gICAgICAgIHN1cGVyKGVudiwgbWV0YSwgcHJvZ3JhbSk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gbmV3IENvbXBvbmVudEJ1aWxkZXIodGhpcyk7XG4gICAgfVxuICAgIGNvbXBpbGVBcmdzKHBhcmFtcywgaGFzaCwgc3ludGhldGljKSB7XG4gICAgICAgIGxldCBwb3NpdGlvbmFsID0gMDtcbiAgICAgICAgaWYgKHBhcmFtcykge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJhbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBleHByKHBhcmFtc1tpXSwgdGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwb3NpdGlvbmFsID0gcGFyYW1zLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnB1c2hJbW1lZGlhdGUocG9zaXRpb25hbCk7XG4gICAgICAgIGxldCBuYW1lcyA9IEVNUFRZX0FSUkFZO1xuICAgICAgICBpZiAoaGFzaCkge1xuICAgICAgICAgICAgbmFtZXMgPSBoYXNoWzBdO1xuICAgICAgICAgICAgbGV0IHZhbCA9IGhhc2hbMV07XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGV4cHIodmFsW2ldLCB0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnB1c2hJbW1lZGlhdGUobmFtZXMpO1xuICAgICAgICB0aGlzLnB1c2hBcmdzKHN5bnRoZXRpYyk7XG4gICAgfVxuICAgIGNvbXBpbGUoZXhwcikge1xuICAgICAgICBpZiAoaXNDb21waWxhYmxlRXhwcmVzc2lvbihleHByKSkge1xuICAgICAgICAgICAgcmV0dXJuIGV4cHIuY29tcGlsZSh0aGlzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBleHByO1xuICAgICAgICB9XG4gICAgfVxuICAgIGd1YXJkZWRBcHBlbmQoZXhwcmVzc2lvbiwgdHJ1c3RpbmcpIHtcbiAgICAgICAgdGhpcy5zdGFydExhYmVscygpO1xuICAgICAgICB0aGlzLnB1c2hGcmFtZSgpO1xuICAgICAgICB0aGlzLnJldHVyblRvKCdFTkQnKTtcbiAgICAgICAgZXhwcihleHByZXNzaW9uLCB0aGlzKTtcbiAgICAgICAgdGhpcy5kdXAoKTtcbiAgICAgICAgdGhpcy50ZXN0KHJlZmVyZW5jZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gSXNDb21wb25lbnREZWZpbml0aW9uUmVmZXJlbmNlLmNyZWF0ZShyZWZlcmVuY2UpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5lbnRlcigyKTtcbiAgICAgICAgdGhpcy5qdW1wVW5sZXNzKCdFTFNFJyk7XG4gICAgICAgIHRoaXMucHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyKCk7XG4gICAgICAgIHRoaXMuaW52b2tlQ29tcG9uZW50KG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwpO1xuICAgICAgICB0aGlzLmV4aXQoKTtcbiAgICAgICAgdGhpcy5yZXR1cm4oKTtcbiAgICAgICAgdGhpcy5sYWJlbCgnRUxTRScpO1xuICAgICAgICBpZiAodHJ1c3RpbmcpIHtcbiAgICAgICAgICAgIHRoaXMudHJ1c3RpbmdBcHBlbmQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2F1dGlvdXNBcHBlbmQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmV4aXQoKTtcbiAgICAgICAgdGhpcy5yZXR1cm4oKTtcbiAgICAgICAgdGhpcy5sYWJlbCgnRU5EJyk7XG4gICAgICAgIHRoaXMucG9wRnJhbWUoKTtcbiAgICAgICAgdGhpcy5zdG9wTGFiZWxzKCk7XG4gICAgfVxuICAgIGludm9rZUNvbXBvbmVudChhdHRycywgcGFyYW1zLCBoYXNoLCBibG9jaywgaW52ZXJzZSA9IG51bGwpIHtcbiAgICAgICAgdGhpcy5mZXRjaChSZWdpc3Rlci5zMCk7XG4gICAgICAgIHRoaXMuZHVwKFJlZ2lzdGVyLnNwLCAxKTtcbiAgICAgICAgdGhpcy5sb2FkKFJlZ2lzdGVyLnMwKTtcbiAgICAgICAgdGhpcy5wdXNoQmxvY2soYmxvY2spO1xuICAgICAgICB0aGlzLnB1c2hCbG9jayhpbnZlcnNlKTtcbiAgICAgICAgdGhpcy5jb21waWxlQXJncyhwYXJhbXMsIGhhc2gsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5wcmVwYXJlQXJncyhSZWdpc3Rlci5zMCk7XG4gICAgICAgIHRoaXMuYmVnaW5Db21wb25lbnRUcmFuc2FjdGlvbigpO1xuICAgICAgICB0aGlzLnB1c2hEeW5hbWljU2NvcGUoKTtcbiAgICAgICAgdGhpcy5jcmVhdGVDb21wb25lbnQoUmVnaXN0ZXIuczAsIGJsb2NrICE9PSBudWxsLCBpbnZlcnNlICE9PSBudWxsKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3IoUmVnaXN0ZXIuczApO1xuICAgICAgICB0aGlzLmdldENvbXBvbmVudFNlbGYoUmVnaXN0ZXIuczApO1xuICAgICAgICB0aGlzLmdldENvbXBvbmVudExheW91dChSZWdpc3Rlci5zMCk7XG4gICAgICAgIHRoaXMuaW52b2tlRHluYW1pYyhuZXcgSW52b2tlRHluYW1pY0xheW91dChhdHRycyAmJiBhdHRycy5zY2FuKCkpKTtcbiAgICAgICAgdGhpcy5wb3BGcmFtZSgpO1xuICAgICAgICB0aGlzLnBvcFNjb3BlKCk7XG4gICAgICAgIHRoaXMucG9wRHluYW1pY1Njb3BlKCk7XG4gICAgICAgIHRoaXMuY29tbWl0Q29tcG9uZW50VHJhbnNhY3Rpb24oKTtcbiAgICAgICAgdGhpcy5sb2FkKFJlZ2lzdGVyLnMwKTtcbiAgICB9XG4gICAgdGVtcGxhdGUoYmxvY2spIHtcbiAgICAgICAgaWYgKCFibG9jaykgcmV0dXJuIG51bGw7XG4gICAgICAgIHJldHVybiBuZXcgUmF3SW5saW5lQmxvY2sodGhpcy5tZXRhLCBibG9jay5zdGF0ZW1lbnRzLCBibG9jay5wYXJhbWV0ZXJzKTtcbiAgICB9XG59Il19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21waWxlZC9vcGNvZGVzL2J1aWxkZXIuanMiXSwibmFtZXMiOlsiY29udGVudCIsInZtIiwiTGFiZWxzIiwiY29uc3RydWN0b3IiLCJsYWJlbHMiLCJ0YXJnZXRzIiwibGFiZWwiLCJuYW1lIiwiaW5kZXgiLCJ0YXJnZXQiLCJhdCIsIlRhcmdldCIsInB1c2giLCJwYXRjaCIsIm9wY29kZXMiLCJpIiwibGVuZ3RoIiwic2V0IiwiQmFzaWNPcGNvZGVCdWlsZGVyIiwiZW52IiwibWV0YSIsInByb2dyYW0iLCJsYWJlbHNTdGFjayIsImNvbnN0YW50cyIsInN0YXJ0IiwibmV4dCIsInBvcyIsImN1cnJlbnQiLCJuZXh0UG9zIiwidXB2YXJzIiwiY291bnQiLCJyZXNlcnZlIiwib3AxIiwib3AyIiwib3AzIiwiZmluYWxpemUiLCJwdXNoQXJncyIsInN5bnRoZXRpYyIsInN0YXJ0TGFiZWxzIiwic3RvcExhYmVscyIsInBvcCIsInB1c2hDb21wb25lbnRNYW5hZ2VyIiwiZGVmaW5pdGlvbiIsIm90aGVyIiwicHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyIiwicHJlcGFyZUFyZ3MiLCJzdGF0ZSIsImNyZWF0ZUNvbXBvbmVudCIsImhhc0RlZmF1bHQiLCJoYXNJbnZlcnNlIiwiZmxhZyIsInJlZ2lzdGVyQ29tcG9uZW50RGVzdHJ1Y3RvciIsImJlZ2luQ29tcG9uZW50VHJhbnNhY3Rpb24iLCJjb21taXRDb21wb25lbnRUcmFuc2FjdGlvbiIsInB1c2hDb21wb25lbnRPcGVyYXRpb25zIiwiZ2V0Q29tcG9uZW50U2VsZiIsImdldENvbXBvbmVudExheW91dCIsImRpZENyZWF0ZUVsZW1lbnQiLCJkaWRSZW5kZXJMYXlvdXQiLCJnZXRQYXJ0aWFsVGVtcGxhdGUiLCJyZXNvbHZlTWF5YmVMb2NhbCIsInN0cmluZyIsImRlYnVnZ2VyIiwic3ltYm9scyIsImV2YWxJbmZvIiwiYXJyYXkiLCJkeW5hbWljQ29udGVudCIsIk9wY29kZSIsImNhdXRpb3VzQXBwZW5kIiwiT3B0aW1pemVkQ2F1dGlvdXNBcHBlbmRPcGNvZGUiLCJ0cnVzdGluZ0FwcGVuZCIsIk9wdGltaXplZFRydXN0aW5nQXBwZW5kT3Bjb2RlIiwidGV4dCIsIm9wZW5QcmltaXRpdmVFbGVtZW50IiwidGFnIiwib3BlbkVsZW1lbnRXaXRoT3BlcmF0aW9ucyIsIm9wZW5EeW5hbWljRWxlbWVudCIsImZsdXNoRWxlbWVudCIsImNsb3NlRWxlbWVudCIsInN0YXRpY0F0dHIiLCJfbmFtZSIsIl9uYW1lc3BhY2UiLCJfdmFsdWUiLCJuYW1lc3BhY2UiLCJ2YWx1ZSIsImR5bmFtaWNBdHRyTlMiLCJ0cnVzdGluZyIsImR5bmFtaWNBdHRyIiwiY29tbWVudCIsIl9jb21tZW50IiwibW9kaWZpZXIiLCJfZGVmaW5pdGlvbiIsInB1dEl0ZXJhdG9yIiwiZW50ZXJMaXN0IiwiZXhpdExpc3QiLCJpdGVyYXRlIiwiYnJlYWtzIiwic2V0VmFyaWFibGUiLCJzeW1ib2wiLCJnZXRWYXJpYWJsZSIsImdldFByb3BlcnR5Iiwia2V5IiwiZ2V0QmxvY2siLCJoYXNCbG9jayIsImhhc0Jsb2NrUGFyYW1zIiwiY29uY2F0Iiwic2l6ZSIsImZ1bmN0aW9uIiwiZiIsImZ1bmMiLCJsb2FkIiwicmVnaXN0ZXIiLCJmZXRjaCIsImR1cCIsInNwIiwib2Zmc2V0IiwicHVzaFJlbW90ZUVsZW1lbnQiLCJwb3BSZW1vdGVFbGVtZW50IiwicHVzaFJvb3RTY29wZSIsImJpbmRDYWxsZXJTY29wZSIsInB1c2hDaGlsZFNjb3BlIiwicG9wU2NvcGUiLCJyZXR1cm5UbyIsInJhIiwicHVzaER5bmFtaWNTY29wZSIsInBvcER5bmFtaWNTY29wZSIsInB1c2hJbW1lZGlhdGUiLCJwcmltaXRpdmUiLCJfcHJpbWl0aXZlIiwiRXJyb3IiLCJoZWxwZXIiLCJwdXNoQmxvY2siLCJibG9jayIsImJpbmREeW5hbWljU2NvcGUiLCJfbmFtZXMiLCJuYW1lcyIsImVudGVyIiwiYXJncyIsImV4aXQiLCJyZXR1cm4iLCJwdXNoRnJhbWUiLCJwb3BGcmFtZSIsImNvbXBpbGVEeW5hbWljQmxvY2siLCJpbnZva2VEeW5hbWljIiwiaW52b2tlciIsImludm9rZVN0YXRpYyIsImNhbGxlckNvdW50IiwicGFyYW1ldGVycyIsInN5bWJvbFRhYmxlIiwiY2FsbGVlQ291bnQiLCJNYXRoIiwibWluIiwiZnAiLCJfYmxvY2siLCJ0ZXN0IiwidGVzdEZ1bmMiLCJfZnVuYyIsIkNvbnN0VGVzdCIsIlNpbXBsZVRlc3QiLCJFbnZpcm9ubWVudFRlc3QiLCJqdW1wIiwianVtcElmIiwianVtcFVubGVzcyIsIl9zdHJpbmciLCJuIiwiaXNDb21waWxhYmxlRXhwcmVzc2lvbiIsImV4cHIiLCJjb21waWxlIiwiT3Bjb2RlQnVpbGRlciIsImNvbXBvbmVudCIsImNvbXBpbGVBcmdzIiwicGFyYW1zIiwiaGFzaCIsInBvc2l0aW9uYWwiLCJ2YWwiLCJndWFyZGVkQXBwZW5kIiwiZXhwcmVzc2lvbiIsInJlZmVyZW5jZSIsImNyZWF0ZSIsImludm9rZUNvbXBvbmVudCIsImF0dHJzIiwiaW52ZXJzZSIsInMwIiwic2NhbiIsInRlbXBsYXRlIiwic3RhdGVtZW50cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBQ0E7O0FBQ0E7O0lBQVlBLE87O0FBQ1o7O0lBQVlDLEU7Ozs7OztBQUNaLE1BQU1DLE1BQU4sQ0FBYTtBQUNUQyxrQkFBYztBQUNWLGFBQUtDLE1BQUwsR0FBYyxpQkFBZDtBQUNBLGFBQUtDLE9BQUwsR0FBZSxFQUFmO0FBQ0g7QUFDREMsVUFBTUMsSUFBTixFQUFZQyxLQUFaLEVBQW1CO0FBQ2YsYUFBS0osTUFBTCxDQUFZRyxJQUFaLElBQW9CQyxLQUFwQjtBQUNIO0FBQ0RDLFdBQU9DLEVBQVAsRUFBV0MsTUFBWCxFQUFtQkYsTUFBbkIsRUFBMkI7QUFDdkIsYUFBS0osT0FBTCxDQUFhTyxJQUFiLENBQWtCLEVBQUVGLEVBQUYsRUFBTUMsTUFBTixFQUFjRixNQUFkLEVBQWxCO0FBQ0g7QUFD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QUs3RSxlQUFMLENBQXFCLGtCQUFTdUksRUFBOUIsRUFBa0NsRCxVQUFVLElBQTVDLEVBQWtEaUQsWUFBWSxJQUE5RDtBQUNBLGFBQUtsSSwyQkFBTCxDQUFpQyxrQkFBU21JLEVBQTFDO0FBQ0EsYUFBSy9ILGdCQUFMLENBQXNCLGtCQUFTK0gsRUFBL0I7QUFDQSxhQUFLOUgsa0JBQUwsQ0FBd0Isa0JBQVM4SCxFQUFqQztBQUNBLGFBQUt2QyxhQUFMLENBQW1CLG1DQUF3QnFDLFNBQVNBLE1BQU1HLElBQU4sRUFBakMsQ0FBbkI7QUFDQSxhQUFLMUMsUUFBTDtBQUNBLGFBQUtwQixRQUFMO0FBQ0EsYUFBS0ksZUFBTDtBQUNBLGFBQUt4RSwwQkFBTDtBQUNBLGFBQUt5RCxJQUFMLENBQVUsa0JBQVN3RSxFQUFuQjtBQUNIO0FBQ0RFLGFBQVNwRCxLQUFULEVBQWdCO0FBQ1osWUFBSSxDQUFDQSxLQUFMLEVBQVksT0FBTyxJQUFQO0FBQ1osZUFBTyx1QkFBbUIsS0FBS2hILElBQXhCLEVBQThCZ0gsTUFBTXFELFVBQXBDLEVBQWdEckQsTUFBTWUsVUFBdEQsQ0FBUDtBQUNIO0FBbkZ5RDtrQkFBekNxQixhIiwiZmlsZSI6ImxpYi9jb21waWxlZC9vcGNvZGVzL2J1aWxkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkaWN0LCBFTVBUWV9BUlJBWSwgZXhwZWN0LCBmaWxsTnVsbHMsIFN0YWNrIH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQgeyBDb21wb25lbnRCdWlsZGVyIH0gZnJvbSAnLi4vLi4vY29tcGlsZXInO1xuaW1wb3J0IHsgUmVnaXN0ZXIgfSBmcm9tICcuLi8uLi9vcGNvZGVzJztcbmltcG9ydCB7IGV4cHIsIEludm9rZUR5bmFtaWNMYXlvdXQgfSBmcm9tICcuLi8uLi9zeW50YXgvZnVuY3Rpb25zJztcbmltcG9ydCBSYXdJbmxpbmVCbG9jayBmcm9tICcuLi8uLi9zeW50YXgvcmF3LWJsb2NrJztcbmltcG9ydCB7IElzQ29tcG9uZW50RGVmaW5pdGlvblJlZmVyZW5jZSB9IGZyb20gJy4uL29wY29kZXMvY29udGVudCc7XG5pbXBvcnQgKiBhcyBjb250ZW50IGZyb20gJy4vY29udGVudCc7XG5pbXBvcnQgKiBhcyB2bSBmcm9tICcuL3ZtJztcbmNsYXNzIExhYmVscyB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMubGFiZWxzID0gZGljdCgpO1xuICAgICAgICB0aGlzLnRhcmdldHMgPSBbXTtcbiAgICB9XG4gICAgbGFiZWwobmFtZSwgaW5kZXgpIHtcbiAgICAgICAgdGhpcy5sYWJlbHNbbmFtZV0gPSBpbmRleDtcbiAgICB9XG4gICAgdGFyZ2V0KGF0LCBUYXJnZXQsIHRhcmdldCkge1xuICAgICAgICB0aGlzLnRhcmdldHMucHVzaCh7IGF0LCBUYXJnZXQsIHRhcmdldCB9KTtcbiAgICB9XG4gICAgcGF0Y2gob3Bjb2Rlcykge1xuICAgICAgICBsZXQgeyB0YXJnZXRzLCBsYWJlbHMgfSA9IHRoaXM7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFyZ2V0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGV0IHsgYXQsIFRhcmdldCwgdGFyZ2V0IH0gPSB0YXJnZXRzW2ldO1xuICAgICAgICAgICAgb3Bjb2Rlcy5zZXQoYXQsIFRhcmdldCwgbGFiZWxzW3RhcmdldF0pO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEJhc2ljT3Bjb2RlQnVpbGRlciB7XG4gICAgY29uc3RydWN0b3IoZW52LCBtZXRhLCBwcm9ncmFtKSB7XG4gICAgICAgIHRoaXMuZW52ID0gZW52O1xuICAgICAgICB0aGlzLm1ldGEgPSBtZXRhO1xuICAgICAgICB0aGlzLnByb2dyYW0gPSBwcm9ncmFtO1xuICAgICAgICB0aGlzLmxhYmVsc1N0YWNrID0gbmV3IFN0YWNrKCk7XG4gICAgICAgIHRoaXMuY29uc3RhbnRzID0gZW52LmNvbnN0YW50cztcbiAgICAgICAgdGhpcy5zdGFydCA9IHByb2dyYW0ubmV4dDtcbiAgICB9XG4gICAgZ2V0IHBvcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZ3JhbS5jdXJyZW50O1xuICAgIH1cbiAgICBnZXQgbmV4dFBvcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZ3JhbS5uZXh0O1xuICAgIH1cbiAgICB1cHZhcnMoY291bnQpIHtcbiAgICAgICAgcmV0dXJuIGZpbGxOdWxscyhjb3VudCk7XG4gICAgfVxuICAgIHJlc2VydmUobmFtZSkge1xuICAgICAgICB0aGlzLnB1c2gobmFtZSwgMCwgMCwgMCk7XG4gICAgfVxuICAgIHB1c2gobmFtZSwgb3AxID0gMCwgb3AyID0gMCwgb3AzID0gMCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9ncmFtLnB1c2gobmFtZSwgb3AxLCBvcDIsIG9wMyk7XG4gICAgfVxuICAgIGZpbmFsaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wdXNoKDIyIC8qIFJldHVybiAqLyk7XG4gICAgfVxuICAgIC8vIGFyZ3NcbiAgICBwdXNoQXJncyhzeW50aGV0aWMpIHtcbiAgICAgICAgdGhpcy5wdXNoKDU3IC8qIFB1c2hBcmdzICovLCBzeW50aGV0aWMgPT09IHRydWUgPyAxIDogMCk7XG4gICAgfVxuICAgIC8vIGhlbHBlcnNcbiAgICBnZXQgbGFiZWxzKCkge1xuICAgICAgICByZXR1cm4gZXhwZWN0KHRoaXMubGFiZWxzU3RhY2suY3VycmVudCwgJ2J1Zzogbm90IGluIGEgbGFiZWwgc3RhY2snKTtcbiAgICB9XG4gICAgc3RhcnRMYWJlbHMoKSB7XG4gICAgICAgIHRoaXMubGFiZWxzU3RhY2sucHVzaChuZXcgTGFiZWxzKCkpO1xuICAgIH1cbiAgICBzdG9wTGFiZWxzKCkge1xuICAgICAgICBsZXQgbGFiZWwgPSBleHBlY3QodGhpcy5sYWJlbHNTdGFjay5wb3AoKSwgJ3VuYmFsYW5jZWQgcHVzaCBhbmQgcG9wIGxhYmVscycpO1xuICAgICAgICBsYWJlbC5wYXRjaCh0aGlzLnByb2dyYW0pO1xuICAgIH1cbiAgICAvLyBjb21wb25lbnRzXG4gICAgcHVzaENvbXBvbmVudE1hbmFnZXIoZGVmaW5pdGlvbikge1xuICAgICAgICB0aGlzLnB1c2goNTUgLyogUHVzaENvbXBvbmVudE1hbmFnZXIgKi8sIHRoaXMub3RoZXIoZGVmaW5pdGlvbikpO1xuICAgIH1cbiAgICBwdXNoRHluYW1pY0NvbXBvbmVudE1hbmFnZXIoKSB7XG4gICAgICAgIHRoaXMucHVzaCg1NiAvKiBQdXNoRHluYW1pY0NvbXBvbmVudE1hbmFnZXIgKi8pO1xuICAgIH1cbiAgICBwcmVwYXJlQXJncyhzdGF0ZSkge1xuICAgICAgICB0aGlzLnB1c2goNTggLyogUHJlcGFyZUFyZ3MgKi8sIHN0YXRlKTtcbiAgICB9XG4gICAgY3JlYXRlQ29tcG9uZW50KHN0YXRlLCBoYXNEZWZhdWx0LCBoYXNJbnZlcnNlKSB7XG4gICAgICAgIGxldCBmbGFnID0gKGhhc0RlZmF1bHQgPT09IHRydWUgPyAxIDogMCkgfCAoaGFzSW52ZXJzZSA9PT0gdHJ1ZSA/IDEgOiAwKSA8PCAxO1xuICAgICAgICB0aGlzLnB1c2goNTkgLyogQ3JlYXRlQ29tcG9uZW50ICovLCBmbGFnLCBzdGF0ZSk7XG4gICAgfVxuICAgIHJlZ2lzdGVyQ29tcG9uZW50RGVzdHJ1Y3RvcihzdGF0ZSkge1xuICAgICAgICB0aGlzLnB1c2goNjAgLyogUmVnaXN0ZXJDb21wb25lbnREZXN0cnVjdG9yICovLCBzdGF0ZSk7XG4gICAgfVxuICAgIGJlZ2luQ29tcG9uZW50VHJhbnNhY3Rpb24oKSB7XG4gICAgICAgIHRoaXMucHVzaCg2NCAvKiBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uICovKTtcbiAgICB9XG4gICAgY29tbWl0Q29tcG9uZW50VHJhbnNhY3Rpb24oKSB7XG4gICAgICAgIHRoaXMucHVzaCg2NSAvKiBDb21taXRDb21wb25lbnRUcmFuc2FjdGlvbiAqLyk7XG4gICAgfVxuICAgIHB1c2hDb21wb25lbnRPcGVyYXRpb25zKCkge1xuICAgICAgICB0aGlzLnB1c2goNjEgLyogUHVzaENvbXBvbmVudE9wZXJhdGlvbnMgKi8pO1xuICAgIH1cbiAgICBnZXRDb21wb25lbnRTZWxmKHN0YXRlKSB7XG4gICAgICAgIHRoaXMucHVzaCg2MiAvKiBHZXRDb21wb25lbnRTZWxmICovLCBzdGF0ZSk7XG4gICAgfVxuICAgIGdldENvbXBvbmVudExheW91dChzdGF0ZSkge1xuICAgICAgICB0aGlzLnB1c2goNjMgLyogR2V0Q29tcG9uZW50TGF5b3V0ICovLCBzdGF0ZSk7XG4gICAgfVxuICAgIGRpZENyZWF0ZUVsZW1lbnQoc3RhdGUpIHtcbiAgICAgICAgdGhpcy5wdXNoKDY2IC8qIERpZENyZWF0ZUVsZW1lbnQgKi8sIHN0YXRlKTtcbiAgICB9XG4gICAgZGlkUmVuZGVyTGF5b3V0KHN0YXRlKSB7XG4gICAgICAgIHRoaXMucHVzaCg2NyAvKiBEaWRSZW5kZXJMYXlvdXQgKi8sIHN0YXRlKTtcbiAgICB9XG4gICAgLy8gcGFydGlhbFxuICAgIGdldFBhcnRpYWxUZW1wbGF0ZSgpIHtcbiAgICAgICAgdGhpcy5wdXNoKDY4IC8qIEdldFBhcnRpYWxUZW1wbGF0ZSAqLyk7XG4gICAgfVxuICAgIHJlc29sdmVNYXliZUxvY2FsKG5hbWUpIHtcbiAgICAgICAgdGhpcy5wdXNoKDY5IC8qIFJlc29sdmVNYXliZUxvY2FsICovLCB0aGlzLnN0cmluZyhuYW1lKSk7XG4gICAgfVxuICAgIC8vIGRlYnVnZ2VyXG4gICAgZGVidWdnZXIoc3ltYm9scywgZXZhbEluZm8pIHtcbiAgICAgICAgdGhpcy5wdXNoKDcwIC8qIERlYnVnZ2VyICovLCB0aGlzLmNvbnN0YW50cy5vdGhlcihzeW1ib2xzKSwgdGhpcy5jb25zdGFudHMuYXJyYXkoZXZhbEluZm8pKTtcbiAgICB9XG4gICAgLy8gY29udGVudFxuICAgIGR5bmFtaWNDb250ZW50KE9wY29kZSkge1xuICAgICAgICB0aGlzLnB1c2goMjUgLyogRHluYW1pY0NvbnRlbnQgKi8sIHRoaXMub3RoZXIoT3Bjb2RlKSk7XG4gICAgfVxuICAgIGNhdXRpb3VzQXBwZW5kKCkge1xuICAgICAgICB0aGlzLmR5bmFtaWNDb250ZW50KG5ldyBjb250ZW50Lk9wdGltaXplZENhdXRpb3VzQXBwZW5kT3Bjb2RlKCkpO1xuICAgIH1cbiAgICB0cnVzdGluZ0FwcGVuZCgpIHtcbiAgICAgICAgdGhpcy5keW5hbWljQ29udGVudChuZXcgY29udGVudC5PcHRpbWl6ZWRUcnVzdGluZ0FwcGVuZE9wY29kZSgpKTtcbiAgICB9XG4gICAgLy8gZG9tXG4gICAgdGV4dCh0ZXh0KSB7XG4gICAgICAgIHRoaXMucHVzaCgyMyAvKiBUZXh0ICovLCB0aGlzLmNvbnN0YW50cy5zdHJpbmcodGV4dCkpO1xuICAgIH1cbiAgICBvcGVuUHJpbWl0aXZlRWxlbWVudCh0YWcpIHtcbiAgICAgICAgdGhpcy5wdXNoKDI2IC8qIE9wZW5FbGVtZW50ICovLCB0aGlzLmNvbnN0YW50cy5zdHJpbmcodGFnKSk7XG4gICAgfVxuICAgIG9wZW5FbGVtZW50V2l0aE9wZXJhdGlvbnModGFnKSB7XG4gICAgICAgIHRoaXMucHVzaCgyNyAvKiBPcGVuRWxlbWVudFdpdGhPcGVyYXRpb25zICovLCB0aGlzLmNvbnN0YW50cy5zdHJpbmcodGFnKSk7XG4gICAgfVxuICAgIG9wZW5EeW5hbWljRWxlbWVudCgpIHtcbiAgICAgICAgdGhpcy5wdXNoKDI4IC8qIE9wZW5EeW5hbWljRWxlbWVudCAqLyk7XG4gICAgfVxuICAgIGZsdXNoRWxlbWVudCgpIHtcbiAgICAgICAgdGhpcy5wdXNoKDMyIC8qIEZsdXNoRWxlbWVudCAqLyk7XG4gICAgfVxuICAgIGNsb3NlRWxlbWVudCgpIHtcbiAgICAgICAgdGhpcy5wdXNoKDMzIC8qIENsb3NlRWxlbWVudCAqLyk7XG4gICAgfVxuICAgIHN0YXRpY0F0dHIoX25hbWUsIF9uYW1lc3BhY2UsIF92YWx1ZSkge1xuICAgICAgICBsZXQgbmFtZSA9IHRoaXMuY29uc3RhbnRzLnN0cmluZyhfbmFtZSk7XG4gICAgICAgIGxldCBuYW1lc3BhY2UgPSBfbmFtZXNwYWNlID8gdGhpcy5jb25zdGFudHMuc3RyaW5nKF9uYW1lc3BhY2UpIDogMDtcbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5jb25zdGFudHMuc3RyaW5nKF92YWx1ZSk7XG4gICAgICAgIHRoaXMucHVzaCgyOSAvKiBTdGF0aWNBdHRyICovLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlKTtcbiAgICB9XG4gICAgZHluYW1pY0F0dHJOUyhfbmFtZSwgX25hbWVzcGFjZSwgdHJ1c3RpbmcpIHtcbiAgICAgICAgbGV0IG5hbWUgPSB0aGlzLmNvbnN0YW50cy5zdHJpbmcoX25hbWUpO1xuICAgICAgICBsZXQgbmFtZXNwYWNlID0gdGhpcy5jb25zdGFudHMuc3RyaW5nKF9uYW1lc3BhY2UpO1xuICAgICAgICB0aGlzLnB1c2goMzEgLyogRHluYW1pY0F0dHJOUyAqLywgbmFtZSwgbmFtZXNwYWNlLCB0cnVzdGluZyA9PT0gdHJ1ZSA/IDEgOiAwKTtcbiAgICB9XG4gICAgZHluYW1pY0F0dHIoX25hbWUsIHRydXN0aW5nKSB7XG4gICAgICAgIGxldCBuYW1lID0gdGhpcy5jb25zdGFudHMuc3RyaW5nKF9uYW1lKTtcbiAgICAgICAgdGhpcy5wdXNoKDMwIC8qIER5bmFtaWNBdHRyICovLCBuYW1lLCB0cnVzdGluZyA9PT0gdHJ1ZSA/IDEgOiAwKTtcbiAgICB9XG4gICAgY29tbWVudChfY29tbWVudCkge1xuICAgICAgICBsZXQgY29tbWVudCA9IHRoaXMuY29uc3RhbnRzLnN0cmluZyhfY29tbWVudCk7XG4gICAgICAgIHRoaXMucHVzaCgyNCAvKiBDb21tZW50ICovLCBjb21tZW50KTtcbiAgICB9XG4gICAgbW9kaWZpZXIoX2RlZmluaXRpb24pIHtcbiAgICAgICAgdGhpcy5wdXNoKDM0IC8qIE1vZGlmaWVyICovLCB0aGlzLm90aGVyKF9kZWZpbml0aW9uKSk7XG4gICAgfVxuICAgIC8vIGxpc3RzXG4gICAgcHV0SXRlcmF0b3IoKSB7XG4gICAgICAgIHRoaXMucHVzaCg1MyAvKiBQdXRJdGVyYXRvciAqLyk7XG4gICAgfVxuICAgIGVudGVyTGlzdChzdGFydCkge1xuICAgICAgICB0aGlzLnJlc2VydmUoNTEgLyogRW50ZXJMaXN0ICovKTtcbiAgICAgICAgdGhpcy5sYWJlbHMudGFyZ2V0KHRoaXMucG9zLCA1MSAvKiBFbnRlckxpc3QgKi8sIHN0YXJ0KTtcbiAgICB9XG4gICAgZXhpdExpc3QoKSB7XG4gICAgICAgIHRoaXMucHVzaCg1MiAvKiBFeGl0TGlzdCAqLyk7XG4gICAgfVxuICAgIGl0ZXJhdGUoYnJlYWtzKSB7XG4gICAgICAgIHRoaXMucmVzZXJ2ZSg1NCAvKiBJdGVyYXRlICovKTtcbiAgICAgICAgdGhpcy5sYWJlbHMudGFyZ2V0KHRoaXMucG9zLCA1NCAvKiBJdGVyYXRlICovLCBicmVha3MpO1xuICAgIH1cbiAgICAvLyBleHByZXNzaW9uc1xuICAgIHNldFZhcmlhYmxlKHN5bWJvbCkge1xuICAgICAgICB0aGlzLnB1c2goNCAvKiBTZXRWYXJpYWJsZSAqLywgc3ltYm9sKTtcbiAgICB9XG4gICAgZ2V0VmFyaWFibGUoc3ltYm9sKSB7XG4gICAgICAgIHRoaXMucHVzaCg1IC8qIEdldFZhcmlhYmxlICovLCBzeW1ib2wpO1xuICAgIH1cbiAgICBnZXRQcm9wZXJ0eShrZXkpIHtcbiAgICAgICAgdGhpcy5wdXNoKDYgLyogR2V0UHJvcGVydHkgKi8sIHRoaXMuc3RyaW5nKGtleSkpO1xuICAgIH1cbiAgICBnZXRCbG9jayhzeW1ib2wpIHtcbiAgICAgICAgdGhpcy5wdXNoKDggLyogR2V0QmxvY2sgKi8sIHN5bWJvbCk7XG4gICAgfVxuICAgIGhhc0Jsb2NrKHN5bWJvbCkge1xuICAgICAgICB0aGlzLnB1c2goOSAvKiBIYXNCbG9jayAqLywgc3ltYm9sKTtcbiAgICB9XG4gICAgaGFzQmxvY2tQYXJhbXMoc3ltYm9sKSB7XG4gICAgICAgIHRoaXMucHVzaCgxMCAvKiBIYXNCbG9ja1BhcmFtcyAqLywgc3ltYm9sKTtcbiAgICB9XG4gICAgY29uY2F0KHNpemUpIHtcbiAgICAgICAgdGhpcy5wdXNoKDExIC8qIENvbmNhdCAqLywgc2l6ZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uKGYpIHtcbiAgICAgICAgdGhpcy5wdXNoKDIgLyogRnVuY3Rpb24gKi8sIHRoaXMuZnVuYyhmKSk7XG4gICAgfVxuICAgIGxvYWQocmVnaXN0ZXIpIHtcbiAgICAgICAgdGhpcy5wdXNoKDE3IC8qIExvYWQgKi8sIHJlZ2lzdGVyKTtcbiAgICB9XG4gICAgZmV0Y2gocmVnaXN0ZXIpIHtcbiAgICAgICAgdGhpcy5wdXNoKDE4IC8qIEZldGNoICovLCByZWdpc3Rlcik7XG4gICAgfVxuICAgIGR1cChyZWdpc3RlciA9IFJlZ2lzdGVyLnNwLCBvZmZzZXQgPSAwKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnB1c2goMTUgLyogRHVwICovLCByZWdpc3Rlciwgb2Zmc2V0KTtcbiAgICB9XG4gICAgcG9wKGNvdW50ID0gMSkge1xuICAgICAgICByZXR1cm4gdGhpcy5wdXNoKDE2IC8qIFBvcCAqLywgY291bnQpO1xuICAgIH1cbiAgICAvLyB2bVxuICAgIHB1c2hSZW1vdGVFbGVtZW50KCkge1xuICAgICAgICB0aGlzLnB1c2goMzUgLyogUHVzaFJlbW90ZUVsZW1lbnQgKi8pO1xuICAgIH1cbiAgICBwb3BSZW1vdGVFbGVtZW50KCkge1xuICAgICAgICB0aGlzLnB1c2goMzYgLyogUG9wUmVtb3RlRWxlbWVudCAqLyk7XG4gICAgfVxuICAgIGxhYmVsKG5hbWUpIHtcbiAgICAgICAgdGhpcy5sYWJlbHMubGFiZWwobmFtZSwgdGhpcy5uZXh0UG9zKTtcbiAgICB9XG4gICAgcHVzaFJvb3RTY29wZShzeW1ib2xzLCBiaW5kQ2FsbGVyU2NvcGUpIHtcbiAgICAgICAgdGhpcy5wdXNoKDE5IC8qIFJvb3RTY29wZSAqLywgc3ltYm9scywgYmluZENhbGxlclNjb3BlID8gMSA6IDApO1xuICAgIH1cbiAgICBwdXNoQ2hpbGRTY29wZSgpIHtcbiAgICAgICAgdGhpcy5wdXNoKDIwIC8qIENoaWxkU2NvcGUgKi8pO1xuICAgIH1cbiAgICBwb3BTY29wZSgpIHtcbiAgICAgICAgdGhpcy5wdXNoKDIxIC8qIFBvcFNjb3BlICovKTtcbiAgICB9XG4gICAgcmV0dXJuVG8obGFiZWwpIHtcbiAgICAgICAgdGhpcy5yZXNlcnZlKDEyIC8qIEltbWVkaWF0ZSAqLyk7XG4gICAgICAgIHRoaXMubGFiZWxzLnRhcmdldCh0aGlzLnBvcywgMTIgLyogSW1tZWRpYXRlICovLCBsYWJlbCk7XG4gICAgICAgIHRoaXMubG9hZChSZWdpc3Rlci5yYSk7XG4gICAgfVxuICAgIHB1c2hEeW5hbWljU2NvcGUoKSB7XG4gICAgICAgIHRoaXMucHVzaCgzOCAvKiBQdXNoRHluYW1pY1Njb3BlICovKTtcbiAgICB9XG4gICAgcG9wRHluYW1pY1Njb3BlKCkge1xuICAgICAgICB0aGlzLnB1c2goMzkgLyogUG9wRHluYW1pY1Njb3BlICovKTtcbiAgICB9XG4gICAgcHVzaEltbWVkaWF0ZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLnB1c2goMTMgLyogQ29uc3RhbnQgKi8sIHRoaXMub3RoZXIodmFsdWUpKTtcbiAgICB9XG4gICAgcHJpbWl0aXZlKF9wcmltaXRpdmUpIHtcbiAgICAgICAgbGV0IGZsYWcgPSAwO1xuICAgICAgICBsZXQgcHJpbWl0aXZlO1xuICAgICAgICBzd2l0Y2ggKHR5cGVvZiBfcHJpbWl0aXZlKSB7XG4gICAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgICAgIHByaW1pdGl2ZSA9IF9wcmltaXRpdmU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICAgICAgICAgIHByaW1pdGl2ZSA9IHRoaXMuc3RyaW5nKF9wcmltaXRpdmUpO1xuICAgICAgICAgICAgICAgIGZsYWcgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgcHJpbWl0aXZlID0gX3ByaW1pdGl2ZSB8IDA7XG4gICAgICAgICAgICAgICAgZmxhZyA9IDI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICAgICAgICAgIC8vIGFzc3VtZSBudWxsXG4gICAgICAgICAgICAgICAgcHJpbWl0aXZlID0gMjtcbiAgICAgICAgICAgICAgICBmbGFnID0gMjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgICAgICAgICAgcHJpbWl0aXZlID0gMztcbiAgICAgICAgICAgICAgICBmbGFnID0gMjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHByaW1pdGl2ZSBwYXNzZWQgdG8gcHVzaFByaW1pdGl2ZScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHVzaCgxNCAvKiBQcmltaXRpdmVSZWZlcmVuY2UgKi8sIGZsYWcgPDwgMzAgfCBwcmltaXRpdmUpO1xuICAgIH1cbiAgICBoZWxwZXIoZnVuYykge1xuICAgICAgICB0aGlzLnB1c2goMSAvKiBIZWxwZXIgKi8sIHRoaXMuZnVuYyhmdW5jKSk7XG4gICAgfVxuICAgIHB1c2hCbG9jayhibG9jaykge1xuICAgICAgICB0aGlzLnB1c2goNyAvKiBQdXNoQmxvY2sgKi8sIHRoaXMuYmxvY2soYmxvY2spKTtcbiAgICB9XG4gICAgYmluZER5bmFtaWNTY29wZShfbmFtZXMpIHtcbiAgICAgICAgdGhpcy5wdXNoKDM3IC8qIEJpbmREeW5hbWljU2NvcGUgKi8sIHRoaXMubmFtZXMoX25hbWVzKSk7XG4gICAgfVxuICAgIGVudGVyKGFyZ3MpIHtcbiAgICAgICAgdGhpcy5wdXNoKDQ4IC8qIEVudGVyICovLCBhcmdzKTtcbiAgICB9XG4gICAgZXhpdCgpIHtcbiAgICAgICAgdGhpcy5wdXNoKDQ5IC8qIEV4aXQgKi8pO1xuICAgIH1cbiAgICByZXR1cm4oKSB7XG4gICAgICAgIHRoaXMucHVzaCgyMiAvKiBSZXR1cm4gKi8pO1xuICAgIH1cbiAgICBwdXNoRnJhbWUoKSB7XG4gICAgICAgIHRoaXMucHVzaCg0NiAvKiBQdXNoRnJhbWUgKi8pO1xuICAgIH1cbiAgICBwb3BGcmFtZSgpIHtcbiAgICAgICAgdGhpcy5wdXNoKDQ3IC8qIFBvcEZyYW1lICovKTtcbiAgICB9XG4gICAgY29tcGlsZUR5bmFtaWNCbG9jaygpIHtcbiAgICAgICAgdGhpcy5wdXNoKDQwIC8qIENvbXBpbGVEeW5hbWljQmxvY2sgKi8pO1xuICAgIH1cbiAgICBpbnZva2VEeW5hbWljKGludm9rZXIpIHtcbiAgICAgICAgdGhpcy5wdXNoKDQyIC8qIEludm9rZUR5bmFtaWMgKi8sIHRoaXMub3RoZXIoaW52b2tlcikpO1xuICAgIH1cbiAgICBpbnZva2VTdGF0aWMoYmxvY2ssIGNhbGxlckNvdW50ID0gMCkge1xuICAgICAgICBsZXQgeyBwYXJhbWV0ZXJzIH0gPSBibG9jay5zeW1ib2xUYWJsZTtcbiAgICAgICAgbGV0IGNhbGxlZUNvdW50ID0gcGFyYW1ldGVycy5sZW5ndGg7XG4gICAgICAgIGxldCBjb3VudCA9IE1hdGgubWluKGNhbGxlckNvdW50LCBjYWxsZWVDb3VudCk7XG4gICAgICAgIHRoaXMucHVzaEZyYW1lKCk7XG4gICAgICAgIGlmIChjb3VudCkge1xuICAgICAgICAgICAgdGhpcy5wdXNoQ2hpbGRTY29wZSgpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kdXAoUmVnaXN0ZXIuZnAsIGNhbGxlckNvdW50IC0gaSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWYXJpYWJsZShwYXJhbWV0ZXJzW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZXQgX2Jsb2NrID0gdGhpcy5jb25zdGFudHMuYmxvY2soYmxvY2spO1xuICAgICAgICB0aGlzLnB1c2goNDEgLyogSW52b2tlU3RhdGljICovLCBfYmxvY2spO1xuICAgICAgICBpZiAoY291bnQpIHtcbiAgICAgICAgICAgIHRoaXMucG9wU2NvcGUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBvcEZyYW1lKCk7XG4gICAgfVxuICAgIHRlc3QodGVzdEZ1bmMpIHtcbiAgICAgICAgbGV0IF9mdW5jO1xuICAgICAgICBpZiAodGVzdEZ1bmMgPT09ICdjb25zdCcpIHtcbiAgICAgICAgICAgIF9mdW5jID0gdm0uQ29uc3RUZXN0O1xuICAgICAgICB9IGVsc2UgaWYgKHRlc3RGdW5jID09PSAnc2ltcGxlJykge1xuICAgICAgICAgICAgX2Z1bmMgPSB2bS5TaW1wbGVUZXN0O1xuICAgICAgICB9IGVsc2UgaWYgKHRlc3RGdW5jID09PSAnZW52aXJvbm1lbnQnKSB7XG4gICAgICAgICAgICBfZnVuYyA9IHZtLkVudmlyb25tZW50VGVzdDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdGVzdEZ1bmMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIF9mdW5jID0gdGVzdEZ1bmM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VucmVhY2hhYmxlJyk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGZ1bmMgPSB0aGlzLmNvbnN0YW50cy5mdW5jdGlvbihfZnVuYyk7XG4gICAgICAgIHRoaXMucHVzaCg1MCAvKiBUZXN0ICovLCBmdW5jKTtcbiAgICB9XG4gICAganVtcCh0YXJnZXQpIHtcbiAgICAgICAgdGhpcy5yZXNlcnZlKDQzIC8qIEp1bXAgKi8pO1xuICAgICAgICB0aGlzLmxhYmVscy50YXJnZXQodGhpcy5wb3MsIDQzIC8qIEp1bXAgKi8sIHRhcmdldCk7XG4gICAgfVxuICAgIGp1bXBJZih0YXJnZXQpIHtcbiAgICAgICAgdGhpcy5yZXNlcnZlKDQ0IC8qIEp1bXBJZiAqLyk7XG4gICAgICAgIHRoaXMubGFiZWxzLnRhcmdldCh0aGlzLnBvcywgNDQgLyogSnVtcElmICovLCB0YXJnZXQpO1xuICAgIH1cbiAgICBqdW1wVW5sZXNzKHRhcmdldCkge1xuICAgICAgICB0aGlzLnJlc2VydmUoNDUgLyogSnVtcFVubGVzcyAqLyk7XG4gICAgICAgIHRoaXMubGFiZWxzLnRhcmdldCh0aGlzLnBvcywgNDUgLyogSnVtcFVubGVzcyAqLywgdGFyZ2V0KTtcbiAgICB9XG4gICAgc3RyaW5nKF9zdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uc3RhbnRzLnN0cmluZyhfc3RyaW5nKTtcbiAgICB9XG4gICAgbmFtZXMoX25hbWVzKSB7XG4gICAgICAgIGxldCBuYW1lcyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IF9uYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGV0IG4gPSBfbmFtZXNbaV07XG4gICAgICAgICAgICBuYW1lc1tpXSA9IHRoaXMuY29uc3RhbnRzLnN0cmluZyhuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jb25zdGFudHMuYXJyYXkobmFtZXMpO1xuICAgIH1cbiAgICBzeW1ib2xzKHN5bWJvbHMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uc3RhbnRzLmFycmF5KHN5bWJvbHMpO1xuICAgIH1cbiAgICBvdGhlcih2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25zdGFudHMub3RoZXIodmFsdWUpO1xuICAgIH1cbiAgICBibG9jayhibG9jaykge1xuICAgICAgICByZXR1cm4gYmxvY2sgPyB0aGlzLmNvbnN0YW50cy5ibG9jayhibG9jaykgOiAwO1xuICAgIH1cbiAgICBmdW5jKGZ1bmMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uc3RhbnRzLmZ1bmN0aW9uKGZ1bmMpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGlzQ29tcGlsYWJsZUV4cHJlc3Npb24oZXhwcikge1xuICAgIHJldHVybiB0eXBlb2YgZXhwciA9PT0gJ29iamVjdCcgJiYgZXhwciAhPT0gbnVsbCAmJiB0eXBlb2YgZXhwci5jb21waWxlID09PSAnZnVuY3Rpb24nO1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT3Bjb2RlQnVpbGRlciBleHRlbmRzIEJhc2ljT3Bjb2RlQnVpbGRlciB7XG4gICAgY29uc3RydWN0b3IoZW52LCBtZXRhLCBwcm9ncmFtID0gZW52LnByb2dyYW0pIHtcbiAgICAgICAgc3VwZXIoZW52LCBtZXRhLCBwcm9ncmFtKTtcbiAgICAgICAgdGhpcy5jb21wb25lbnQgPSBuZXcgQ29tcG9uZW50QnVpbGRlcih0aGlzKTtcbiAgICB9XG4gICAgY29tcGlsZUFyZ3MocGFyYW1zLCBoYXNoLCBzeW50aGV0aWMpIHtcbiAgICAgICAgbGV0IHBvc2l0aW9uYWwgPSAwO1xuICAgICAgICBpZiAocGFyYW1zKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcmFtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGV4cHIocGFyYW1zW2ldLCB0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBvc2l0aW9uYWwgPSBwYXJhbXMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHVzaEltbWVkaWF0ZShwb3NpdGlvbmFsKTtcbiAgICAgICAgbGV0IG5hbWVzID0gRU1QVFlfQVJSQVk7XG4gICAgICAgIGlmIChoYXNoKSB7XG4gICAgICAgICAgICBuYW1lcyA9IGhhc2hbMF07XG4gICAgICAgICAgICBsZXQgdmFsID0gaGFzaFsxXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgZXhwcih2YWxbaV0sIHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMucHVzaEltbWVkaWF0ZShuYW1lcyk7XG4gICAgICAgIHRoaXMucHVzaEFyZ3Moc3ludGhldGljKTtcbiAgICB9XG4gICAgY29tcGlsZShleHByKSB7XG4gICAgICAgIGlmIChpc0NvbXBpbGFibGVFeHByZXNzaW9uKGV4cHIpKSB7XG4gICAgICAgICAgICByZXR1cm4gZXhwci5jb21waWxlKHRoaXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ3VhcmRlZEFwcGVuZChleHByZXNzaW9uLCB0cnVzdGluZykge1xuICAgICAgICB0aGlzLnN0YXJ0TGFiZWxzKCk7XG4gICAgICAgIHRoaXMucHVzaEZyYW1lKCk7XG4gICAgICAgIHRoaXMucmV0dXJuVG8oJ0VORCcpO1xuICAgICAgICBleHByKGV4cHJlc3Npb24sIHRoaXMpO1xuICAgICAgICB0aGlzLmR1cCgpO1xuICAgICAgICB0aGlzLnRlc3QocmVmZXJlbmNlID0+IHtcbiAgICAgICAgICAgIHJldHVybiBJc0NvbXBvbmVudERlZmluaXRpb25SZWZlcmVuY2UuY3JlYXRlKHJlZmVyZW5jZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmVudGVyKDIpO1xuICAgICAgICB0aGlzLmp1bXBVbmxlc3MoJ0VMU0UnKTtcbiAgICAgICAgdGhpcy5wdXNoRHluYW1pY0NvbXBvbmVudE1hbmFnZXIoKTtcbiAgICAgICAgdGhpcy5pbnZva2VDb21wb25lbnQobnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICAgIHRoaXMuZXhpdCgpO1xuICAgICAgICB0aGlzLnJldHVybigpO1xuICAgICAgICB0aGlzLmxhYmVsKCdFTFNFJyk7XG4gICAgICAgIGlmICh0cnVzdGluZykge1xuICAgICAgICAgICAgdGhpcy50cnVzdGluZ0FwcGVuZCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jYXV0aW91c0FwcGVuZCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXhpdCgpO1xuICAgICAgICB0aGlzLnJldHVybigpO1xuICAgICAgICB0aGlzLmxhYmVsKCdFTkQnKTtcbiAgICAgICAgdGhpcy5wb3BGcmFtZSgpO1xuICAgICAgICB0aGlzLnN0b3BMYWJlbHMoKTtcbiAgICB9XG4gICAgaW52b2tlQ29tcG9uZW50KGF0dHJzLCBwYXJhbXMsIGhhc2gsIGJsb2NrLCBpbnZlcnNlID0gbnVsbCkge1xuICAgICAgICB0aGlzLmZldGNoKFJlZ2lzdGVyLnMwKTtcbiAgICAgICAgdGhpcy5kdXAoUmVnaXN0ZXIuc3AsIDEpO1xuICAgICAgICB0aGlzLmxvYWQoUmVnaXN0ZXIuczApO1xuICAgICAgICB0aGlzLnB1c2hCbG9jayhibG9jayk7XG4gICAgICAgIHRoaXMucHVzaEJsb2NrKGludmVyc2UpO1xuICAgICAgICB0aGlzLmNvbXBpbGVBcmdzKHBhcmFtcywgaGFzaCwgZmFsc2UpO1xuICAgICAgICB0aGlzLnByZXBhcmVBcmdzKFJlZ2lzdGVyLnMwKTtcbiAgICAgICAgdGhpcy5iZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uKCk7XG4gICAgICAgIHRoaXMucHVzaER5bmFtaWNTY29wZSgpO1xuICAgICAgICB0aGlzLmNyZWF0ZUNvbXBvbmVudChSZWdpc3Rlci5zMCwgYmxvY2sgIT09IG51bGwsIGludmVyc2UgIT09IG51bGwpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyQ29tcG9uZW50RGVzdHJ1Y3RvcihSZWdpc3Rlci5zMCk7XG4gICAgICAgIHRoaXMuZ2V0Q29tcG9uZW50U2VsZihSZWdpc3Rlci5zMCk7XG4gICAgICAgIHRoaXMuZ2V0Q29tcG9uZW50TGF5b3V0KFJlZ2lzdGVyLnMwKTtcbiAgICAgICAgdGhpcy5pbnZva2VEeW5hbWljKG5ldyBJbnZva2VEeW5hbWljTGF5b3V0KGF0dHJzICYmIGF0dHJzLnNjYW4oKSkpO1xuICAgICAgICB0aGlzLnBvcEZyYW1lKCk7XG4gICAgICAgIHRoaXMucG9wU2NvcGUoKTtcbiAgICAgICAgdGhpcy5wb3BEeW5hbWljU2NvcGUoKTtcbiAgICAgICAgdGhpcy5jb21taXRDb21wb25lbnRUcmFuc2FjdGlvbigpO1xuICAgICAgICB0aGlzLmxvYWQoUmVnaXN0ZXIuczApO1xuICAgIH1cbiAgICB0ZW1wbGF0ZShibG9jaykge1xuICAgICAgICBpZiAoIWJsb2NrKSByZXR1cm4gbnVsbDtcbiAgICAgICAgcmV0dXJuIG5ldyBSYXdJbmxpbmVCbG9jayh0aGlzLm1ldGEsIGJsb2NrLnN0YXRlbWVudHMsIGJsb2NrLnBhcmFtZXRlcnMpO1xuICAgIH1cbn0iXX0=

@@ -75,3 +75,3 @@ 'use strict';

let state = ({ definition, manager } = vm.fetchValue(_state));
let hasDefaultBlock = flags & 0b01;
let hasDefaultBlock = flags & 1;
let component = manager.create(vm.env, definition, args, dynamicScope, vm.getSelf(), !!hasDefaultBlock);

@@ -158,2 +158,2 @@ state.component = component;

exports.DidUpdateLayoutOpcode = DidUpdateLayoutOpcode;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21waWxlZC9vcGNvZGVzL2NvbXBvbmVudC5qcyJdLCJuYW1lcyI6WyJhZGQiLCJ2bSIsIm9wMSIsIl9kZWZpbml0aW9uIiwiZGVmaW5pdGlvbiIsImNvbnN0YW50cyIsImdldE90aGVyIiwic3RhY2siLCJwdXNoIiwibWFuYWdlciIsImNvbXBvbmVudCIsInJlZmVyZW5jZSIsInBvcCIsImNhY2hlIiwidW5kZWZpbmVkIiwicGVlayIsInZhbHVlIiwidXBkYXRlV2l0aCIsInN5bnRoZXRpYyIsInNldHVwIiwiX3N0YXRlIiwiZmV0Y2hWYWx1ZSIsImFyZ3MiLCJwcmVwYXJlZEFyZ3MiLCJwcmVwYXJlQXJncyIsImNsZWFyIiwicG9zaXRpb25hbCIsIm5hbWVkIiwicG9zaXRpb25hbENvdW50IiwibGVuZ3RoIiwiaSIsIm5hbWVzIiwiT2JqZWN0Iiwia2V5cyIsIm5hbWVkQ291bnQiLCJhdE5hbWVzIiwiYXROYW1lIiwiZmxhZ3MiLCJvcDIiLCJkeW5hbWljU2NvcGUiLCJzdGF0ZSIsImhhc0RlZmF1bHRCbG9jayIsImNyZWF0ZSIsImVudiIsImdldFNlbGYiLCJVcGRhdGVDb21wb25lbnRPcGNvZGUiLCJ0YWciLCJuYW1lIiwiZGVzdHJ1Y3RvciIsImdldERlc3RydWN0b3IiLCJuZXdEZXN0cm95YWJsZSIsImJlZ2luQ2FjaGVHcm91cCIsImVsZW1lbnRzIiwicHVzaFNpbXBsZUJsb2NrIiwiYWN0aW9uIiwiZGlkQ3JlYXRlRWxlbWVudCIsImV4cGVjdENvbnN0cnVjdGluZyIsImV4cGVjdE9wZXJhdGlvbnMiLCJsYXlvdXRGb3IiLCJib3VuZHMiLCJwb3BCbG9jayIsImRpZFJlbmRlckxheW91dCIsImRpZENyZWF0ZSIsIkRpZFVwZGF0ZUxheW91dE9wY29kZSIsImNvbW1pdENhY2hlR3JvdXAiLCJjb25zdHJ1Y3RvciIsInR5cGUiLCJjb21wb25lbnRUYWciLCJnZXRUYWciLCJldmFsdWF0ZSIsIl92bSIsInVwZGF0ZSIsInRvSlNPTiIsIkpT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YUFBS3BCLEdBQUw7QUFDSDtBQUNEdUIsYUFBU3BFLEVBQVQsRUFBYTtBQUNULFlBQUksRUFBRVEsT0FBRixFQUFXQyxTQUFYLEVBQXNCaUQsTUFBdEIsS0FBaUMsSUFBckM7QUFDQWxELGdCQUFRb0UsZUFBUixDQUF3Qm5FLFNBQXhCLEVBQW1DaUQsTUFBbkM7QUFDQTFELFdBQUcwQyxHQUFILENBQU9tQyxTQUFQLENBQWlCcEUsU0FBakIsRUFBNEJELE9BQTVCO0FBQ0g7QUFicUQ7UUFBN0NzRCxxQixHQUFBQSxxQiIsImZpbGUiOiJsaWIvY29tcGlsZWQvb3Bjb2Rlcy9jb21wb25lbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21iaW5lLCBDT05TVEFOVF9UQUcsIGlzQ29uc3QsIFJlZmVyZW5jZUNhY2hlIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IEFQUEVORF9PUENPREVTLCBVcGRhdGluZ09wY29kZSB9IGZyb20gJy4uLy4uL29wY29kZXMnO1xuaW1wb3J0IEFSR1MgZnJvbSAnLi4vLi4vdm0vYXJndW1lbnRzJztcbmltcG9ydCB7IENvbXBvbmVudEVsZW1lbnRPcGVyYXRpb25zIH0gZnJvbSAnLi9kb20nO1xuaW1wb3J0IHsgQXNzZXJ0IH0gZnJvbSAnLi92bSc7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTUgLyogUHVzaENvbXBvbmVudE1hbmFnZXIgKi8sICh2bSwgeyBvcDE6IF9kZWZpbml0aW9uIH0pID0+IHtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHZtLmNvbnN0YW50cy5nZXRPdGhlcihfZGVmaW5pdGlvbik7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgc3RhY2sucHVzaCh7IGRlZmluaXRpb24sIG1hbmFnZXI6IGRlZmluaXRpb24ubWFuYWdlciwgY29tcG9uZW50OiBudWxsIH0pO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTYgLyogUHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyICovLCB2bSA9PiB7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgbGV0IHJlZmVyZW5jZSA9IHN0YWNrLnBvcCgpO1xuICAgIGxldCBjYWNoZSA9IGlzQ29uc3QocmVmZXJlbmNlKSA/IHVuZGVmaW5lZCA6IG5ldyBSZWZlcmVuY2VDYWNoZShyZWZlcmVuY2UpO1xuICAgIGxldCBkZWZpbml0aW9uID0gY2FjaGUgPyBjYWNoZS5wZWVrKCkgOiByZWZlcmVuY2UudmFsdWUoKTtcbiAgICBzdGFjay5wdXNoKHsgZGVmaW5pdGlvbiwgbWFuYWdlcjogZGVmaW5pdGlvbi5tYW5hZ2VyLCBjb21wb25lbnQ6IG51bGwgfSk7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChjYWNoZSkpO1xuICAgIH1cbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDU3IC8qIFB1c2hBcmdzICovLCAodm0sIHsgb3AxOiBzeW50aGV0aWMgfSkgPT4ge1xuICAgIGxldCBzdGFjayA9IHZtLnN0YWNrO1xuICAgIEFSR1Muc2V0dXAoc3RhY2ssICEhc3ludGhldGljKTtcbiAgICBzdGFjay5wdXNoKEFSR1MpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTggLyogUHJlcGFyZUFyZ3MgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgbGV0IHsgZGVmaW5pdGlvbiwgbWFuYWdlciB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBhcmdzID0gc3RhY2sucG9wKCk7XG4gICAgbGV0IHByZXBhcmVkQXJncyA9IG1hbmFnZXIucHJlcGFyZUFyZ3MoZGVmaW5pdGlvbiwgYXJncyk7XG4gICAgaWYgKHByZXBhcmVkQXJncykge1xuICAgICAgICBhcmdzLmNsZWFyKCk7XG4gICAgICAgIGxldCB7IHBvc2l0aW9uYWwsIG5hbWVkIH0gPSBwcmVwYXJlZEFyZ3M7XG4gICAgICAgIGxldCBwb3NpdGlvbmFsQ291bnQgPSBwb3NpdGlvbmFsLmxlbmd0aDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb3NpdGlvbmFsQ291bnQ7IGkrKykge1xuICAgICAgICAgICAgc3RhY2sucHVzaChwb3NpdGlvbmFsW2ldKTtcbiAgICAgICAgfVxuICAgICAgICBzdGFjay5wdXNoKHBvc2l0aW9uYWxDb3VudCk7XG4gICAgICAgIGxldCBuYW1lcyA9IE9iamVjdC5rZXlzKG5hbWVkKTtcbiAgICAgICAgbGV0IG5hbWVkQ291bnQgPSBuYW1lcy5sZW5ndGg7XG4gICAgICAgIGxldCBhdE5hbWVzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZWRDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBuYW1lZFtuYW1lc1tpXV07XG4gICAgICAgICAgICBsZXQgYXROYW1lID0gYEAke25hbWVzW2ldfWA7XG4gICAgICAgICAgICBzdGFjay5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIGF0TmFtZXMucHVzaChhdE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHN0YWNrLnB1c2goYXROYW1lcyk7XG4gICAgICAgIGFyZ3Muc2V0dXAoc3RhY2ssIGZhbHNlKTtcbiAgICB9XG4gICAgc3RhY2sucHVzaChhcmdzKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDU5IC8qIENyZWF0ZUNvbXBvbmVudCAqLywgKHZtLCB7IG9wMTogZmxhZ3MsIG9wMjogX3N0YXRlIH0pID0+IHtcbiAgICBsZXQgZGVmaW5pdGlvbjtcbiAgICBsZXQgbWFuYWdlcjtcbiAgICBsZXQgYXJncyA9IHZtLnN0YWNrLnBvcCgpO1xuICAgIGxldCBkeW5hbWljU2NvcGUgPSB2bS5keW5hbWljU2NvcGUoKTtcbiAgICBsZXQgc3RhdGUgPSAoeyBkZWZpbml0aW9uLCBtYW5hZ2VyIH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSkpO1xuICAgIGxldCBoYXNEZWZhdWx0QmxvY2sgPSBmbGFncyAmIDBiMDE7XG4gICAgbGV0IGNvbXBvbmVudCA9IG1hbmFnZXIuY3JlYXRlKHZtLmVudiwgZGVmaW5pdGlvbiwgYXJncywgZHluYW1pY1Njb3BlLCB2bS5nZXRTZWxmKCksICEhaGFzRGVmYXVsdEJsb2NrKTtcbiAgICBzdGF0ZS5jb21wb25lbnQgPSBjb21wb25lbnQ7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlQ29tcG9uZW50T3Bjb2RlKGFyZ3MudGFnLCBkZWZpbml0aW9uLm5hbWUsIGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlKSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2MCAvKiBSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3IgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHsgbWFuYWdlciwgY29tcG9uZW50IH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgbGV0IGRlc3RydWN0b3IgPSBtYW5hZ2VyLmdldERlc3RydWN0b3IoY29tcG9uZW50KTtcbiAgICBpZiAoZGVzdHJ1Y3Rvcikgdm0ubmV3RGVzdHJveWFibGUoZGVzdHJ1Y3Rvcik7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2NCAvKiBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uICovLCB2bSA9PiB7XG4gICAgdm0uYmVnaW5DYWNoZUdyb3VwKCk7XG4gICAgdm0uZWxlbWVudHMoKS5wdXNoU2ltcGxlQmxvY2soKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDYxIC8qIFB1c2hDb21wb25lbnRPcGVyYXRpb25zICovLCB2bSA9PiB7XG4gICAgdm0uc3RhY2sucHVzaChuZXcgQ29tcG9uZW50RWxlbWVudE9wZXJhdGlvbnModm0uZW52KSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2NiAvKiBEaWRDcmVhdGVFbGVtZW50ICovLCAodm0sIHsgb3AxOiBfc3RhdGUgfSkgPT4ge1xuICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBhY3Rpb24gPSAnRGlkQ3JlYXRlRWxlbWVudE9wY29kZSNldmFsdWF0ZSc7XG4gICAgbWFuYWdlci5kaWRDcmVhdGVFbGVtZW50KGNvbXBvbmVudCwgdm0uZWxlbWVudHMoKS5leHBlY3RDb25zdHJ1Y3RpbmcoYWN0aW9uKSwgdm0uZWxlbWVudHMoKS5leHBlY3RPcGVyYXRpb25zKGFjdGlvbikpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNjIgLyogR2V0Q29tcG9uZW50U2VsZiAqLywgKHZtLCB7IG9wMTogX3N0YXRlIH0pID0+IHtcbiAgICBsZXQgc3RhdGUgPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgdm0uc3RhY2sucHVzaChzdGF0ZS5tYW5hZ2VyLmdldFNlbGYoc3RhdGUuY29tcG9uZW50KSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2MyAvKiBHZXRDb21wb25lbnRMYXlvdXQgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHsgbWFuYWdlciwgZGVmaW5pdGlvbiwgY29tcG9uZW50IH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgdm0uc3RhY2sucHVzaChtYW5hZ2VyLmxheW91dEZvcihkZWZpbml0aW9uLCBjb21wb25lbnQsIHZtLmVudikpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNjcgLyogRGlkUmVuZGVyTGF5b3V0ICovLCAodm0sIHsgb3AxOiBfc3RhdGUgfSkgPT4ge1xuICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBib3VuZHMgPSB2bS5lbGVtZW50cygpLnBvcEJsb2NrKCk7XG4gICAgbWFuYWdlci5kaWRSZW5kZXJMYXlvdXQoY29tcG9uZW50LCBib3VuZHMpO1xuICAgIHZtLmVudi5kaWRDcmVhdGUoY29tcG9uZW50LCBtYW5hZ2VyKTtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBEaWRVcGRhdGVMYXlvdXRPcGNvZGUobWFuYWdlciwgY29tcG9uZW50LCBib3VuZHMpKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDY1IC8qIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uICovLCB2bSA9PiB2bS5jb21taXRDYWNoZUdyb3VwKCkpO1xuZXhwb3J0IGNsYXNzIFVwZGF0ZUNvbXBvbmVudE9wY29kZSBleHRlbmRzIFVwZGF0aW5nT3Bjb2RlIHtcbiAgICBjb25zdHJ1Y3Rvcih0YWcsIG5hbWUsIGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICB0aGlzLm1hbmFnZXIgPSBtYW5hZ2VyO1xuICAgICAgICB0aGlzLmR5bmFtaWNTY29wZSA9IGR5bmFtaWNTY29wZTtcbiAgICAgICAgdGhpcy50eXBlID0gJ3VwZGF0ZS1jb21wb25lbnQnO1xuICAgICAgICBsZXQgY29tcG9uZW50VGFnID0gbWFuYWdlci5nZXRUYWcoY29tcG9uZW50KTtcbiAgICAgICAgaWYgKGNvbXBvbmVudFRhZykge1xuICAgICAgICAgICAgdGhpcy50YWcgPSBjb21iaW5lKFt0YWcsIGNvbXBvbmVudFRhZ10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50YWcgPSB0YWc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZXZhbHVhdGUoX3ZtKSB7XG4gICAgICAgIGxldCB7IGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlIH0gPSB0aGlzO1xuICAgICAgICBtYW5hZ2VyLnVwZGF0ZShjb21wb25lbnQsIGR5bmFtaWNTY29wZSk7XG4gICAgfVxuICAgIHRvSlNPTigpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFyZ3M6IFtKU09OLnN0cmluZ2lmeSh0aGlzLm5hbWUpXSxcbiAgICAgICAgICAgIGd1aWQ6IHRoaXMuX2d1aWQsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGVcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgRGlkVXBkYXRlTGF5b3V0T3Bjb2RlIGV4dGVuZHMgVXBkYXRpbmdPcGNvZGUge1xuICAgIGNvbnN0cnVjdG9yKG1hbmFnZXIsIGNvbXBvbmVudCwgYm91bmRzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubWFuYWdlciA9IG1hbmFnZXI7XG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICB0aGlzLmJvdW5kcyA9IGJvdW5kcztcbiAgICAgICAgdGhpcy50eXBlID0gJ2RpZC11cGRhdGUtbGF5b3V0JztcbiAgICAgICAgdGhpcy50YWcgPSBDT05TVEFOVF9UQUc7XG4gICAgfVxuICAgIGV2YWx1YXRlKHZtKSB7XG4gICAgICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCwgYm91bmRzIH0gPSB0aGlzO1xuICAgICAgICBtYW5hZ2VyLmRpZFVwZGF0ZUxheW91dChjb21wb25lbnQsIGJvdW5kcyk7XG4gICAgICAgIHZtLmVudi5kaWRVcGRhdGUoY29tcG9uZW50LCBtYW5hZ2VyKTtcbiAgICB9XG59Il19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21waWxlZC9vcGNvZGVzL2NvbXBvbmVudC5qcyJdLCJuYW1lcyI6WyJhZGQiLCJ2bSIsIm9wMSIsIl9kZWZpbml0aW9uIiwiZGVmaW5pdGlvbiIsImNvbnN0YW50cyIsImdldE90aGVyIiwic3RhY2siLCJwdXNoIiwibWFuYWdlciIsImNvbXBvbmVudCIsInJlZmVyZW5jZSIsInBvcCIsImNhY2hlIiwidW5kZWZpbmVkIiwicGVlayIsInZhbHVlIiwidXBkYXRlV2l0aCIsInN5bnRoZXRpYyIsInNldHVwIiwiX3N0YXRlIiwiZmV0Y2hWYWx1ZSIsImFyZ3MiLCJwcmVwYXJlZEFyZ3MiLCJwcmVwYXJlQXJncyIsImNsZWFyIiwicG9zaXRpb25hbCIsIm5hbWVkIiwicG9zaXRpb25hbENvdW50IiwibGVuZ3RoIiwiaSIsIm5hbWVzIiwiT2JqZWN0Iiwia2V5cyIsIm5hbWVkQ291bnQiLCJhdE5hbWVzIiwiYXROYW1lIiwiZmxhZ3MiLCJvcDIiLCJkeW5hbWljU2NvcGUiLCJzdGF0ZSIsImhhc0RlZmF1bHRCbG9jayIsImNyZWF0ZSIsImVudiIsImdldFNlbGYiLCJVcGRhdGVDb21wb25lbnRPcGNvZGUiLCJ0YWciLCJuYW1lIiwiZGVzdHJ1Y3RvciIsImdldERlc3RydWN0b3IiLCJuZXdEZXN0cm95YWJsZSIsImJlZ2luQ2FjaGVHcm91cCIsImVsZW1lbnRzIiwicHVzaFNpbXBsZUJsb2NrIiwiYWN0aW9uIiwiZGlkQ3JlYXRlRWxlbWVudCIsImV4cGVjdENvbnN0cnVjdGluZyIsImV4cGVjdE9wZXJhdGlvbnMiLCJsYXlvdXRGb3IiLCJib3VuZHMiLCJwb3BCbG9jayIsImRpZFJlbmRlckxheW91dCIsImRpZENyZWF0ZSIsIkRpZFVwZGF0ZUxheW91dE9wY29kZSIsImNvbW1pdENhY2hlR3JvdXAiLCJjb25zdHJ1Y3RvciIsInR5cGUiLCJjb21wb25lbnRUYWciLCJnZXRUYWciLCJldmFsdWF0ZSIsIl92bSIsInVwZGF0ZSIsInRvSlNPTiIsIkpT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YUFBS3BCLEdBQUw7QUFDSDtBQUNEdUIsYUFBU3BFLEVBQVQsRUFBYTtBQUNULFlBQUksRUFBRVEsT0FBRixFQUFXQyxTQUFYLEVBQXNCaUQsTUFBdEIsS0FBaUMsSUFBckM7QUFDQWxELGdCQUFRb0UsZUFBUixDQUF3Qm5FLFNBQXhCLEVBQW1DaUQsTUFBbkM7QUFDQTFELFdBQUcwQyxHQUFILENBQU9tQyxTQUFQLENBQWlCcEUsU0FBakIsRUFBNEJELE9BQTVCO0FBQ0g7QUFicUQ7UUFBN0NzRCxxQixHQUFBQSxxQiIsImZpbGUiOiJsaWIvY29tcGlsZWQvb3Bjb2Rlcy9jb21wb25lbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21iaW5lLCBDT05TVEFOVF9UQUcsIGlzQ29uc3QsIFJlZmVyZW5jZUNhY2hlIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IEFQUEVORF9PUENPREVTLCBVcGRhdGluZ09wY29kZSB9IGZyb20gJy4uLy4uL29wY29kZXMnO1xuaW1wb3J0IEFSR1MgZnJvbSAnLi4vLi4vdm0vYXJndW1lbnRzJztcbmltcG9ydCB7IENvbXBvbmVudEVsZW1lbnRPcGVyYXRpb25zIH0gZnJvbSAnLi9kb20nO1xuaW1wb3J0IHsgQXNzZXJ0IH0gZnJvbSAnLi92bSc7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTUgLyogUHVzaENvbXBvbmVudE1hbmFnZXIgKi8sICh2bSwgeyBvcDE6IF9kZWZpbml0aW9uIH0pID0+IHtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHZtLmNvbnN0YW50cy5nZXRPdGhlcihfZGVmaW5pdGlvbik7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgc3RhY2sucHVzaCh7IGRlZmluaXRpb24sIG1hbmFnZXI6IGRlZmluaXRpb24ubWFuYWdlciwgY29tcG9uZW50OiBudWxsIH0pO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTYgLyogUHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyICovLCB2bSA9PiB7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgbGV0IHJlZmVyZW5jZSA9IHN0YWNrLnBvcCgpO1xuICAgIGxldCBjYWNoZSA9IGlzQ29uc3QocmVmZXJlbmNlKSA/IHVuZGVmaW5lZCA6IG5ldyBSZWZlcmVuY2VDYWNoZShyZWZlcmVuY2UpO1xuICAgIGxldCBkZWZpbml0aW9uID0gY2FjaGUgPyBjYWNoZS5wZWVrKCkgOiByZWZlcmVuY2UudmFsdWUoKTtcbiAgICBzdGFjay5wdXNoKHsgZGVmaW5pdGlvbiwgbWFuYWdlcjogZGVmaW5pdGlvbi5tYW5hZ2VyLCBjb21wb25lbnQ6IG51bGwgfSk7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChjYWNoZSkpO1xuICAgIH1cbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDU3IC8qIFB1c2hBcmdzICovLCAodm0sIHsgb3AxOiBzeW50aGV0aWMgfSkgPT4ge1xuICAgIGxldCBzdGFjayA9IHZtLnN0YWNrO1xuICAgIEFSR1Muc2V0dXAoc3RhY2ssICEhc3ludGhldGljKTtcbiAgICBzdGFjay5wdXNoKEFSR1MpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTggLyogUHJlcGFyZUFyZ3MgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgbGV0IHsgZGVmaW5pdGlvbiwgbWFuYWdlciB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBhcmdzID0gc3RhY2sucG9wKCk7XG4gICAgbGV0IHByZXBhcmVkQXJncyA9IG1hbmFnZXIucHJlcGFyZUFyZ3MoZGVmaW5pdGlvbiwgYXJncyk7XG4gICAgaWYgKHByZXBhcmVkQXJncykge1xuICAgICAgICBhcmdzLmNsZWFyKCk7XG4gICAgICAgIGxldCB7IHBvc2l0aW9uYWwsIG5hbWVkIH0gPSBwcmVwYXJlZEFyZ3M7XG4gICAgICAgIGxldCBwb3NpdGlvbmFsQ291bnQgPSBwb3NpdGlvbmFsLmxlbmd0aDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb3NpdGlvbmFsQ291bnQ7IGkrKykge1xuICAgICAgICAgICAgc3RhY2sucHVzaChwb3NpdGlvbmFsW2ldKTtcbiAgICAgICAgfVxuICAgICAgICBzdGFjay5wdXNoKHBvc2l0aW9uYWxDb3VudCk7XG4gICAgICAgIGxldCBuYW1lcyA9IE9iamVjdC5rZXlzKG5hbWVkKTtcbiAgICAgICAgbGV0IG5hbWVkQ291bnQgPSBuYW1lcy5sZW5ndGg7XG4gICAgICAgIGxldCBhdE5hbWVzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZWRDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBuYW1lZFtuYW1lc1tpXV07XG4gICAgICAgICAgICBsZXQgYXROYW1lID0gYEAke25hbWVzW2ldfWA7XG4gICAgICAgICAgICBzdGFjay5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIGF0TmFtZXMucHVzaChhdE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHN0YWNrLnB1c2goYXROYW1lcyk7XG4gICAgICAgIGFyZ3Muc2V0dXAoc3RhY2ssIGZhbHNlKTtcbiAgICB9XG4gICAgc3RhY2sucHVzaChhcmdzKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDU5IC8qIENyZWF0ZUNvbXBvbmVudCAqLywgKHZtLCB7IG9wMTogZmxhZ3MsIG9wMjogX3N0YXRlIH0pID0+IHtcbiAgICBsZXQgZGVmaW5pdGlvbjtcbiAgICBsZXQgbWFuYWdlcjtcbiAgICBsZXQgYXJncyA9IHZtLnN0YWNrLnBvcCgpO1xuICAgIGxldCBkeW5hbWljU2NvcGUgPSB2bS5keW5hbWljU2NvcGUoKTtcbiAgICBsZXQgc3RhdGUgPSAoeyBkZWZpbml0aW9uLCBtYW5hZ2VyIH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSkpO1xuICAgIGxldCBoYXNEZWZhdWx0QmxvY2sgPSBmbGFncyAmIDE7XG4gICAgbGV0IGNvbXBvbmVudCA9IG1hbmFnZXIuY3JlYXRlKHZtLmVudiwgZGVmaW5pdGlvbiwgYXJncywgZHluYW1pY1Njb3BlLCB2bS5nZXRTZWxmKCksICEhaGFzRGVmYXVsdEJsb2NrKTtcbiAgICBzdGF0ZS5jb21wb25lbnQgPSBjb21wb25lbnQ7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlQ29tcG9uZW50T3Bjb2RlKGFyZ3MudGFnLCBkZWZpbml0aW9uLm5hbWUsIGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlKSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2MCAvKiBSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3IgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHsgbWFuYWdlciwgY29tcG9uZW50IH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgbGV0IGRlc3RydWN0b3IgPSBtYW5hZ2VyLmdldERlc3RydWN0b3IoY29tcG9uZW50KTtcbiAgICBpZiAoZGVzdHJ1Y3Rvcikgdm0ubmV3RGVzdHJveWFibGUoZGVzdHJ1Y3Rvcik7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2NCAvKiBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uICovLCB2bSA9PiB7XG4gICAgdm0uYmVnaW5DYWNoZUdyb3VwKCk7XG4gICAgdm0uZWxlbWVudHMoKS5wdXNoU2ltcGxlQmxvY2soKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDYxIC8qIFB1c2hDb21wb25lbnRPcGVyYXRpb25zICovLCB2bSA9PiB7XG4gICAgdm0uc3RhY2sucHVzaChuZXcgQ29tcG9uZW50RWxlbWVudE9wZXJhdGlvbnModm0uZW52KSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2NiAvKiBEaWRDcmVhdGVFbGVtZW50ICovLCAodm0sIHsgb3AxOiBfc3RhdGUgfSkgPT4ge1xuICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBhY3Rpb24gPSAnRGlkQ3JlYXRlRWxlbWVudE9wY29kZSNldmFsdWF0ZSc7XG4gICAgbWFuYWdlci5kaWRDcmVhdGVFbGVtZW50KGNvbXBvbmVudCwgdm0uZWxlbWVudHMoKS5leHBlY3RDb25zdHJ1Y3RpbmcoYWN0aW9uKSwgdm0uZWxlbWVudHMoKS5leHBlY3RPcGVyYXRpb25zKGFjdGlvbikpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNjIgLyogR2V0Q29tcG9uZW50U2VsZiAqLywgKHZtLCB7IG9wMTogX3N0YXRlIH0pID0+IHtcbiAgICBsZXQgc3RhdGUgPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgdm0uc3RhY2sucHVzaChzdGF0ZS5tYW5hZ2VyLmdldFNlbGYoc3RhdGUuY29tcG9uZW50KSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2MyAvKiBHZXRDb21wb25lbnRMYXlvdXQgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHsgbWFuYWdlciwgZGVmaW5pdGlvbiwgY29tcG9uZW50IH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgdm0uc3RhY2sucHVzaChtYW5hZ2VyLmxheW91dEZvcihkZWZpbml0aW9uLCBjb21wb25lbnQsIHZtLmVudikpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNjcgLyogRGlkUmVuZGVyTGF5b3V0ICovLCAodm0sIHsgb3AxOiBfc3RhdGUgfSkgPT4ge1xuICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBib3VuZHMgPSB2bS5lbGVtZW50cygpLnBvcEJsb2NrKCk7XG4gICAgbWFuYWdlci5kaWRSZW5kZXJMYXlvdXQoY29tcG9uZW50LCBib3VuZHMpO1xuICAgIHZtLmVudi5kaWRDcmVhdGUoY29tcG9uZW50LCBtYW5hZ2VyKTtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBEaWRVcGRhdGVMYXlvdXRPcGNvZGUobWFuYWdlciwgY29tcG9uZW50LCBib3VuZHMpKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDY1IC8qIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uICovLCB2bSA9PiB2bS5jb21taXRDYWNoZUdyb3VwKCkpO1xuZXhwb3J0IGNsYXNzIFVwZGF0ZUNvbXBvbmVudE9wY29kZSBleHRlbmRzIFVwZGF0aW5nT3Bjb2RlIHtcbiAgICBjb25zdHJ1Y3Rvcih0YWcsIG5hbWUsIGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICB0aGlzLm1hbmFnZXIgPSBtYW5hZ2VyO1xuICAgICAgICB0aGlzLmR5bmFtaWNTY29wZSA9IGR5bmFtaWNTY29wZTtcbiAgICAgICAgdGhpcy50eXBlID0gJ3VwZGF0ZS1jb21wb25lbnQnO1xuICAgICAgICBsZXQgY29tcG9uZW50VGFnID0gbWFuYWdlci5nZXRUYWcoY29tcG9uZW50KTtcbiAgICAgICAgaWYgKGNvbXBvbmVudFRhZykge1xuICAgICAgICAgICAgdGhpcy50YWcgPSBjb21iaW5lKFt0YWcsIGNvbXBvbmVudFRhZ10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50YWcgPSB0YWc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZXZhbHVhdGUoX3ZtKSB7XG4gICAgICAgIGxldCB7IGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlIH0gPSB0aGlzO1xuICAgICAgICBtYW5hZ2VyLnVwZGF0ZShjb21wb25lbnQsIGR5bmFtaWNTY29wZSk7XG4gICAgfVxuICAgIHRvSlNPTigpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFyZ3M6IFtKU09OLnN0cmluZ2lmeSh0aGlzLm5hbWUpXSxcbiAgICAgICAgICAgIGd1aWQ6IHRoaXMuX2d1aWQsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGVcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgRGlkVXBkYXRlTGF5b3V0T3Bjb2RlIGV4dGVuZHMgVXBkYXRpbmdPcGNvZGUge1xuICAgIGNvbnN0cnVjdG9yKG1hbmFnZXIsIGNvbXBvbmVudCwgYm91bmRzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubWFuYWdlciA9IG1hbmFnZXI7XG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICB0aGlzLmJvdW5kcyA9IGJvdW5kcztcbiAgICAgICAgdGhpcy50eXBlID0gJ2RpZC11cGRhdGUtbGF5b3V0JztcbiAgICAgICAgdGhpcy50YWcgPSBDT05TVEFOVF9UQUc7XG4gICAgfVxuICAgIGV2YWx1YXRlKHZtKSB7XG4gICAgICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCwgYm91bmRzIH0gPSB0aGlzO1xuICAgICAgICBtYW5hZ2VyLmRpZFVwZGF0ZUxheW91dChjb21wb25lbnQsIGJvdW5kcyk7XG4gICAgICAgIHZtLmVudi5kaWRVcGRhdGUoY29tcG9uZW50LCBtYW5hZ2VyKTtcbiAgICB9XG59Il19

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

var state = (_vm$fetchValue2 = vm.fetchValue(_state), definition = _vm$fetchValue2.definition, manager = _vm$fetchValue2.manager, _vm$fetchValue2);
var hasDefaultBlock = flags & 0b01;
var hasDefaultBlock = flags & 1;
var component = manager.create(vm.env, definition, args, dynamicScope, vm.getSelf(), !!hasDefaultBlock);

@@ -249,2 +249,2 @@ state.component = component;

}(_opcodes.UpdatingOpcode);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21waWxlZC9vcGNvZGVzL2NvbXBvbmVudC5qcyJdLCJuYW1lcyI6WyJjb21iaW5lIiwiQ09OU1RBTlRfVEFHIiwiaXNDb25zdCIsIlJlZmVyZW5jZUNhY2hlIiwiQVBQRU5EX09QQ09ERVMiLCJVcGRhdGluZ09wY29kZSIsIkFSR1MiLCJDb21wb25lbnRFbGVtZW50T3BlcmF0aW9ucyIsIkFzc2VydCIsImFkZCIsInZtIiwiX2RlZmluaXRpb24iLCJvcDEiLCJkZWZpbml0aW9uIiwiY29uc3RhbnRzIiwiZ2V0T3RoZXIiLCJzdGFjayIsInB1c2giLCJtYW5hZ2VyIiwiY29tcG9uZW50IiwicmVmZXJlbmNlIiwicG9wIiwiY2FjaGUiLCJ1bmRlZmluZWQiLCJwZWVrIiwidmFsdWUiLCJ1cGRhdGVXaXRoIiwic3ludGhldGljIiwic2V0dXAiLCJfc3RhdGUiLCJmZXRjaFZhbHVlIiwiYXJncyIsInByZXBhcmVkQXJncyIsInByZXBhcmVBcmdzIiwiY2xlYXIiLCJwb3NpdGlvbmFsIiwibmFtZWQiLCJwb3NpdGlvbmFsQ291bnQiLCJsZW5ndGgiLCJpIiwibmFtZXMiLCJPYmplY3QiLCJrZXlzIiwibmFtZWRDb3VudCIsImF0TmFtZXMiLCJhdE5hbWUiLCJmbGFncyIsIm9wMiIsImR5bmFtaWNTY29wZSIsInN0YXRlIiwiaGFzRGVmYXVsdEJsb2NrIiwiY3JlYXRlIiwiZW52IiwiZ2V0U2VsZiIsIlVwZGF0ZUNvbXBvbmVudE9wY29kZSIsInRhZyIsIm5hbWUiLCJkZXN0cnVjdG9yIiwiZ2V0RGVzdHJ1Y3RvciIsIm5ld0Rlc3Ryb3lhYmxlIiwiYmVnaW5DYWNoZUdyb3VwIiwiZWxlbWVudHMiLCJwdXNoU2ltcGxlQmxvY2siLCJhY3Rpb24iLCJkaWRDcmVhdGVFbGVtZW50IiwiZXhwZWN0Q29uc3RydWN0aW5nIiwiZXhwZWN0T3BlcmF0aW9ucyIsImxheW91dEZvciIsImJvdW5kcyIsInBvcEJsb2NrIiwiZGlkUmVuZGVyTGF5b3V0IiwiZGlkQ3JlYXRlIiwiRGlkVXBkYXRlTGF5b3V0T3Bjb2RlIiwiY29tbWl0Q2FjaGVHcm91cCIsInR5cGUiLCJjb21wb25lbnRUYWciLCJnZXRUYWciLCJldmFsdWF0ZSIsIl92bSIsInVwZGF0ZSIsInRvSlNPTiIsIkpTT04iLCJzdHJpbmdpZnkiLCJndWlkIiwiX2d1aWQiLCJkaWRVcGRhdGVMYXlvdXQiLCJkaWRVcGRhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxBQUFTLEFBQVMsQUFBYyxBQUFTLEFBQXNCOztBQUMvRCxBQUFTLEFBQWdCLEFBQXNCOztBQUMvQyxBQUFPLEFBQVU7Ozs7QUFDakIsQUFBUyxBQUFrQzs7QUFDM0MsQUFBUyxBQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDdkIsd0JBQUEsQUFBZSxJQUFmLEFBQW1CLEdBQW5CLEFBQXNCLDRCQUE0QixVQUFBLEFBQUMsVUFBNkI7UUFBbEIsQUFBa0IsbUJBQXZCLEFBQXVCLEFBQzVFOztRQUFJLGFBQWEsR0FBQSxBQUFHLFVBQUgsQUFBYSxTQUE5QixBQUFpQixBQUFzQixBQUN2QztRQUFJLFFBQVEsR0FBWixBQUFlLEFBQ2Y7VUFBQSxBQUFNLEtBQUssRUFBRSxZQUFGLFlBQWMsU0FBUyxXQUF2QixBQUFrQyxTQUFTLFdBQXRELEFBQVcsQUFBc0QsQUFDcEU7QUFKRDtBQUtBLHdCQUFBLEFBQWUsSUFBZixBQUFtQixHQUFuQixBQUFzQixtQ0FBbUMsY0FBTSxBQUMzRDtRQUFJLFFBQVEsR0FBWixBQUFlLEFBQ2Y7UUFBSSxZQUFZLE1BQWhCLEFBQWdCLEFBQU0sQUFDdEI7UUFBSSxRQUFRLHdCQUFBLEFBQVEsYUFBUixBQUFxQixZQUFZLEFBQUksOEJBQWpELEFBQTZDLEFBQW1CLEFBQ2hFO1FBQUksYUFBYSxRQUFRLE1BQVIsQUFBUSxBQUFNLFNBQVMsVUFBeEMsQUFBd0MsQUFBVSxBQUNsRDtVQUFBLEFBQU0sS0FBSyxFQUFFLFlBQUYsWUFBYyxTQUFTLFdBQXZCLEFBQWtDLFNBQVMsV0FBdEQsQUFBVyxBQUFzRCxB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LEFBQWlCLEFBQ2pCO2VBQUEsQUFBSyxTQUFMLEFBQWMsQUFDZDtlQUFBLEFBQUssT0FBTCxBQUFZLEFBQ1o7ZUFOb0MsQUFNcEMsQUFBSyxBQUFNO2VBQ2Q7QUFSTDs7b0NBQUEsQUFTSSw2QkFUSixBQVNhLElBQUk7WUFBQSxBQUNILFVBREcsQUFDNEIsS0FENUIsQUFDSDtZQURHLEFBQ00sWUFETixBQUM0QixLQUQ1QixBQUNNO1lBRE4sQUFDaUIsU0FEakIsQUFDNEIsS0FENUIsQUFDaUIsQUFDMUI7O2dCQUFBLEFBQVEsZ0JBQVIsQUFBd0IsV0FBeEIsQUFBbUMsQUFDbkM7V0FBQSxBQUFHLElBQUgsQUFBTyxVQUFQLEFBQWlCLFdBQWpCLEFBQTRCLEFBQy9CO0FBYkw7O1dBQUE7QUFBQSxBQUEyQyIsImZpbGUiOiJsaWIvY29tcGlsZWQvb3Bjb2Rlcy9jb21wb25lbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21iaW5lLCBDT05TVEFOVF9UQUcsIGlzQ29uc3QsIFJlZmVyZW5jZUNhY2hlIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IEFQUEVORF9PUENPREVTLCBVcGRhdGluZ09wY29kZSB9IGZyb20gJy4uLy4uL29wY29kZXMnO1xuaW1wb3J0IEFSR1MgZnJvbSAnLi4vLi4vdm0vYXJndW1lbnRzJztcbmltcG9ydCB7IENvbXBvbmVudEVsZW1lbnRPcGVyYXRpb25zIH0gZnJvbSAnLi9kb20nO1xuaW1wb3J0IHsgQXNzZXJ0IH0gZnJvbSAnLi92bSc7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTUgLyogUHVzaENvbXBvbmVudE1hbmFnZXIgKi8sICh2bSwgeyBvcDE6IF9kZWZpbml0aW9uIH0pID0+IHtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHZtLmNvbnN0YW50cy5nZXRPdGhlcihfZGVmaW5pdGlvbik7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgc3RhY2sucHVzaCh7IGRlZmluaXRpb24sIG1hbmFnZXI6IGRlZmluaXRpb24ubWFuYWdlciwgY29tcG9uZW50OiBudWxsIH0pO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTYgLyogUHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyICovLCB2bSA9PiB7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgbGV0IHJlZmVyZW5jZSA9IHN0YWNrLnBvcCgpO1xuICAgIGxldCBjYWNoZSA9IGlzQ29uc3QocmVmZXJlbmNlKSA/IHVuZGVmaW5lZCA6IG5ldyBSZWZlcmVuY2VDYWNoZShyZWZlcmVuY2UpO1xuICAgIGxldCBkZWZpbml0aW9uID0gY2FjaGUgPyBjYWNoZS5wZWVrKCkgOiByZWZlcmVuY2UudmFsdWUoKTtcbiAgICBzdGFjay5wdXNoKHsgZGVmaW5pdGlvbiwgbWFuYWdlcjogZGVmaW5pdGlvbi5tYW5hZ2VyLCBjb21wb25lbnQ6IG51bGwgfSk7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChjYWNoZSkpO1xuICAgIH1cbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDU3IC8qIFB1c2hBcmdzICovLCAodm0sIHsgb3AxOiBzeW50aGV0aWMgfSkgPT4ge1xuICAgIGxldCBzdGFjayA9IHZtLnN0YWNrO1xuICAgIEFSR1Muc2V0dXAoc3RhY2ssICEhc3ludGhldGljKTtcbiAgICBzdGFjay5wdXNoKEFSR1MpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTggLyogUHJlcGFyZUFyZ3MgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgbGV0IHsgZGVmaW5pdGlvbiwgbWFuYWdlciB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBhcmdzID0gc3RhY2sucG9wKCk7XG4gICAgbGV0IHByZXBhcmVkQXJncyA9IG1hbmFnZXIucHJlcGFyZUFyZ3MoZGVmaW5pdGlvbiwgYXJncyk7XG4gICAgaWYgKHByZXBhcmVkQXJncykge1xuICAgICAgICBhcmdzLmNsZWFyKCk7XG4gICAgICAgIGxldCB7IHBvc2l0aW9uYWwsIG5hbWVkIH0gPSBwcmVwYXJlZEFyZ3M7XG4gICAgICAgIGxldCBwb3NpdGlvbmFsQ291bnQgPSBwb3NpdGlvbmFsLmxlbmd0aDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb3NpdGlvbmFsQ291bnQ7IGkrKykge1xuICAgICAgICAgICAgc3RhY2sucHVzaChwb3NpdGlvbmFsW2ldKTtcbiAgICAgICAgfVxuICAgICAgICBzdGFjay5wdXNoKHBvc2l0aW9uYWxDb3VudCk7XG4gICAgICAgIGxldCBuYW1lcyA9IE9iamVjdC5rZXlzKG5hbWVkKTtcbiAgICAgICAgbGV0IG5hbWVkQ291bnQgPSBuYW1lcy5sZW5ndGg7XG4gICAgICAgIGxldCBhdE5hbWVzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZWRDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBuYW1lZFtuYW1lc1tpXV07XG4gICAgICAgICAgICBsZXQgYXROYW1lID0gYEAke25hbWVzW2ldfWA7XG4gICAgICAgICAgICBzdGFjay5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIGF0TmFtZXMucHVzaChhdE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHN0YWNrLnB1c2goYXROYW1lcyk7XG4gICAgICAgIGFyZ3Muc2V0dXAoc3RhY2ssIGZhbHNlKTtcbiAgICB9XG4gICAgc3RhY2sucHVzaChhcmdzKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDU5IC8qIENyZWF0ZUNvbXBvbmVudCAqLywgKHZtLCB7IG9wMTogZmxhZ3MsIG9wMjogX3N0YXRlIH0pID0+IHtcbiAgICBsZXQgZGVmaW5pdGlvbjtcbiAgICBsZXQgbWFuYWdlcjtcbiAgICBsZXQgYXJncyA9IHZtLnN0YWNrLnBvcCgpO1xuICAgIGxldCBkeW5hbWljU2NvcGUgPSB2bS5keW5hbWljU2NvcGUoKTtcbiAgICBsZXQgc3RhdGUgPSAoeyBkZWZpbml0aW9uLCBtYW5hZ2VyIH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSkpO1xuICAgIGxldCBoYXNEZWZhdWx0QmxvY2sgPSBmbGFncyAmIDBiMDE7XG4gICAgbGV0IGNvbXBvbmVudCA9IG1hbmFnZXIuY3JlYXRlKHZtLmVudiwgZGVmaW5pdGlvbiwgYXJncywgZHluYW1pY1Njb3BlLCB2bS5nZXRTZWxmKCksICEhaGFzRGVmYXVsdEJsb2NrKTtcbiAgICBzdGF0ZS5jb21wb25lbnQgPSBjb21wb25lbnQ7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlQ29tcG9uZW50T3Bjb2RlKGFyZ3MudGFnLCBkZWZpbml0aW9uLm5hbWUsIGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlKSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2MCAvKiBSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3IgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHsgbWFuYWdlciwgY29tcG9uZW50IH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgbGV0IGRlc3RydWN0b3IgPSBtYW5hZ2VyLmdldERlc3RydWN0b3IoY29tcG9uZW50KTtcbiAgICBpZiAoZGVzdHJ1Y3Rvcikgdm0ubmV3RGVzdHJveWFibGUoZGVzdHJ1Y3Rvcik7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2NCAvKiBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uICovLCB2bSA9PiB7XG4gICAgdm0uYmVnaW5DYWNoZUdyb3VwKCk7XG4gICAgdm0uZWxlbWVudHMoKS5wdXNoU2ltcGxlQmxvY2soKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDYxIC8qIFB1c2hDb21wb25lbnRPcGVyYXRpb25zICovLCB2bSA9PiB7XG4gICAgdm0uc3RhY2sucHVzaChuZXcgQ29tcG9uZW50RWxlbWVudE9wZXJhdGlvbnModm0uZW52KSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2NiAvKiBEaWRDcmVhdGVFbGVtZW50ICovLCAodm0sIHsgb3AxOiBfc3RhdGUgfSkgPT4ge1xuICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBhY3Rpb24gPSAnRGlkQ3JlYXRlRWxlbWVudE9wY29kZSNldmFsdWF0ZSc7XG4gICAgbWFuYWdlci5kaWRDcmVhdGVFbGVtZW50KGNvbXBvbmVudCwgdm0uZWxlbWVudHMoKS5leHBlY3RDb25zdHJ1Y3RpbmcoYWN0aW9uKSwgdm0uZWxlbWVudHMoKS5leHBlY3RPcGVyYXRpb25zKGFjdGlvbikpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNjIgLyogR2V0Q29tcG9uZW50U2VsZiAqLywgKHZtLCB7IG9wMTogX3N0YXRlIH0pID0+IHtcbiAgICBsZXQgc3RhdGUgPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgdm0uc3RhY2sucHVzaChzdGF0ZS5tYW5hZ2VyLmdldFNlbGYoc3RhdGUuY29tcG9uZW50KSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2MyAvKiBHZXRDb21wb25lbnRMYXlvdXQgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHsgbWFuYWdlciwgZGVmaW5pdGlvbiwgY29tcG9uZW50IH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgdm0uc3RhY2sucHVzaChtYW5hZ2VyLmxheW91dEZvcihkZWZpbml0aW9uLCBjb21wb25lbnQsIHZtLmVudikpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNjcgLyogRGlkUmVuZGVyTGF5b3V0ICovLCAodm0sIHsgb3AxOiBfc3RhdGUgfSkgPT4ge1xuICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBib3VuZHMgPSB2bS5lbGVtZW50cygpLnBvcEJsb2NrKCk7XG4gICAgbWFuYWdlci5kaWRSZW5kZXJMYXlvdXQoY29tcG9uZW50LCBib3VuZHMpO1xuICAgIHZtLmVudi5kaWRDcmVhdGUoY29tcG9uZW50LCBtYW5hZ2VyKTtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBEaWRVcGRhdGVMYXlvdXRPcGNvZGUobWFuYWdlciwgY29tcG9uZW50LCBib3VuZHMpKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDY1IC8qIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uICovLCB2bSA9PiB2bS5jb21taXRDYWNoZUdyb3VwKCkpO1xuZXhwb3J0IGNsYXNzIFVwZGF0ZUNvbXBvbmVudE9wY29kZSBleHRlbmRzIFVwZGF0aW5nT3Bjb2RlIHtcbiAgICBjb25zdHJ1Y3Rvcih0YWcsIG5hbWUsIGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICB0aGlzLm1hbmFnZXIgPSBtYW5hZ2VyO1xuICAgICAgICB0aGlzLmR5bmFtaWNTY29wZSA9IGR5bmFtaWNTY29wZTtcbiAgICAgICAgdGhpcy50eXBlID0gJ3VwZGF0ZS1jb21wb25lbnQnO1xuICAgICAgICBsZXQgY29tcG9uZW50VGFnID0gbWFuYWdlci5nZXRUYWcoY29tcG9uZW50KTtcbiAgICAgICAgaWYgKGNvbXBvbmVudFRhZykge1xuICAgICAgICAgICAgdGhpcy50YWcgPSBjb21iaW5lKFt0YWcsIGNvbXBvbmVudFRhZ10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50YWcgPSB0YWc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZXZhbHVhdGUoX3ZtKSB7XG4gICAgICAgIGxldCB7IGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlIH0gPSB0aGlzO1xuICAgICAgICBtYW5hZ2VyLnVwZGF0ZShjb21wb25lbnQsIGR5bmFtaWNTY29wZSk7XG4gICAgfVxuICAgIHRvSlNPTigpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFyZ3M6IFtKU09OLnN0cmluZ2lmeSh0aGlzLm5hbWUpXSxcbiAgICAgICAgICAgIGd1aWQ6IHRoaXMuX2d1aWQsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGVcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgRGlkVXBkYXRlTGF5b3V0T3Bjb2RlIGV4dGVuZHMgVXBkYXRpbmdPcGNvZGUge1xuICAgIGNvbnN0cnVjdG9yKG1hbmFnZXIsIGNvbXBvbmVudCwgYm91bmRzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubWFuYWdlciA9IG1hbmFnZXI7XG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICB0aGlzLmJvdW5kcyA9IGJvdW5kcztcbiAgICAgICAgdGhpcy50eXBlID0gJ2RpZC11cGRhdGUtbGF5b3V0JztcbiAgICAgICAgdGhpcy50YWcgPSBDT05TVEFOVF9UQUc7XG4gICAgfVxuICAgIGV2YWx1YXRlKHZtKSB7XG4gICAgICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCwgYm91bmRzIH0gPSB0aGlzO1xuICAgICAgICBtYW5hZ2VyLmRpZFVwZGF0ZUxheW91dChjb21wb25lbnQsIGJvdW5kcyk7XG4gICAgICAgIHZtLmVudi5kaWRVcGRhdGUoY29tcG9uZW50LCBtYW5hZ2VyKTtcbiAgICB9XG59Il19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21waWxlZC9vcGNvZGVzL2NvbXBvbmVudC5qcyJdLCJuYW1lcyI6WyJjb21iaW5lIiwiQ09OU1RBTlRfVEFHIiwiaXNDb25zdCIsIlJlZmVyZW5jZUNhY2hlIiwiQVBQRU5EX09QQ09ERVMiLCJVcGRhdGluZ09wY29kZSIsIkFSR1MiLCJDb21wb25lbnRFbGVtZW50T3BlcmF0aW9ucyIsIkFzc2VydCIsImFkZCIsInZtIiwiX2RlZmluaXRpb24iLCJvcDEiLCJkZWZpbml0aW9uIiwiY29uc3RhbnRzIiwiZ2V0T3RoZXIiLCJzdGFjayIsInB1c2giLCJtYW5hZ2VyIiwiY29tcG9uZW50IiwicmVmZXJlbmNlIiwicG9wIiwiY2FjaGUiLCJ1bmRlZmluZWQiLCJwZWVrIiwidmFsdWUiLCJ1cGRhdGVXaXRoIiwic3ludGhldGljIiwic2V0dXAiLCJfc3RhdGUiLCJmZXRjaFZhbHVlIiwiYXJncyIsInByZXBhcmVkQXJncyIsInByZXBhcmVBcmdzIiwiY2xlYXIiLCJwb3NpdGlvbmFsIiwibmFtZWQiLCJwb3NpdGlvbmFsQ291bnQiLCJsZW5ndGgiLCJpIiwibmFtZXMiLCJPYmplY3QiLCJrZXlzIiwibmFtZWRDb3VudCIsImF0TmFtZXMiLCJhdE5hbWUiLCJmbGFncyIsIm9wMiIsImR5bmFtaWNTY29wZSIsInN0YXRlIiwiaGFzRGVmYXVsdEJsb2NrIiwiY3JlYXRlIiwiZW52IiwiZ2V0U2VsZiIsIlVwZGF0ZUNvbXBvbmVudE9wY29kZSIsInRhZyIsIm5hbWUiLCJkZXN0cnVjdG9yIiwiZ2V0RGVzdHJ1Y3RvciIsIm5ld0Rlc3Ryb3lhYmxlIiwiYmVnaW5DYWNoZUdyb3VwIiwiZWxlbWVudHMiLCJwdXNoU2ltcGxlQmxvY2siLCJhY3Rpb24iLCJkaWRDcmVhdGVFbGVtZW50IiwiZXhwZWN0Q29uc3RydWN0aW5nIiwiZXhwZWN0T3BlcmF0aW9ucyIsImxheW91dEZvciIsImJvdW5kcyIsInBvcEJsb2NrIiwiZGlkUmVuZGVyTGF5b3V0IiwiZGlkQ3JlYXRlIiwiRGlkVXBkYXRlTGF5b3V0T3Bjb2RlIiwiY29tbWl0Q2FjaGVHcm91cCIsInR5cGUiLCJjb21wb25lbnRUYWciLCJnZXRUYWciLCJldmFsdWF0ZSIsIl92bSIsInVwZGF0ZSIsInRvSlNPTiIsIkpTT04iLCJzdHJpbmdpZnkiLCJndWlkIiwiX2d1aWQiLCJkaWRVcGRhdGVMYXlvdXQiLCJkaWRVcGRhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxBQUFTLEFBQVMsQUFBYyxBQUFTLEFBQXNCOztBQUMvRCxBQUFTLEFBQWdCLEFBQXNCOztBQUMvQyxBQUFPLEFBQVU7Ozs7QUFDakIsQUFBUyxBQUFrQzs7QUFDM0MsQUFBUyxBQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDdkIsd0JBQUEsQUFBZSxJQUFmLEFBQW1CLEdBQW5CLEFBQXNCLDRCQUE0QixVQUFBLEFBQUMsVUFBNkI7UUFBbEIsQUFBa0IsbUJBQXZCLEFBQXVCLEFBQzVFOztRQUFJLGFBQWEsR0FBQSxBQUFHLFVBQUgsQUFBYSxTQUE5QixBQUFpQixBQUFzQixBQUN2QztRQUFJLFFBQVEsR0FBWixBQUFlLEFBQ2Y7VUFBQSxBQUFNLEtBQUssRUFBRSxZQUFGLFlBQWMsU0FBUyxXQUF2QixBQUFrQyxTQUFTLFdBQXRELEFBQVcsQUFBc0QsQUFDcEU7QUFKRDtBQUtBLHdCQUFBLEFBQWUsSUFBZixBQUFtQixHQUFuQixBQUFzQixtQ0FBbUMsY0FBTSxBQUMzRDtRQUFJLFFBQVEsR0FBWixBQUFlLEFBQ2Y7UUFBSSxZQUFZLE1BQWhCLEFBQWdCLEFBQU0sQUFDdEI7UUFBSSxRQUFRLHdCQUFBLEFBQVEsYUFBUixBQUFxQixZQUFZLEFBQUksOEJBQWpELEFBQTZDLEFBQW1CLEFBQ2hFO1FBQUksYUFBYSxRQUFRLE1BQVIsQUFBUSxBQUFNLFNBQVMsVUFBeEMsQUFBd0MsQUFBVSxBQUNsRDtVQUFBLEFBQU0sS0FBSyxFQUFFLFlBQUYsWUFBYyxTQUFTLFdBQXZCLEFBQWtDLFNBQVMsV0FBdEQsQUFBVyxBQUFzRCxB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LEFBQWlCLEFBQ2pCO2VBQUEsQUFBSyxTQUFMLEFBQWMsQUFDZDtlQUFBLEFBQUssT0FBTCxBQUFZLEFBQ1o7ZUFOb0MsQUFNcEMsQUFBSyxBQUFNO2VBQ2Q7QUFSTDs7b0NBQUEsQUFTSSw2QkFUSixBQVNhLElBQUk7WUFBQSxBQUNILFVBREcsQUFDNEIsS0FENUIsQUFDSDtZQURHLEFBQ00sWUFETixBQUM0QixLQUQ1QixBQUNNO1lBRE4sQUFDaUIsU0FEakIsQUFDNEIsS0FENUIsQUFDaUIsQUFDMUI7O2dCQUFBLEFBQVEsZ0JBQVIsQUFBd0IsV0FBeEIsQUFBbUMsQUFDbkM7V0FBQSxBQUFHLElBQUgsQUFBTyxVQUFQLEFBQWlCLFdBQWpCLEFBQTRCLEFBQy9CO0FBYkw7O1dBQUE7QUFBQSxBQUEyQyIsImZpbGUiOiJsaWIvY29tcGlsZWQvb3Bjb2Rlcy9jb21wb25lbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21iaW5lLCBDT05TVEFOVF9UQUcsIGlzQ29uc3QsIFJlZmVyZW5jZUNhY2hlIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IEFQUEVORF9PUENPREVTLCBVcGRhdGluZ09wY29kZSB9IGZyb20gJy4uLy4uL29wY29kZXMnO1xuaW1wb3J0IEFSR1MgZnJvbSAnLi4vLi4vdm0vYXJndW1lbnRzJztcbmltcG9ydCB7IENvbXBvbmVudEVsZW1lbnRPcGVyYXRpb25zIH0gZnJvbSAnLi9kb20nO1xuaW1wb3J0IHsgQXNzZXJ0IH0gZnJvbSAnLi92bSc7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTUgLyogUHVzaENvbXBvbmVudE1hbmFnZXIgKi8sICh2bSwgeyBvcDE6IF9kZWZpbml0aW9uIH0pID0+IHtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHZtLmNvbnN0YW50cy5nZXRPdGhlcihfZGVmaW5pdGlvbik7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgc3RhY2sucHVzaCh7IGRlZmluaXRpb24sIG1hbmFnZXI6IGRlZmluaXRpb24ubWFuYWdlciwgY29tcG9uZW50OiBudWxsIH0pO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTYgLyogUHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyICovLCB2bSA9PiB7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgbGV0IHJlZmVyZW5jZSA9IHN0YWNrLnBvcCgpO1xuICAgIGxldCBjYWNoZSA9IGlzQ29uc3QocmVmZXJlbmNlKSA/IHVuZGVmaW5lZCA6IG5ldyBSZWZlcmVuY2VDYWNoZShyZWZlcmVuY2UpO1xuICAgIGxldCBkZWZpbml0aW9uID0gY2FjaGUgPyBjYWNoZS5wZWVrKCkgOiByZWZlcmVuY2UudmFsdWUoKTtcbiAgICBzdGFjay5wdXNoKHsgZGVmaW5pdGlvbiwgbWFuYWdlcjogZGVmaW5pdGlvbi5tYW5hZ2VyLCBjb21wb25lbnQ6IG51bGwgfSk7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChjYWNoZSkpO1xuICAgIH1cbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDU3IC8qIFB1c2hBcmdzICovLCAodm0sIHsgb3AxOiBzeW50aGV0aWMgfSkgPT4ge1xuICAgIGxldCBzdGFjayA9IHZtLnN0YWNrO1xuICAgIEFSR1Muc2V0dXAoc3RhY2ssICEhc3ludGhldGljKTtcbiAgICBzdGFjay5wdXNoKEFSR1MpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTggLyogUHJlcGFyZUFyZ3MgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgbGV0IHsgZGVmaW5pdGlvbiwgbWFuYWdlciB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBhcmdzID0gc3RhY2sucG9wKCk7XG4gICAgbGV0IHByZXBhcmVkQXJncyA9IG1hbmFnZXIucHJlcGFyZUFyZ3MoZGVmaW5pdGlvbiwgYXJncyk7XG4gICAgaWYgKHByZXBhcmVkQXJncykge1xuICAgICAgICBhcmdzLmNsZWFyKCk7XG4gICAgICAgIGxldCB7IHBvc2l0aW9uYWwsIG5hbWVkIH0gPSBwcmVwYXJlZEFyZ3M7XG4gICAgICAgIGxldCBwb3NpdGlvbmFsQ291bnQgPSBwb3NpdGlvbmFsLmxlbmd0aDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb3NpdGlvbmFsQ291bnQ7IGkrKykge1xuICAgICAgICAgICAgc3RhY2sucHVzaChwb3NpdGlvbmFsW2ldKTtcbiAgICAgICAgfVxuICAgICAgICBzdGFjay5wdXNoKHBvc2l0aW9uYWxDb3VudCk7XG4gICAgICAgIGxldCBuYW1lcyA9IE9iamVjdC5rZXlzKG5hbWVkKTtcbiAgICAgICAgbGV0IG5hbWVkQ291bnQgPSBuYW1lcy5sZW5ndGg7XG4gICAgICAgIGxldCBhdE5hbWVzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZWRDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBuYW1lZFtuYW1lc1tpXV07XG4gICAgICAgICAgICBsZXQgYXROYW1lID0gYEAke25hbWVzW2ldfWA7XG4gICAgICAgICAgICBzdGFjay5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIGF0TmFtZXMucHVzaChhdE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHN0YWNrLnB1c2goYXROYW1lcyk7XG4gICAgICAgIGFyZ3Muc2V0dXAoc3RhY2ssIGZhbHNlKTtcbiAgICB9XG4gICAgc3RhY2sucHVzaChhcmdzKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDU5IC8qIENyZWF0ZUNvbXBvbmVudCAqLywgKHZtLCB7IG9wMTogZmxhZ3MsIG9wMjogX3N0YXRlIH0pID0+IHtcbiAgICBsZXQgZGVmaW5pdGlvbjtcbiAgICBsZXQgbWFuYWdlcjtcbiAgICBsZXQgYXJncyA9IHZtLnN0YWNrLnBvcCgpO1xuICAgIGxldCBkeW5hbWljU2NvcGUgPSB2bS5keW5hbWljU2NvcGUoKTtcbiAgICBsZXQgc3RhdGUgPSAoeyBkZWZpbml0aW9uLCBtYW5hZ2VyIH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSkpO1xuICAgIGxldCBoYXNEZWZhdWx0QmxvY2sgPSBmbGFncyAmIDE7XG4gICAgbGV0IGNvbXBvbmVudCA9IG1hbmFnZXIuY3JlYXRlKHZtLmVudiwgZGVmaW5pdGlvbiwgYXJncywgZHluYW1pY1Njb3BlLCB2bS5nZXRTZWxmKCksICEhaGFzRGVmYXVsdEJsb2NrKTtcbiAgICBzdGF0ZS5jb21wb25lbnQgPSBjb21wb25lbnQ7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlQ29tcG9uZW50T3Bjb2RlKGFyZ3MudGFnLCBkZWZpbml0aW9uLm5hbWUsIGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlKSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2MCAvKiBSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3IgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHsgbWFuYWdlciwgY29tcG9uZW50IH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgbGV0IGRlc3RydWN0b3IgPSBtYW5hZ2VyLmdldERlc3RydWN0b3IoY29tcG9uZW50KTtcbiAgICBpZiAoZGVzdHJ1Y3Rvcikgdm0ubmV3RGVzdHJveWFibGUoZGVzdHJ1Y3Rvcik7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2NCAvKiBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uICovLCB2bSA9PiB7XG4gICAgdm0uYmVnaW5DYWNoZUdyb3VwKCk7XG4gICAgdm0uZWxlbWVudHMoKS5wdXNoU2ltcGxlQmxvY2soKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDYxIC8qIFB1c2hDb21wb25lbnRPcGVyYXRpb25zICovLCB2bSA9PiB7XG4gICAgdm0uc3RhY2sucHVzaChuZXcgQ29tcG9uZW50RWxlbWVudE9wZXJhdGlvbnModm0uZW52KSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2NiAvKiBEaWRDcmVhdGVFbGVtZW50ICovLCAodm0sIHsgb3AxOiBfc3RhdGUgfSkgPT4ge1xuICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBhY3Rpb24gPSAnRGlkQ3JlYXRlRWxlbWVudE9wY29kZSNldmFsdWF0ZSc7XG4gICAgbWFuYWdlci5kaWRDcmVhdGVFbGVtZW50KGNvbXBvbmVudCwgdm0uZWxlbWVudHMoKS5leHBlY3RDb25zdHJ1Y3RpbmcoYWN0aW9uKSwgdm0uZWxlbWVudHMoKS5leHBlY3RPcGVyYXRpb25zKGFjdGlvbikpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNjIgLyogR2V0Q29tcG9uZW50U2VsZiAqLywgKHZtLCB7IG9wMTogX3N0YXRlIH0pID0+IHtcbiAgICBsZXQgc3RhdGUgPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgdm0uc3RhY2sucHVzaChzdGF0ZS5tYW5hZ2VyLmdldFNlbGYoc3RhdGUuY29tcG9uZW50KSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2MyAvKiBHZXRDb21wb25lbnRMYXlvdXQgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHsgbWFuYWdlciwgZGVmaW5pdGlvbiwgY29tcG9uZW50IH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgdm0uc3RhY2sucHVzaChtYW5hZ2VyLmxheW91dEZvcihkZWZpbml0aW9uLCBjb21wb25lbnQsIHZtLmVudikpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNjcgLyogRGlkUmVuZGVyTGF5b3V0ICovLCAodm0sIHsgb3AxOiBfc3RhdGUgfSkgPT4ge1xuICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBib3VuZHMgPSB2bS5lbGVtZW50cygpLnBvcEJsb2NrKCk7XG4gICAgbWFuYWdlci5kaWRSZW5kZXJMYXlvdXQoY29tcG9uZW50LCBib3VuZHMpO1xuICAgIHZtLmVudi5kaWRDcmVhdGUoY29tcG9uZW50LCBtYW5hZ2VyKTtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBEaWRVcGRhdGVMYXlvdXRPcGNvZGUobWFuYWdlciwgY29tcG9uZW50LCBib3VuZHMpKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDY1IC8qIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uICovLCB2bSA9PiB2bS5jb21taXRDYWNoZUdyb3VwKCkpO1xuZXhwb3J0IGNsYXNzIFVwZGF0ZUNvbXBvbmVudE9wY29kZSBleHRlbmRzIFVwZGF0aW5nT3Bjb2RlIHtcbiAgICBjb25zdHJ1Y3Rvcih0YWcsIG5hbWUsIGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICB0aGlzLm1hbmFnZXIgPSBtYW5hZ2VyO1xuICAgICAgICB0aGlzLmR5bmFtaWNTY29wZSA9IGR5bmFtaWNTY29wZTtcbiAgICAgICAgdGhpcy50eXBlID0gJ3VwZGF0ZS1jb21wb25lbnQnO1xuICAgICAgICBsZXQgY29tcG9uZW50VGFnID0gbWFuYWdlci5nZXRUYWcoY29tcG9uZW50KTtcbiAgICAgICAgaWYgKGNvbXBvbmVudFRhZykge1xuICAgICAgICAgICAgdGhpcy50YWcgPSBjb21iaW5lKFt0YWcsIGNvbXBvbmVudFRhZ10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50YWcgPSB0YWc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZXZhbHVhdGUoX3ZtKSB7XG4gICAgICAgIGxldCB7IGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlIH0gPSB0aGlzO1xuICAgICAgICBtYW5hZ2VyLnVwZGF0ZShjb21wb25lbnQsIGR5bmFtaWNTY29wZSk7XG4gICAgfVxuICAgIHRvSlNPTigpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFyZ3M6IFtKU09OLnN0cmluZ2lmeSh0aGlzLm5hbWUpXSxcbiAgICAgICAgICAgIGd1aWQ6IHRoaXMuX2d1aWQsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGVcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgRGlkVXBkYXRlTGF5b3V0T3Bjb2RlIGV4dGVuZHMgVXBkYXRpbmdPcGNvZGUge1xuICAgIGNvbnN0cnVjdG9yKG1hbmFnZXIsIGNvbXBvbmVudCwgYm91bmRzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubWFuYWdlciA9IG1hbmFnZXI7XG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICB0aGlzLmJvdW5kcyA9IGJvdW5kcztcbiAgICAgICAgdGhpcy50eXBlID0gJ2RpZC11cGRhdGUtbGF5b3V0JztcbiAgICAgICAgdGhpcy50YWcgPSBDT05TVEFOVF9UQUc7XG4gICAgfVxuICAgIGV2YWx1YXRlKHZtKSB7XG4gICAgICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCwgYm91bmRzIH0gPSB0aGlzO1xuICAgICAgICBtYW5hZ2VyLmRpZFVwZGF0ZUxheW91dChjb21wb25lbnQsIGJvdW5kcyk7XG4gICAgICAgIHZtLmVudi5kaWRVcGRhdGUoY29tcG9uZW50LCBtYW5hZ2VyKTtcbiAgICB9XG59Il19

@@ -21,4 +21,6 @@ import { dict, EMPTY_ARRAY, expect, fillNulls, Stack } from '@glimmer/util';

patch(opcodes) {
for (let { at, Target, target } of this.targets) {
opcodes.set(at, Target, this.labels[target]);
let { targets, labels } = this;
for (let i = 0; i < targets.length; i++) {
let { at, Target, target } = targets[i];
opcodes.set(at, Target, labels[target]);
}

@@ -25,0 +27,0 @@ }

@@ -59,3 +59,3 @@ import { combine, CONSTANT_TAG, isConst, ReferenceCache } from '@glimmer/reference';

let state = ({ definition, manager } = vm.fetchValue(_state));
let hasDefaultBlock = flags & 0b01;
let hasDefaultBlock = flags & 1;
let component = manager.create(vm.env, definition, args, dynamicScope, vm.getSelf(), !!hasDefaultBlock);

@@ -62,0 +62,0 @@ state.component = component;

@@ -696,6 +696,6 @@ import { map } from '@glimmer/reference';

let b = new OpcodeBuilder(env, meta);
for (let statement of statements) {
compileStatement(statement, b);
for (let i = 0; i < statements.length; i++) {
compileStatement(statements[i], b);
}
return b;
}

@@ -84,3 +84,3 @@ function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }

var state = (_vm$fetchValue2 = vm.fetchValue(_state), definition = _vm$fetchValue2.definition, manager = _vm$fetchValue2.manager, _vm$fetchValue2);
var hasDefaultBlock = flags & 0b01;
var hasDefaultBlock = flags & 1;
var component = manager.create(vm.env, definition, args, dynamicScope, vm.getSelf(), !!hasDefaultBlock);

@@ -215,2 +215,2 @@ state.component = component;

}(UpdatingOpcode);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21waWxlZC9vcGNvZGVzL2NvbXBvbmVudC5qcyJdLCJuYW1lcyI6WyJjb21iaW5lIiwiQ09OU1RBTlRfVEFHIiwiaXNDb25zdCIsIlJlZmVyZW5jZUNhY2hlIiwiQVBQRU5EX09QQ09ERVMiLCJVcGRhdGluZ09wY29kZSIsIkFSR1MiLCJDb21wb25lbnRFbGVtZW50T3BlcmF0aW9ucyIsIkFzc2VydCIsImFkZCIsInZtIiwiX2RlZmluaXRpb24iLCJvcDEiLCJkZWZpbml0aW9uIiwiY29uc3RhbnRzIiwiZ2V0T3RoZXIiLCJzdGFjayIsInB1c2giLCJtYW5hZ2VyIiwiY29tcG9uZW50IiwicmVmZXJlbmNlIiwicG9wIiwiY2FjaGUiLCJ1bmRlZmluZWQiLCJwZWVrIiwidmFsdWUiLCJ1cGRhdGVXaXRoIiwic3ludGhldGljIiwic2V0dXAiLCJfc3RhdGUiLCJmZXRjaFZhbHVlIiwiYXJncyIsInByZXBhcmVkQXJncyIsInByZXBhcmVBcmdzIiwiY2xlYXIiLCJwb3NpdGlvbmFsIiwibmFtZWQiLCJwb3NpdGlvbmFsQ291bnQiLCJsZW5ndGgiLCJpIiwibmFtZXMiLCJPYmplY3QiLCJrZXlzIiwibmFtZWRDb3VudCIsImF0TmFtZXMiLCJhdE5hbWUiLCJmbGFncyIsIm9wMiIsImR5bmFtaWNTY29wZSIsInN0YXRlIiwiaGFzRGVmYXVsdEJsb2NrIiwiY3JlYXRlIiwiZW52IiwiZ2V0U2VsZiIsIlVwZGF0ZUNvbXBvbmVudE9wY29kZSIsInRhZyIsIm5hbWUiLCJkZXN0cnVjdG9yIiwiZ2V0RGVzdHJ1Y3RvciIsIm5ld0Rlc3Ryb3lhYmxlIiwiYmVnaW5DYWNoZUdyb3VwIiwiZWxlbWVudHMiLCJwdXNoU2ltcGxlQmxvY2siLCJhY3Rpb24iLCJkaWRDcmVhdGVFbGVtZW50IiwiZXhwZWN0Q29uc3RydWN0aW5nIiwiZXhwZWN0T3BlcmF0aW9ucyIsImxheW91dEZvciIsImJvdW5kcyIsInBvcEJsb2NrIiwiZGlkUmVuZGVyTGF5b3V0IiwiZGlkQ3JlYXRlIiwiRGlkVXBkYXRlTGF5b3V0T3Bjb2RlIiwiY29tbWl0Q2FjaGVHcm91cCIsInR5cGUiLCJjb21wb25lbnRUYWciLCJnZXRUYWciLCJldmFsdWF0ZSIsIl92bSIsInVwZGF0ZSIsInRvSlNPTiIsIkpTT04iLCJzdHJpbmdpZnkiLCJndWlkIiwiX2d1aWQiLCJkaWRVcGRhdGVMYXlvdXQiLCJkaWRVcGRhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsU0FBU0EsT0FBVCxFQUFrQkMsWUFBbEIsRUFBZ0NDLE9BQWhDLEVBQXlDQyxjQUF6QyxRQUErRCxvQkFBL0Q7QUFDQSxTQUFTQyxjQUFULEVBQXlCQyxjQUF6QixRQUErQyxlQUEvQztBQUNBLE9BQU9DLElBQVAsTUFBaUIsb0JBQWpCO0FBQ0EsU0FBU0MsMEJBQVQsUUFBMkMsT0FBM0M7QUFDQSxTQUFTQyxNQUFULFFBQXVCLE1BQXZCO0FBQ0FKLGVBQWVLLEdBQWYsQ0FBbUIsRUFBbkIsQ0FBc0IsMEJBQXRCLEVBQWtELFVBQUNDLEVBQUQsUUFBOEI7QUFBQSxRQUFsQkMsV0FBa0IsUUFBdkJDLEdBQXVCOztBQUM1RSxRQUFJQyxhQUFhSCxHQUFHSSxTQUFILENBQWFDLFFBQWIsQ0FBc0JKLFdBQXRCLENBQWpCO0FBQ0EsUUFBSUssUUFBUU4sR0FBR00sS0FBZjtBQUNBQSxVQUFNQyxJQUFOLENBQVcsRUFBRUosc0JBQUYsRUFBY0ssU0FBU0wsV0FBV0ssT0FBbEMsRUFBMkNDLFdBQVcsSUFBdEQsRUFBWDtBQUNILENBSkQ7QUFLQWYsZUFBZUssR0FBZixDQUFtQixFQUFuQixDQUFzQixpQ0FBdEIsRUFBeUQsY0FBTTtBQUMzRCxRQUFJTyxRQUFRTixHQUFHTSxLQUFmO0FBQ0EsUUFBSUksWUFBWUosTUFBTUssR0FBTixFQUFoQjtBQUNBLFFBQUlDLFFBQVFwQixRQUFRa0IsU0FBUixJQUFxQkcsU0FBckIsR0FBaUMsSUFBSXBCLGNBQUosQ0FBbUJpQixTQUFuQixDQUE3QztBQUNBLFFBQUlQLGFBQWFTLFFBQVFBLE1BQU1FLElBQU4s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QURHLEdBQzRCLElBRDVCLENBQ0hBLE9BREc7QUFBQSxZQUNNQyxTQUROLEdBQzRCLElBRDVCLENBQ01BLFNBRE47QUFBQSxZQUNpQmlELE1BRGpCLEdBQzRCLElBRDVCLENBQ2lCQSxNQURqQjs7QUFFVGxELGdCQUFRbUUsZUFBUixDQUF3QmxFLFNBQXhCLEVBQW1DaUQsTUFBbkM7QUFDQTFELFdBQUcwQyxHQUFILENBQU9rQyxTQUFQLENBQWlCbkUsU0FBakIsRUFBNEJELE9BQTVCO0FBQ0gsS0FiTDs7QUFBQTtBQUFBLEVBQTJDYixjQUEzQyIsImZpbGUiOiJsaWIvY29tcGlsZWQvb3Bjb2Rlcy9jb21wb25lbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21iaW5lLCBDT05TVEFOVF9UQUcsIGlzQ29uc3QsIFJlZmVyZW5jZUNhY2hlIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IEFQUEVORF9PUENPREVTLCBVcGRhdGluZ09wY29kZSB9IGZyb20gJy4uLy4uL29wY29kZXMnO1xuaW1wb3J0IEFSR1MgZnJvbSAnLi4vLi4vdm0vYXJndW1lbnRzJztcbmltcG9ydCB7IENvbXBvbmVudEVsZW1lbnRPcGVyYXRpb25zIH0gZnJvbSAnLi9kb20nO1xuaW1wb3J0IHsgQXNzZXJ0IH0gZnJvbSAnLi92bSc7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTUgLyogUHVzaENvbXBvbmVudE1hbmFnZXIgKi8sICh2bSwgeyBvcDE6IF9kZWZpbml0aW9uIH0pID0+IHtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHZtLmNvbnN0YW50cy5nZXRPdGhlcihfZGVmaW5pdGlvbik7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgc3RhY2sucHVzaCh7IGRlZmluaXRpb24sIG1hbmFnZXI6IGRlZmluaXRpb24ubWFuYWdlciwgY29tcG9uZW50OiBudWxsIH0pO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTYgLyogUHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyICovLCB2bSA9PiB7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgbGV0IHJlZmVyZW5jZSA9IHN0YWNrLnBvcCgpO1xuICAgIGxldCBjYWNoZSA9IGlzQ29uc3QocmVmZXJlbmNlKSA/IHVuZGVmaW5lZCA6IG5ldyBSZWZlcmVuY2VDYWNoZShyZWZlcmVuY2UpO1xuICAgIGxldCBkZWZpbml0aW9uID0gY2FjaGUgPyBjYWNoZS5wZWVrKCkgOiByZWZlcmVuY2UudmFsdWUoKTtcbiAgICBzdGFjay5wdXNoKHsgZGVmaW5pdGlvbiwgbWFuYWdlcjogZGVmaW5pdGlvbi5tYW5hZ2VyLCBjb21wb25lbnQ6IG51bGwgfSk7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChjYWNoZSkpO1xuICAgIH1cbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDU3IC8qIFB1c2hBcmdzICovLCAodm0sIHsgb3AxOiBzeW50aGV0aWMgfSkgPT4ge1xuICAgIGxldCBzdGFjayA9IHZtLnN0YWNrO1xuICAgIEFSR1Muc2V0dXAoc3RhY2ssICEhc3ludGhldGljKTtcbiAgICBzdGFjay5wdXNoKEFSR1MpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTggLyogUHJlcGFyZUFyZ3MgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgbGV0IHsgZGVmaW5pdGlvbiwgbWFuYWdlciB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBhcmdzID0gc3RhY2sucG9wKCk7XG4gICAgbGV0IHByZXBhcmVkQXJncyA9IG1hbmFnZXIucHJlcGFyZUFyZ3MoZGVmaW5pdGlvbiwgYXJncyk7XG4gICAgaWYgKHByZXBhcmVkQXJncykge1xuICAgICAgICBhcmdzLmNsZWFyKCk7XG4gICAgICAgIGxldCB7IHBvc2l0aW9uYWwsIG5hbWVkIH0gPSBwcmVwYXJlZEFyZ3M7XG4gICAgICAgIGxldCBwb3NpdGlvbmFsQ291bnQgPSBwb3NpdGlvbmFsLmxlbmd0aDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb3NpdGlvbmFsQ291bnQ7IGkrKykge1xuICAgICAgICAgICAgc3RhY2sucHVzaChwb3NpdGlvbmFsW2ldKTtcbiAgICAgICAgfVxuICAgICAgICBzdGFjay5wdXNoKHBvc2l0aW9uYWxDb3VudCk7XG4gICAgICAgIGxldCBuYW1lcyA9IE9iamVjdC5rZXlzKG5hbWVkKTtcbiAgICAgICAgbGV0IG5hbWVkQ291bnQgPSBuYW1lcy5sZW5ndGg7XG4gICAgICAgIGxldCBhdE5hbWVzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZWRDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBuYW1lZFtuYW1lc1tpXV07XG4gICAgICAgICAgICBsZXQgYXROYW1lID0gYEAke25hbWVzW2ldfWA7XG4gICAgICAgICAgICBzdGFjay5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIGF0TmFtZXMucHVzaChhdE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHN0YWNrLnB1c2goYXROYW1lcyk7XG4gICAgICAgIGFyZ3Muc2V0dXAoc3RhY2ssIGZhbHNlKTtcbiAgICB9XG4gICAgc3RhY2sucHVzaChhcmdzKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDU5IC8qIENyZWF0ZUNvbXBvbmVudCAqLywgKHZtLCB7IG9wMTogZmxhZ3MsIG9wMjogX3N0YXRlIH0pID0+IHtcbiAgICBsZXQgZGVmaW5pdGlvbjtcbiAgICBsZXQgbWFuYWdlcjtcbiAgICBsZXQgYXJncyA9IHZtLnN0YWNrLnBvcCgpO1xuICAgIGxldCBkeW5hbWljU2NvcGUgPSB2bS5keW5hbWljU2NvcGUoKTtcbiAgICBsZXQgc3RhdGUgPSAoeyBkZWZpbml0aW9uLCBtYW5hZ2VyIH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSkpO1xuICAgIGxldCBoYXNEZWZhdWx0QmxvY2sgPSBmbGFncyAmIDBiMDE7XG4gICAgbGV0IGNvbXBvbmVudCA9IG1hbmFnZXIuY3JlYXRlKHZtLmVudiwgZGVmaW5pdGlvbiwgYXJncywgZHluYW1pY1Njb3BlLCB2bS5nZXRTZWxmKCksICEhaGFzRGVmYXVsdEJsb2NrKTtcbiAgICBzdGF0ZS5jb21wb25lbnQgPSBjb21wb25lbnQ7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlQ29tcG9uZW50T3Bjb2RlKGFyZ3MudGFnLCBkZWZpbml0aW9uLm5hbWUsIGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlKSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2MCAvKiBSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3IgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHsgbWFuYWdlciwgY29tcG9uZW50IH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgbGV0IGRlc3RydWN0b3IgPSBtYW5hZ2VyLmdldERlc3RydWN0b3IoY29tcG9uZW50KTtcbiAgICBpZiAoZGVzdHJ1Y3Rvcikgdm0ubmV3RGVzdHJveWFibGUoZGVzdHJ1Y3Rvcik7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2NCAvKiBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uICovLCB2bSA9PiB7XG4gICAgdm0uYmVnaW5DYWNoZUdyb3VwKCk7XG4gICAgdm0uZWxlbWVudHMoKS5wdXNoU2ltcGxlQmxvY2soKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDYxIC8qIFB1c2hDb21wb25lbnRPcGVyYXRpb25zICovLCB2bSA9PiB7XG4gICAgdm0uc3RhY2sucHVzaChuZXcgQ29tcG9uZW50RWxlbWVudE9wZXJhdGlvbnModm0uZW52KSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2NiAvKiBEaWRDcmVhdGVFbGVtZW50ICovLCAodm0sIHsgb3AxOiBfc3RhdGUgfSkgPT4ge1xuICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBhY3Rpb24gPSAnRGlkQ3JlYXRlRWxlbWVudE9wY29kZSNldmFsdWF0ZSc7XG4gICAgbWFuYWdlci5kaWRDcmVhdGVFbGVtZW50KGNvbXBvbmVudCwgdm0uZWxlbWVudHMoKS5leHBlY3RDb25zdHJ1Y3RpbmcoYWN0aW9uKSwgdm0uZWxlbWVudHMoKS5leHBlY3RPcGVyYXRpb25zKGFjdGlvbikpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNjIgLyogR2V0Q29tcG9uZW50U2VsZiAqLywgKHZtLCB7IG9wMTogX3N0YXRlIH0pID0+IHtcbiAgICBsZXQgc3RhdGUgPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgdm0uc3RhY2sucHVzaChzdGF0ZS5tYW5hZ2VyLmdldFNlbGYoc3RhdGUuY29tcG9uZW50KSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2MyAvKiBHZXRDb21wb25lbnRMYXlvdXQgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHsgbWFuYWdlciwgZGVmaW5pdGlvbiwgY29tcG9uZW50IH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgdm0uc3RhY2sucHVzaChtYW5hZ2VyLmxheW91dEZvcihkZWZpbml0aW9uLCBjb21wb25lbnQsIHZtLmVudikpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNjcgLyogRGlkUmVuZGVyTGF5b3V0ICovLCAodm0sIHsgb3AxOiBfc3RhdGUgfSkgPT4ge1xuICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBib3VuZHMgPSB2bS5lbGVtZW50cygpLnBvcEJsb2NrKCk7XG4gICAgbWFuYWdlci5kaWRSZW5kZXJMYXlvdXQoY29tcG9uZW50LCBib3VuZHMpO1xuICAgIHZtLmVudi5kaWRDcmVhdGUoY29tcG9uZW50LCBtYW5hZ2VyKTtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBEaWRVcGRhdGVMYXlvdXRPcGNvZGUobWFuYWdlciwgY29tcG9uZW50LCBib3VuZHMpKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDY1IC8qIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uICovLCB2bSA9PiB2bS5jb21taXRDYWNoZUdyb3VwKCkpO1xuZXhwb3J0IGNsYXNzIFVwZGF0ZUNvbXBvbmVudE9wY29kZSBleHRlbmRzIFVwZGF0aW5nT3Bjb2RlIHtcbiAgICBjb25zdHJ1Y3Rvcih0YWcsIG5hbWUsIGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICB0aGlzLm1hbmFnZXIgPSBtYW5hZ2VyO1xuICAgICAgICB0aGlzLmR5bmFtaWNTY29wZSA9IGR5bmFtaWNTY29wZTtcbiAgICAgICAgdGhpcy50eXBlID0gJ3VwZGF0ZS1jb21wb25lbnQnO1xuICAgICAgICBsZXQgY29tcG9uZW50VGFnID0gbWFuYWdlci5nZXRUYWcoY29tcG9uZW50KTtcbiAgICAgICAgaWYgKGNvbXBvbmVudFRhZykge1xuICAgICAgICAgICAgdGhpcy50YWcgPSBjb21iaW5lKFt0YWcsIGNvbXBvbmVudFRhZ10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50YWcgPSB0YWc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZXZhbHVhdGUoX3ZtKSB7XG4gICAgICAgIGxldCB7IGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlIH0gPSB0aGlzO1xuICAgICAgICBtYW5hZ2VyLnVwZGF0ZShjb21wb25lbnQsIGR5bmFtaWNTY29wZSk7XG4gICAgfVxuICAgIHRvSlNPTigpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFyZ3M6IFtKU09OLnN0cmluZ2lmeSh0aGlzLm5hbWUpXSxcbiAgICAgICAgICAgIGd1aWQ6IHRoaXMuX2d1aWQsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGVcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgRGlkVXBkYXRlTGF5b3V0T3Bjb2RlIGV4dGVuZHMgVXBkYXRpbmdPcGNvZGUge1xuICAgIGNvbnN0cnVjdG9yKG1hbmFnZXIsIGNvbXBvbmVudCwgYm91bmRzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubWFuYWdlciA9IG1hbmFnZXI7XG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICB0aGlzLmJvdW5kcyA9IGJvdW5kcztcbiAgICAgICAgdGhpcy50eXBlID0gJ2RpZC11cGRhdGUtbGF5b3V0JztcbiAgICAgICAgdGhpcy50YWcgPSBDT05TVEFOVF9UQUc7XG4gICAgfVxuICAgIGV2YWx1YXRlKHZtKSB7XG4gICAgICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCwgYm91bmRzIH0gPSB0aGlzO1xuICAgICAgICBtYW5hZ2VyLmRpZFVwZGF0ZUxheW91dChjb21wb25lbnQsIGJvdW5kcyk7XG4gICAgICAgIHZtLmVudi5kaWRVcGRhdGUoY29tcG9uZW50LCBtYW5hZ2VyKTtcbiAgICB9XG59Il19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21waWxlZC9vcGNvZGVzL2NvbXBvbmVudC5qcyJdLCJuYW1lcyI6WyJjb21iaW5lIiwiQ09OU1RBTlRfVEFHIiwiaXNDb25zdCIsIlJlZmVyZW5jZUNhY2hlIiwiQVBQRU5EX09QQ09ERVMiLCJVcGRhdGluZ09wY29kZSIsIkFSR1MiLCJDb21wb25lbnRFbGVtZW50T3BlcmF0aW9ucyIsIkFzc2VydCIsImFkZCIsInZtIiwiX2RlZmluaXRpb24iLCJvcDEiLCJkZWZpbml0aW9uIiwiY29uc3RhbnRzIiwiZ2V0T3RoZXIiLCJzdGFjayIsInB1c2giLCJtYW5hZ2VyIiwiY29tcG9uZW50IiwicmVmZXJlbmNlIiwicG9wIiwiY2FjaGUiLCJ1bmRlZmluZWQiLCJwZWVrIiwidmFsdWUiLCJ1cGRhdGVXaXRoIiwic3ludGhldGljIiwic2V0dXAiLCJfc3RhdGUiLCJmZXRjaFZhbHVlIiwiYXJncyIsInByZXBhcmVkQXJncyIsInByZXBhcmVBcmdzIiwiY2xlYXIiLCJwb3NpdGlvbmFsIiwibmFtZWQiLCJwb3NpdGlvbmFsQ291bnQiLCJsZW5ndGgiLCJpIiwibmFtZXMiLCJPYmplY3QiLCJrZXlzIiwibmFtZWRDb3VudCIsImF0TmFtZXMiLCJhdE5hbWUiLCJmbGFncyIsIm9wMiIsImR5bmFtaWNTY29wZSIsInN0YXRlIiwiaGFzRGVmYXVsdEJsb2NrIiwiY3JlYXRlIiwiZW52IiwiZ2V0U2VsZiIsIlVwZGF0ZUNvbXBvbmVudE9wY29kZSIsInRhZyIsIm5hbWUiLCJkZXN0cnVjdG9yIiwiZ2V0RGVzdHJ1Y3RvciIsIm5ld0Rlc3Ryb3lhYmxlIiwiYmVnaW5DYWNoZUdyb3VwIiwiZWxlbWVudHMiLCJwdXNoU2ltcGxlQmxvY2siLCJhY3Rpb24iLCJkaWRDcmVhdGVFbGVtZW50IiwiZXhwZWN0Q29uc3RydWN0aW5nIiwiZXhwZWN0T3BlcmF0aW9ucyIsImxheW91dEZvciIsImJvdW5kcyIsInBvcEJsb2NrIiwiZGlkUmVuZGVyTGF5b3V0IiwiZGlkQ3JlYXRlIiwiRGlkVXBkYXRlTGF5b3V0T3Bjb2RlIiwiY29tbWl0Q2FjaGVHcm91cCIsInR5cGUiLCJjb21wb25lbnRUYWciLCJnZXRUYWciLCJldmFsdWF0ZSIsIl92bSIsInVwZGF0ZSIsInRvSlNPTiIsIkpTT04iLCJzdHJpbmdpZnkiLCJndWlkIiwiX2d1aWQiLCJkaWRVcGRhdGVMYXlvdXQiLCJkaWRVcGRhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsU0FBU0EsT0FBVCxFQUFrQkMsWUFBbEIsRUFBZ0NDLE9BQWhDLEVBQXlDQyxjQUF6QyxRQUErRCxvQkFBL0Q7QUFDQSxTQUFTQyxjQUFULEVBQXlCQyxjQUF6QixRQUErQyxlQUEvQztBQUNBLE9BQU9DLElBQVAsTUFBaUIsb0JBQWpCO0FBQ0EsU0FBU0MsMEJBQVQsUUFBMkMsT0FBM0M7QUFDQSxTQUFTQyxNQUFULFFBQXVCLE1BQXZCO0FBQ0FKLGVBQWVLLEdBQWYsQ0FBbUIsRUFBbkIsQ0FBc0IsMEJBQXRCLEVBQWtELFVBQUNDLEVBQUQsUUFBOEI7QUFBQSxRQUFsQkMsV0FBa0IsUUFBdkJDLEdBQXVCOztBQUM1RSxRQUFJQyxhQUFhSCxHQUFHSSxTQUFILENBQWFDLFFBQWIsQ0FBc0JKLFdBQXRCLENBQWpCO0FBQ0EsUUFBSUssUUFBUU4sR0FBR00sS0FBZjtBQUNBQSxVQUFNQyxJQUFOLENBQVcsRUFBRUosc0JBQUYsRUFBY0ssU0FBU0wsV0FBV0ssT0FBbEMsRUFBMkNDLFdBQVcsSUFBdEQsRUFBWDtBQUNILENBSkQ7QUFLQWYsZUFBZUssR0FBZixDQUFtQixFQUFuQixDQUFzQixpQ0FBdEIsRUFBeUQsY0FBTTtBQUMzRCxRQUFJTyxRQUFRTixHQUFHTSxLQUFmO0FBQ0EsUUFBSUksWUFBWUosTUFBTUssR0FBTixFQUFoQjtBQUNBLFFBQUlDLFFBQVFwQixRQUFRa0IsU0FBUixJQUFxQkcsU0FBckIsR0FBaUMsSUFBSXBCLGNBQUosQ0FBbUJpQixTQUFuQixDQUE3QztBQUNBLFFBQUlQLGFBQWFTLFFBQVFBLE1BQU1FLElBQU4s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QURHLEdBQzRCLElBRDVCLENBQ0hBLE9BREc7QUFBQSxZQUNNQyxTQUROLEdBQzRCLElBRDVCLENBQ01BLFNBRE47QUFBQSxZQUNpQmlELE1BRGpCLEdBQzRCLElBRDVCLENBQ2lCQSxNQURqQjs7QUFFVGxELGdCQUFRbUUsZUFBUixDQUF3QmxFLFNBQXhCLEVBQW1DaUQsTUFBbkM7QUFDQTFELFdBQUcwQyxHQUFILENBQU9rQyxTQUFQLENBQWlCbkUsU0FBakIsRUFBNEJELE9BQTVCO0FBQ0gsS0FiTDs7QUFBQTtBQUFBLEVBQTJDYixjQUEzQyIsImZpbGUiOiJsaWIvY29tcGlsZWQvb3Bjb2Rlcy9jb21wb25lbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21iaW5lLCBDT05TVEFOVF9UQUcsIGlzQ29uc3QsIFJlZmVyZW5jZUNhY2hlIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IEFQUEVORF9PUENPREVTLCBVcGRhdGluZ09wY29kZSB9IGZyb20gJy4uLy4uL29wY29kZXMnO1xuaW1wb3J0IEFSR1MgZnJvbSAnLi4vLi4vdm0vYXJndW1lbnRzJztcbmltcG9ydCB7IENvbXBvbmVudEVsZW1lbnRPcGVyYXRpb25zIH0gZnJvbSAnLi9kb20nO1xuaW1wb3J0IHsgQXNzZXJ0IH0gZnJvbSAnLi92bSc7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTUgLyogUHVzaENvbXBvbmVudE1hbmFnZXIgKi8sICh2bSwgeyBvcDE6IF9kZWZpbml0aW9uIH0pID0+IHtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHZtLmNvbnN0YW50cy5nZXRPdGhlcihfZGVmaW5pdGlvbik7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgc3RhY2sucHVzaCh7IGRlZmluaXRpb24sIG1hbmFnZXI6IGRlZmluaXRpb24ubWFuYWdlciwgY29tcG9uZW50OiBudWxsIH0pO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTYgLyogUHVzaER5bmFtaWNDb21wb25lbnRNYW5hZ2VyICovLCB2bSA9PiB7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgbGV0IHJlZmVyZW5jZSA9IHN0YWNrLnBvcCgpO1xuICAgIGxldCBjYWNoZSA9IGlzQ29uc3QocmVmZXJlbmNlKSA/IHVuZGVmaW5lZCA6IG5ldyBSZWZlcmVuY2VDYWNoZShyZWZlcmVuY2UpO1xuICAgIGxldCBkZWZpbml0aW9uID0gY2FjaGUgPyBjYWNoZS5wZWVrKCkgOiByZWZlcmVuY2UudmFsdWUoKTtcbiAgICBzdGFjay5wdXNoKHsgZGVmaW5pdGlvbiwgbWFuYWdlcjogZGVmaW5pdGlvbi5tYW5hZ2VyLCBjb21wb25lbnQ6IG51bGwgfSk7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydChjYWNoZSkpO1xuICAgIH1cbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDU3IC8qIFB1c2hBcmdzICovLCAodm0sIHsgb3AxOiBzeW50aGV0aWMgfSkgPT4ge1xuICAgIGxldCBzdGFjayA9IHZtLnN0YWNrO1xuICAgIEFSR1Muc2V0dXAoc3RhY2ssICEhc3ludGhldGljKTtcbiAgICBzdGFjay5wdXNoKEFSR1MpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNTggLyogUHJlcGFyZUFyZ3MgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHN0YWNrID0gdm0uc3RhY2s7XG4gICAgbGV0IHsgZGVmaW5pdGlvbiwgbWFuYWdlciB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBhcmdzID0gc3RhY2sucG9wKCk7XG4gICAgbGV0IHByZXBhcmVkQXJncyA9IG1hbmFnZXIucHJlcGFyZUFyZ3MoZGVmaW5pdGlvbiwgYXJncyk7XG4gICAgaWYgKHByZXBhcmVkQXJncykge1xuICAgICAgICBhcmdzLmNsZWFyKCk7XG4gICAgICAgIGxldCB7IHBvc2l0aW9uYWwsIG5hbWVkIH0gPSBwcmVwYXJlZEFyZ3M7XG4gICAgICAgIGxldCBwb3NpdGlvbmFsQ291bnQgPSBwb3NpdGlvbmFsLmxlbmd0aDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb3NpdGlvbmFsQ291bnQ7IGkrKykge1xuICAgICAgICAgICAgc3RhY2sucHVzaChwb3NpdGlvbmFsW2ldKTtcbiAgICAgICAgfVxuICAgICAgICBzdGFjay5wdXNoKHBvc2l0aW9uYWxDb3VudCk7XG4gICAgICAgIGxldCBuYW1lcyA9IE9iamVjdC5rZXlzKG5hbWVkKTtcbiAgICAgICAgbGV0IG5hbWVkQ291bnQgPSBuYW1lcy5sZW5ndGg7XG4gICAgICAgIGxldCBhdE5hbWVzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZWRDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBuYW1lZFtuYW1lc1tpXV07XG4gICAgICAgICAgICBsZXQgYXROYW1lID0gYEAke25hbWVzW2ldfWA7XG4gICAgICAgICAgICBzdGFjay5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIGF0TmFtZXMucHVzaChhdE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHN0YWNrLnB1c2goYXROYW1lcyk7XG4gICAgICAgIGFyZ3Muc2V0dXAoc3RhY2ssIGZhbHNlKTtcbiAgICB9XG4gICAgc3RhY2sucHVzaChhcmdzKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDU5IC8qIENyZWF0ZUNvbXBvbmVudCAqLywgKHZtLCB7IG9wMTogZmxhZ3MsIG9wMjogX3N0YXRlIH0pID0+IHtcbiAgICBsZXQgZGVmaW5pdGlvbjtcbiAgICBsZXQgbWFuYWdlcjtcbiAgICBsZXQgYXJncyA9IHZtLnN0YWNrLnBvcCgpO1xuICAgIGxldCBkeW5hbWljU2NvcGUgPSB2bS5keW5hbWljU2NvcGUoKTtcbiAgICBsZXQgc3RhdGUgPSAoeyBkZWZpbml0aW9uLCBtYW5hZ2VyIH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSkpO1xuICAgIGxldCBoYXNEZWZhdWx0QmxvY2sgPSBmbGFncyAmIDE7XG4gICAgbGV0IGNvbXBvbmVudCA9IG1hbmFnZXIuY3JlYXRlKHZtLmVudiwgZGVmaW5pdGlvbiwgYXJncywgZHluYW1pY1Njb3BlLCB2bS5nZXRTZWxmKCksICEhaGFzRGVmYXVsdEJsb2NrKTtcbiAgICBzdGF0ZS5jb21wb25lbnQgPSBjb21wb25lbnQ7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgVXBkYXRlQ29tcG9uZW50T3Bjb2RlKGFyZ3MudGFnLCBkZWZpbml0aW9uLm5hbWUsIGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlKSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2MCAvKiBSZWdpc3RlckNvbXBvbmVudERlc3RydWN0b3IgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHsgbWFuYWdlciwgY29tcG9uZW50IH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgbGV0IGRlc3RydWN0b3IgPSBtYW5hZ2VyLmdldERlc3RydWN0b3IoY29tcG9uZW50KTtcbiAgICBpZiAoZGVzdHJ1Y3Rvcikgdm0ubmV3RGVzdHJveWFibGUoZGVzdHJ1Y3Rvcik7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2NCAvKiBCZWdpbkNvbXBvbmVudFRyYW5zYWN0aW9uICovLCB2bSA9PiB7XG4gICAgdm0uYmVnaW5DYWNoZUdyb3VwKCk7XG4gICAgdm0uZWxlbWVudHMoKS5wdXNoU2ltcGxlQmxvY2soKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDYxIC8qIFB1c2hDb21wb25lbnRPcGVyYXRpb25zICovLCB2bSA9PiB7XG4gICAgdm0uc3RhY2sucHVzaChuZXcgQ29tcG9uZW50RWxlbWVudE9wZXJhdGlvbnModm0uZW52KSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2NiAvKiBEaWRDcmVhdGVFbGVtZW50ICovLCAodm0sIHsgb3AxOiBfc3RhdGUgfSkgPT4ge1xuICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBhY3Rpb24gPSAnRGlkQ3JlYXRlRWxlbWVudE9wY29kZSNldmFsdWF0ZSc7XG4gICAgbWFuYWdlci5kaWRDcmVhdGVFbGVtZW50KGNvbXBvbmVudCwgdm0uZWxlbWVudHMoKS5leHBlY3RDb25zdHJ1Y3RpbmcoYWN0aW9uKSwgdm0uZWxlbWVudHMoKS5leHBlY3RPcGVyYXRpb25zKGFjdGlvbikpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNjIgLyogR2V0Q29tcG9uZW50U2VsZiAqLywgKHZtLCB7IG9wMTogX3N0YXRlIH0pID0+IHtcbiAgICBsZXQgc3RhdGUgPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgdm0uc3RhY2sucHVzaChzdGF0ZS5tYW5hZ2VyLmdldFNlbGYoc3RhdGUuY29tcG9uZW50KSk7XG59KTtcbkFQUEVORF9PUENPREVTLmFkZCg2MyAvKiBHZXRDb21wb25lbnRMYXlvdXQgKi8sICh2bSwgeyBvcDE6IF9zdGF0ZSB9KSA9PiB7XG4gICAgbGV0IHsgbWFuYWdlciwgZGVmaW5pdGlvbiwgY29tcG9uZW50IH0gPSB2bS5mZXRjaFZhbHVlKF9zdGF0ZSk7XG4gICAgdm0uc3RhY2sucHVzaChtYW5hZ2VyLmxheW91dEZvcihkZWZpbml0aW9uLCBjb21wb25lbnQsIHZtLmVudikpO1xufSk7XG5BUFBFTkRfT1BDT0RFUy5hZGQoNjcgLyogRGlkUmVuZGVyTGF5b3V0ICovLCAodm0sIHsgb3AxOiBfc3RhdGUgfSkgPT4ge1xuICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCB9ID0gdm0uZmV0Y2hWYWx1ZShfc3RhdGUpO1xuICAgIGxldCBib3VuZHMgPSB2bS5lbGVtZW50cygpLnBvcEJsb2NrKCk7XG4gICAgbWFuYWdlci5kaWRSZW5kZXJMYXlvdXQoY29tcG9uZW50LCBib3VuZHMpO1xuICAgIHZtLmVudi5kaWRDcmVhdGUoY29tcG9uZW50LCBtYW5hZ2VyKTtcbiAgICB2bS51cGRhdGVXaXRoKG5ldyBEaWRVcGRhdGVMYXlvdXRPcGNvZGUobWFuYWdlciwgY29tcG9uZW50LCBib3VuZHMpKTtcbn0pO1xuQVBQRU5EX09QQ09ERVMuYWRkKDY1IC8qIENvbW1pdENvbXBvbmVudFRyYW5zYWN0aW9uICovLCB2bSA9PiB2bS5jb21taXRDYWNoZUdyb3VwKCkpO1xuZXhwb3J0IGNsYXNzIFVwZGF0ZUNvbXBvbmVudE9wY29kZSBleHRlbmRzIFVwZGF0aW5nT3Bjb2RlIHtcbiAgICBjb25zdHJ1Y3Rvcih0YWcsIG5hbWUsIGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICB0aGlzLm1hbmFnZXIgPSBtYW5hZ2VyO1xuICAgICAgICB0aGlzLmR5bmFtaWNTY29wZSA9IGR5bmFtaWNTY29wZTtcbiAgICAgICAgdGhpcy50eXBlID0gJ3VwZGF0ZS1jb21wb25lbnQnO1xuICAgICAgICBsZXQgY29tcG9uZW50VGFnID0gbWFuYWdlci5nZXRUYWcoY29tcG9uZW50KTtcbiAgICAgICAgaWYgKGNvbXBvbmVudFRhZykge1xuICAgICAgICAgICAgdGhpcy50YWcgPSBjb21iaW5lKFt0YWcsIGNvbXBvbmVudFRhZ10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50YWcgPSB0YWc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZXZhbHVhdGUoX3ZtKSB7XG4gICAgICAgIGxldCB7IGNvbXBvbmVudCwgbWFuYWdlciwgZHluYW1pY1Njb3BlIH0gPSB0aGlzO1xuICAgICAgICBtYW5hZ2VyLnVwZGF0ZShjb21wb25lbnQsIGR5bmFtaWNTY29wZSk7XG4gICAgfVxuICAgIHRvSlNPTigpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFyZ3M6IFtKU09OLnN0cmluZ2lmeSh0aGlzLm5hbWUpXSxcbiAgICAgICAgICAgIGd1aWQ6IHRoaXMuX2d1aWQsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGVcbiAgICAgICAgfTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgRGlkVXBkYXRlTGF5b3V0T3Bjb2RlIGV4dGVuZHMgVXBkYXRpbmdPcGNvZGUge1xuICAgIGNvbnN0cnVjdG9yKG1hbmFnZXIsIGNvbXBvbmVudCwgYm91bmRzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubWFuYWdlciA9IG1hbmFnZXI7XG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICB0aGlzLmJvdW5kcyA9IGJvdW5kcztcbiAgICAgICAgdGhpcy50eXBlID0gJ2RpZC11cGRhdGUtbGF5b3V0JztcbiAgICAgICAgdGhpcy50YWcgPSBDT05TVEFOVF9UQUc7XG4gICAgfVxuICAgIGV2YWx1YXRlKHZtKSB7XG4gICAgICAgIGxldCB7IG1hbmFnZXIsIGNvbXBvbmVudCwgYm91bmRzIH0gPSB0aGlzO1xuICAgICAgICBtYW5hZ2VyLmRpZFVwZGF0ZUxheW91dChjb21wb25lbnQsIGJvdW5kcyk7XG4gICAgICAgIHZtLmVudi5kaWRVcGRhdGUoY29tcG9uZW50LCBtYW5hZ2VyKTtcbiAgICB9XG59Il19
{
"name": "@glimmer/runtime",
"version": "0.24.0-beta.1",
"version": "0.24.0-beta.2",
"description": "Minimal runtime needed to render Glimmer templates",

@@ -8,8 +8,8 @@ "repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/runtime",

"dependencies": {
"@glimmer/util": "^0.24.0-beta.1",
"@glimmer/reference": "^0.24.0-beta.1",
"@glimmer/object": "^0.24.0-beta.1",
"@glimmer/object-reference": "^0.24.0-beta.1",
"@glimmer/wire-format": "^0.24.0-beta.1",
"@glimmer/interfaces": "^0.24.0-beta.1"
"@glimmer/util": "^0.24.0-beta.2",
"@glimmer/reference": "^0.24.0-beta.2",
"@glimmer/object": "^0.24.0-beta.2",
"@glimmer/object-reference": "^0.24.0-beta.2",
"@glimmer/wire-format": "^0.24.0-beta.2",
"@glimmer/interfaces": "^0.24.0-beta.2"
},

@@ -16,0 +16,0 @@ "devDependencies": {

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

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