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

@glimmer/compiler

Package Overview
Dependencies
Maintainers
12
Versions
289
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@glimmer/compiler - npm Package Compare versions

Comparing version 0.83.0 to 0.83.1

7

dist/commonjs/es2017/lib/wire-format-debug.js

@@ -176,7 +176,2 @@ "use strict";

case 33
/* GetFreeAsFallback */
:
return ['GetFreeAsFallback', this.upvars[opcode[1]], opcode[2]];
case 34

@@ -348,2 +343,2 @@ /* GetFreeAsComponentOrHelperHeadOrThisFallback */

exports.default = WireFormatDebugger;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBpbGVyL2xpYi93aXJlLWZvcm1hdC1kZWJ1Zy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBUUE7O0FBRUE7O0FBRWMsTUFBQSxrQkFBQSxDQUF5QjtBQUlyQyxFQUFBLFdBQUEsQ0FBWSxDQUFBLFdBQUEsRUFBQSxPQUFBLEVBQUEsUUFBQSxFQUFaLE1BQVksQ0FBWixFQUE2RTtBQUMzRSxTQUFBLE1BQUEsR0FBQSxNQUFBO0FBQ0EsU0FBQSxPQUFBLEdBQUEsT0FBQTtBQUNEOztBQUVELEVBQUEsTUFBTSxDQUFBLE9BQUEsRUFBaUM7QUFDckMsUUFBSSxHQUFHLEdBQVAsRUFBQTs7QUFFQSxTQUFLLElBQUwsU0FBQSxJQUFzQixPQUFPLENBQTdCLENBQTZCLENBQTdCLEVBQWtDO0FBQ2hDLE1BQUEsR0FBRyxDQUFILElBQUEsQ0FBUyxLQUFBLFlBQUEsQ0FBVCxTQUFTLENBQVQ7QUFDRDs7QUFFRCxXQUFBLEdBQUE7QUFDRDs7QUFFRCxFQUFBLFlBQVksQ0FBQSxNQUFBLEVBQTBCO0FBQ3BDLFFBQUksS0FBSyxDQUFMLE9BQUEsQ0FBSixNQUFJLENBQUosRUFBMkI7QUFDekIsY0FBUSxNQUFNLENBQWQsQ0FBYyxDQUFkO0FBQ0UsYUFBQTtBQUFBO0FBQUE7QUFDRSxpQkFBTyxDQUFBLFFBQUEsRUFBVyxLQUFBLFlBQUEsQ0FBa0IsTUFBTSxDQUExQyxDQUEwQyxDQUF4QixDQUFYLENBQVA7O0FBQ0YsYUFBQTtBQUFBO0FBQUE7QUFDRSxpQkFBTyxDQUFBLGlCQUFBLEVBQW9CLEtBQUEsWUFBQSxDQUFrQixNQUFNLENBQW5ELENBQW1ELENBQXhCLENBQXBCLENBQVA7O0FBRUYsYUFBQTtBQUFBO0FBQUE7QUFDRSxpQkFBTyxDQUFBLE9BQUEsRUFFTCxLQUFBLFlBQUEsQ0FBa0IsTUFBTSxDQUZuQixDQUVtQixDQUF4QixDQUZLLEVBR0wsS0FBQSxZQUFBLENBQWtCLE1BQU0s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QUFKLENBQUksQ0FBSixDQUEvQixLQUErQixDQUFsQixDQUFiO0FBQ0EsYUFBQSxLQUFBO0FBRkssS0FBQSxFQUFQLGlCQUFPLENBQVA7QUFJRDs7QUFFTyxFQUFBLFlBQVksQ0FBQSxNQUFBLEVBQStCO0FBQ2pELFFBQUksTUFBTSxLQUFWLElBQUEsRUFBcUIsT0FBQSxJQUFBO0FBRXJCLFdBQU8sTUFBTSxDQUFOLENBQU0sQ0FBTixDQUFBLE1BQUEsQ0FBaUIsQ0FBQSxLQUFBLEVBQUEsR0FBQSxFQUFBLEtBQUEsS0FBc0I7QUFDNUMsTUFBQSxLQUFLLENBQUwsR0FBSyxDQUFMLEdBQWEsS0FBQSxXQUFBLENBQWlCLE1BQU0sQ0FBTixDQUFNLENBQU4sQ0FBOUIsS0FBOEIsQ0FBakIsQ0FBYjtBQUNBLGFBQUEsS0FBQTtBQUZLLEtBQUEsRUFBUCxpQkFBTyxDQUFQO0FBSUQ7O0FBRU8sRUFBQSxXQUFXLENBQUEsS0FBQSxFQUE2QjtBQUM5QyxXQUFPO0FBQ0wsTUFBQSxVQUFVLEVBQUUsS0FBSyxDQUFMLENBQUssQ0FBTCxDQUFBLEdBQUEsQ0FBYyxDQUFELElBQU8sS0FBQSxZQUFBLENBRDNCLENBQzJCLENBQXBCLENBRFA7QUFFTCxNQUFBLFVBQVUsRUFBRSxLQUFLLENBQUEsQ0FBQTtBQUZaLEtBQVA7QUFJRDs7QUFoVG9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ3VycmllZFR5cGUsXG4gIE9wdGlvbixcbiAgU2VyaWFsaXplZElubGluZUJsb2NrLFxuICBTZXJpYWxpemVkVGVtcGxhdGVCbG9jayxcbiAgU2V4cE9wY29kZXMgYXMgT3AsXG4gIFdpcmVGb3JtYXQsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZGljdCwgZXhoYXVzdGVkIH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmltcG9ydCB7IGluZmxhdGVBdHRyTmFtZSwgaW5mbGF0ZVRhZ05hbWUgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2lyZUZvcm1hdERlYnVnZ2VyIHtcbiAgcHJpdmF0ZSB1cHZhcnM6IHN0cmluZ1tdO1xuICBwcml2YXRlIHN5bWJvbHM6IHN0cmluZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKFtfc3RhdGVtZW50cywgc3ltYm9scywgX2hhc0V2YWwsIHVwdmFyc106IFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrKSB7XG4gICAgdGhpcy51cHZhcnMgPSB1cHZhcnM7XG4gICAgdGhpcy5zeW1ib2xzID0gc3ltYm9scztcbiAgfVxuXG4gIGZvcm1hdChwcm9ncmFtOiBTZXJpYWxpemVkVGVtcGxhdGVCbG9jayk6IHVua25vd24ge1xuICAgIGxldCBvdXQgPSBbXTtcblxuICAgIGZvciAobGV0IHN0YXRlbWVudCBvZiBwcm9ncmFtWzBdKSB7XG4gICAgICBvdXQucHVzaCh0aGlzLmZvcm1hdE9wY29kZShzdGF0ZW1lbnQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3V0O1xuICB9XG5cbiAgZm9ybWF0T3Bjb2RlKG9wY29kZTogV2lyZUZvcm1hdC5TeW50YXgpOiB1bmtub3duIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvcGNvZGUpKSB7XG4gICAgICBzd2l0Y2ggKG9wY29kZVswXSkge1xuICAgICAgICBjYXNlIE9wLkFwcGVuZDpcbiAgICAgICAgICByZXR1cm4gWydhcHBlbmQnLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pXTtcbiAgICAgICAgY2FzZSBPcC5UcnVzdGluZ0FwcGVuZDpcbiAgICAgICAgICByZXR1cm4gWyd0cnVzdGluZy1hcHBlbmQnLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLkJsb2NrOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnYmxvY2snLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsyXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzNdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2tzKG9wY29kZVs0XSksXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkluRWxlbWVudDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2luLWVsZW1lbnQnLFxuICAgICAgICAgICAgb3Bjb2RlWzFdLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSA/IHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVszXSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLk9wZW5FbGVtZW50OlxuICAgICAgICAgIHJldHVybiBbJ29wZW4tZWxlbWVudCcsIGluZmxhdGVUYWdOYW1lKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuT3BlbkVsZW1lbnRXaXRoU3BsYXQ6XG4gICAgICAgICAgcmV0dXJuIFsnb3Blbi1lbGVtZW50LXdpdGgtc3BsYXQnLCBpbmZsYXRlVGFnTmFtZShvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLkNsb3NlRWxlbWVudDpcbiAgICAgICAgICByZXR1cm4gWydjbG9zZS1lbGVtZW50J107XG5cbiAgICAgICAgY2FzZSBPcC5GbHVzaEVsZW1lbnQ6XG4gICAgICAgICAgcmV0dXJuIFsnZmx1c2gtZWxlbWVudCddO1xuXG4gICAgICAgIGNhc2UgT3AuU3RhdGljQXR0cjpcbiAgICAgICAgICByZXR1cm4gWydzdGF0aWMtYXR0cicsIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLCBvcGNvZGVbMl0sIG9wY29kZVszXV07XG5cbiAgICAgICAgY2FzZSBPcC5TdGF0aWNDb21wb25lbnRBdHRyOlxuICAgICAgICAgIHJldHVybiBbJ3N0YXRpYy1jb21wb25lbnQtYXR0cicsIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLCBvcGNvZGVbMl0sIG9wY29kZVszXV07XG5cbiAgICAgICAgY2FzZSBPcC5EeW5hbWljQXR0cjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2R5bmFtaWMtYXR0cicsXG4gICAgICAgICAgICBpbmZsYXRlQXR0ck5hbWUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkNvbXBvbmVudEF0dHI6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdjb21wb25lbnQtYXR0cicsXG4gICAgICAgICAgICBpbmZsYXRlQXR0ck5hbWUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkF0dHJTcGxhdDpcbiAgICAgICAgICByZXR1cm4gWydhdHRyLXNwbGF0J107XG5cbiAgICAgICAgY2FzZSBPcC5ZaWVsZDpcbiAgICAgICAgICByZXR1cm4gWyd5aWVsZCcsIG9wY29kZVsxXSwgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzJdKV07XG5cbiAgICAgICAgY2FzZSBPcC5EeW5hbWljQXJnOlxuICAgICAgICAgIHJldHVybiBbJ2R5bmFtaWMtYXJnJywgb3Bjb2RlWzFdLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLlN0YXRpY0FyZzpcbiAgICAgICAgICByZXR1cm4gWydzdGF0aWMtYXJnJywgb3Bjb2RlWzFdLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLlRydXN0aW5nRHluYW1pY0F0dHI6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICd0cnVzdGluZy1keW5hbWljLWF0dHInLFxuICAgICAgICAgICAgaW5mbGF0ZUF0dHJOYW1lKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pLFxuICAgICAgICAgICAgb3Bjb2RlWzNdLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5UcnVzdGluZ0NvbXBvbmVudEF0dHI6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICd0cnVzdGluZy1jb21wb25lbnQtYXR0cicsXG4gICAgICAgICAgICBpbmZsYXRlQXR0ck5hbWUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkRlYnVnZ2VyOlxuICAgICAgICAgIHJldHVybiBbJ2RlYnVnZ2VyJywgb3Bjb2RlWzFdXTtcblxuICAgICAgICBjYXNlIE9wLkNvbW1lbnQ6XG4gICAgICAgICAgcmV0dXJuIFsnY29tbWVudCcsIG9wY29kZVsxXV07XG5cbiAgICAgICAgY2FzZSBPcC5Nb2RpZmllcjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ21vZGlmaWVyJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMl0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRIYXNoKG9wY29kZVszXSksXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkNvbXBvbmVudDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2NvbXBvbmVudCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRFbGVtZW50UGFyYW1zKG9wY29kZVsyXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzNdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2tzKG9wY29kZVs0XSksXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkhhc0Jsb2NrOlxuICAgICAgICAgIHJldHVybiBbJ2hhcy1ibG9jaycsIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuSGFzQmxvY2tQYXJhbXM6XG4gICAgICAgICAgcmV0dXJuIFsnaGFzLWJsb2NrLXBhcmFtcycsIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuQ3Vycnk6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdjdXJyeScsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRDdXJyeVR5cGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVszXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzRdKSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuVW5kZWZpbmVkOlxuICAgICAgICAgIHJldHVybiBbJ3VuZGVmaW5lZCddO1xuXG4gICAgICAgIGNhc2UgT3AuQ2FsbDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2NhbGwnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsyXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzNdKSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuQ29uY2F0OlxuICAgICAgICAgIHJldHVybiBbJ2NvbmNhdCcsIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsxXSBhcyBXaXJlRm9ybWF0LkNvcmUuUGFyYW1zKV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRTdHJpY3RGcmVlOlxuICAgICAgICAgIHJldHVybiBbJ2dldC1zdHJpY3QtZnJlZScsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNGYWxsYmFjazpcbiAgICAgICAgICByZXR1cm4gWydHZXRGcmVlQXNGYWxsYmFjaycsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjazpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ0dldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrJyxcbiAgICAgICAgICAgIHRoaXMudXB2YXJzW29wY29kZVsxXV0sXG4gICAgICAgICAgICBvcGNvZGVbMl0sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZDpcbiAgICAgICAgICByZXR1cm4gWydHZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWQnLCB0aGlzLnVwdmFyc1tvcGNvZGVbMV1dLCBvcGNvZGVbMl1dO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFjaycsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNEZXByZWNhdGVkSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2snLCB0aGlzLnVwdmFyc1tvcGNvZGVbMV1dXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0hlbHBlckhlYWQ6XG4gICAgICAgICAgcmV0dXJuIFsnR2V0RnJlZUFzSGVscGVySGVhZCcsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNDb21wb25lbnRIZWFkOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc0NvbXBvbmVudEhlYWQnLCB0aGlzLnVwdmFyc1tvcGNvZGVbMV1dLCBvcGNvZGVbMl1dO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RnJlZUFzTW9kaWZpZXJIZWFkOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc01vZGlmaWVySGVhZCcsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRTeW1ib2w6IHtcbiAgICAgICAgICBpZiAob3Bjb2RlWzFdID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gWydnZXQtc3ltYm9sJywgJ3RoaXMnLCBvcGNvZGVbMl1dO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gWydnZXQtc3ltYm9sJywgdGhpcy5zeW1ib2xzW29wY29kZVsxXSAtIDFdLCBvcGNvZGVbMl1dO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgT3AuR2V0VGVtcGxhdGVTeW1ib2w6IHtcbiAgICAgICAgICByZXR1cm4gWydnZXQtdGVtcGxhdGUtc3ltYm9sJywgb3Bjb2RlWzFdLCBvcGNvZGVbMl1dO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBPcC5JZjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2lmJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10gPyB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVszXSkgOiBudWxsLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5JZklubGluZTpcbiAgICAgICAgICByZXR1cm4gWydpZi1pbmxpbmUnXTtcblxuICAgICAgICBjYXNlIE9wLk5vdDpcbiAgICAgICAgICByZXR1cm4gWydub3QnXTtcblxuICAgICAgICBjYXNlIE9wLkVhY2g6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdlYWNoJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICBvcGNvZGVbMl0gPyB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pIDogbnVsbCxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzNdKSxcbiAgICAgICAgICAgIG9wY29kZVs0XSA/IHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzRdKSA6IG51bGwsXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLldpdGg6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICd3aXRoJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10gPyB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVszXSkgOiBudWxsLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5MZXQ6XG4gICAgICAgICAgcmV0dXJuIFsnbGV0JywgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzFdKSwgdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLkxvZzpcbiAgICAgICAgICByZXR1cm4gWydsb2cnLCB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLldpdGhEeW5hbWljVmFyczpcbiAgICAgICAgICByZXR1cm4gWyctd2l0aC1keW5hbWljLXZhcnMnLCB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzFdKSwgdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLkdldER5bmFtaWNWYXI6XG4gICAgICAgICAgcmV0dXJuIFsnLWdldC1keW5hbWljLXZhcnMnLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLkludm9rZUNvbXBvbmVudDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2NvbXBvbmVudCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbM10pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRCbG9ja3Mob3Bjb2RlWzRdKSxcbiAgICAgICAgICBdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3Bjb2RlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0Q3VycnlUeXBlKHZhbHVlOiBDdXJyaWVkVHlwZSkge1xuICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgIGNhc2UgQ3VycmllZFR5cGUuQ29tcG9uZW50OlxuICAgICAgICByZXR1cm4gJ2NvbXBvbmVudCc7XG4gICAgICBjYXNlIEN1cnJpZWRUeXBlLkhlbHBlcjpcbiAgICAgICAgcmV0dXJuICdoZWxwZXInO1xuICAgICAgY2FzZSBDdXJyaWVkVHlwZS5Nb2RpZmllcjpcbiAgICAgICAgcmV0dXJuICdtb2RpZmllcic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBleGhhdXN0ZWQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0RWxlbWVudFBhcmFtcyhvcGNvZGVzOiBPcHRpb248V2lyZUZvcm1hdC5FbGVtZW50UGFyYW1ldGVyW10+KTogT3B0aW9uPHVua25vd25bXT4ge1xuICAgIGlmIChvcGNvZGVzID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gb3Bjb2Rlcy5tYXAoKG8pID0+IHRoaXMuZm9ybWF0T3Bjb2RlKG8pKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0UGFyYW1zKG9wY29kZXM6IE9wdGlvbjxXaXJlRm9ybWF0LkV4cHJlc3Npb25bXT4pOiBPcHRpb248dW5rbm93bltdPiB7XG4gICAgaWYgKG9wY29kZXMgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBvcGNvZGVzLm1hcCgobykgPT4gdGhpcy5mb3JtYXRPcGNvZGUobykpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRIYXNoKGhhc2g6IFdpcmVGb3JtYXQuQ29yZS5IYXNoKTogT3B0aW9uPG9iamVjdD4ge1xuICAgIGlmIChoYXNoID09PSBudWxsKSByZXR1cm4gbnVsbDtcblxuICAgIHJldHVybiBoYXNoWzBdLnJlZHVjZSgoYWNjdW0sIGtleSwgaW5kZXgpID0+IHtcbiAgICAgIGFjY3VtW2tleV0gPSB0aGlzLmZvcm1hdE9wY29kZShoYXNoWzFdW2luZGV4XSk7XG4gICAgICByZXR1cm4gYWNjdW07XG4gICAgfSwgZGljdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0QmxvY2tzKGJsb2NrczogV2lyZUZvcm1hdC5Db3JlLkJsb2Nrcyk6IE9wdGlvbjxvYmplY3Q+IHtcbiAgICBpZiAoYmxvY2tzID09PSBudWxsKSByZXR1cm4gbnVsbDtcblxuICAgIHJldHVybiBibG9ja3NbMF0ucmVkdWNlKChhY2N1bSwga2V5LCBpbmRleCkgPT4ge1xuICAgICAgYWNjdW1ba2V5XSA9IHRoaXMuZm9ybWF0QmxvY2soYmxvY2tzWzFdW2luZGV4XSk7XG4gICAgICByZXR1cm4gYWNjdW07XG4gICAgfSwgZGljdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0QmxvY2soYmxvY2s6IFNlcmlhbGl6ZWRJbmxpbmVCbG9jayk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXRlbWVudHM6IGJsb2NrWzBdLm1hcCgocykgPT4gdGhpcy5mb3JtYXRPcGNvZGUocykpLFxuICAgICAgcGFyYW1ldGVyczogYmxvY2tbMV0sXG4gICAgfTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBpbGVyL2xpYi93aXJlLWZvcm1hdC1kZWJ1Zy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBUUE7O0FBRUE7O0FBRWMsTUFBQSxrQkFBQSxDQUF5QjtBQUlyQyxFQUFBLFdBQUEsQ0FBWSxDQUFBLFdBQUEsRUFBQSxPQUFBLEVBQUEsUUFBQSxFQUFaLE1BQVksQ0FBWixFQUE2RTtBQUMzRSxTQUFBLE1BQUEsR0FBQSxNQUFBO0FBQ0EsU0FBQSxPQUFBLEdBQUEsT0FBQTtBQUNEOztBQUVELEVBQUEsTUFBTSxDQUFBLE9BQUEsRUFBaUM7QUFDckMsUUFBSSxHQUFHLEdBQVAsRUFBQTs7QUFFQSxTQUFLLElBQUwsU0FBQSxJQUFzQixPQUFPLENBQTdCLENBQTZCLENBQTdCLEVBQWtDO0FBQ2hDLE1BQUEsR0FBRyxDQUFILElBQUEsQ0FBUyxLQUFBLFlBQUEsQ0FBVCxTQUFTLENBQVQ7QUFDRDs7QUFFRCxXQUFBLEdBQUE7QUFDRDs7QUFFRCxFQUFBLFlBQVksQ0FBQSxNQUFBLEVBQTBCO0FBQ3BDLFFBQUksS0FBSyxDQUFMLE9BQUEsQ0FBSixNQUFJLENBQUosRUFBMkI7QUFDekIsY0FBUSxNQUFNLENBQWQsQ0FBYyxDQUFkO0FBQ0UsYUFBQTtBQUFBO0FBQUE7QUFDRSxpQkFBTyxDQUFBLFFBQUEsRUFBVyxLQUFBLFlBQUEsQ0FBa0IsTUFBTSxDQUExQyxDQUEwQyxDQUF4QixDQUFYLENBQVA7O0FBQ0YsYUFBQTtBQUFBO0FBQUE7QUFDRSxpQkFBTyxDQUFBLGlCQUFBLEVBQW9CLEtBQUEsWUFBQSxDQUFrQixNQUFNLENBQW5ELENBQW1ELENBQXhCLENBQXBCLENBQVA7O0FBRUYsYUFBQTtBQUFBO0FBQUE7QUFDRSxpQkFBTyxDQUFBLE9BQUEsRUFFTCxLQUFBLFlBQUEsQ0FBa0IsTUFBTSxDQUZuQixDQUVtQixDQUF4QixDQUZLLEVBR0wsS0FBQSxZQUFBLENBQWtCLE1BQU0s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QUFNLEtBQVYsSUFBQSxFQUFxQixPQUFBLElBQUE7QUFFckIsV0FBTyxNQUFNLENBQU4sQ0FBTSxDQUFOLENBQUEsTUFBQSxDQUFpQixDQUFBLEtBQUEsRUFBQSxHQUFBLEVBQUEsS0FBQSxLQUFzQjtBQUM1QyxNQUFBLEtBQUssQ0FBTCxHQUFLLENBQUwsR0FBYSxLQUFBLFdBQUEsQ0FBaUIsTUFBTSxDQUFOLENBQU0sQ0FBTixDQUE5QixLQUE4QixDQUFqQixDQUFiO0FBQ0EsYUFBQSxLQUFBO0FBRkssS0FBQSxFQUFQLGlCQUFPLENBQVA7QUFJRDs7QUFFTyxFQUFBLFdBQVcsQ0FBQSxLQUFBLEVBQTZCO0FBQzlDLFdBQU87QUFDTCxNQUFBLFVBQVUsRUFBRSxLQUFLLENBQUwsQ0FBSyxDQUFMLENBQUEsR0FBQSxDQUFjLENBQUQsSUFBTyxLQUFBLFlBQUEsQ0FEM0IsQ0FDMkIsQ0FBcEIsQ0FEUDtBQUVMLE1BQUEsVUFBVSxFQUFFLEtBQUssQ0FBQSxDQUFBO0FBRlosS0FBUDtBQUlEOztBQTdTb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDdXJyaWVkVHlwZSxcbiAgT3B0aW9uLFxuICBTZXJpYWxpemVkSW5saW5lQmxvY2ssXG4gIFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrLFxuICBTZXhwT3Bjb2RlcyBhcyBPcCxcbiAgV2lyZUZvcm1hdCxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBkaWN0LCBleGhhdXN0ZWQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuaW1wb3J0IHsgaW5mbGF0ZUF0dHJOYW1lLCBpbmZsYXRlVGFnTmFtZSB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBXaXJlRm9ybWF0RGVidWdnZXIge1xuICBwcml2YXRlIHVwdmFyczogc3RyaW5nW107XG4gIHByaXZhdGUgc3ltYm9sczogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IoW19zdGF0ZW1lbnRzLCBzeW1ib2xzLCBfaGFzRXZhbCwgdXB2YXJzXTogU2VyaWFsaXplZFRlbXBsYXRlQmxvY2spIHtcbiAgICB0aGlzLnVwdmFycyA9IHVwdmFycztcbiAgICB0aGlzLnN5bWJvbHMgPSBzeW1ib2xzO1xuICB9XG5cbiAgZm9ybWF0KHByb2dyYW06IFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrKTogdW5rbm93biB7XG4gICAgbGV0IG91dCA9IFtdO1xuXG4gICAgZm9yIChsZXQgc3RhdGVtZW50IG9mIHByb2dyYW1bMF0pIHtcbiAgICAgIG91dC5wdXNoKHRoaXMuZm9ybWF0T3Bjb2RlKHN0YXRlbWVudCkpO1xuICAgIH1cblxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICBmb3JtYXRPcGNvZGUob3Bjb2RlOiBXaXJlRm9ybWF0LlN5bnRheCk6IHVua25vd24ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9wY29kZSkpIHtcbiAgICAgIHN3aXRjaCAob3Bjb2RlWzBdKSB7XG4gICAgICAgIGNhc2UgT3AuQXBwZW5kOlxuICAgICAgICAgIHJldHVybiBbJ2FwcGVuZCcsIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSldO1xuICAgICAgICBjYXNlIE9wLlRydXN0aW5nQXBwZW5kOlxuICAgICAgICAgIHJldHVybiBbJ3RydXN0aW5nLWFwcGVuZCcsIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuQmxvY2s6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdibG9jaycsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbM10pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRCbG9ja3Mob3Bjb2RlWzRdKSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuSW5FbGVtZW50OlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnaW4tZWxlbWVudCcsXG4gICAgICAgICAgICBvcGNvZGVbMV0sXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pLFxuICAgICAgICAgICAgb3Bjb2RlWzNdID8gdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzNdKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuT3BlbkVsZW1lbnQ6XG4gICAgICAgICAgcmV0dXJuIFsnb3Blbi1lbGVtZW50JywgaW5mbGF0ZVRhZ05hbWUob3Bjb2RlWzFdKV07XG5cbiAgICAgICAgY2FzZSBPcC5PcGVuRWxlbWVudFdpdGhTcGxhdDpcbiAgICAgICAgICByZXR1cm4gWydvcGVuLWVsZW1lbnQtd2l0aC1zcGxhdCcsIGluZmxhdGVUYWdOYW1lKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuQ2xvc2VFbGVtZW50OlxuICAgICAgICAgIHJldHVybiBbJ2Nsb3NlLWVsZW1lbnQnXTtcblxuICAgICAgICBjYXNlIE9wLkZsdXNoRWxlbWVudDpcbiAgICAgICAgICByZXR1cm4gWydmbHVzaC1lbGVtZW50J107XG5cbiAgICAgICAgY2FzZSBPcC5TdGF0aWNBdHRyOlxuICAgICAgICAgIHJldHVybiBbJ3N0YXRpYy1hdHRyJywgaW5mbGF0ZUF0dHJOYW1lKG9wY29kZVsxXSksIG9wY29kZVsyXSwgb3Bjb2RlWzNdXTtcblxuICAgICAgICBjYXNlIE9wLlN0YXRpY0NvbXBvbmVudEF0dHI6XG4gICAgICAgICAgcmV0dXJuIFsnc3RhdGljLWNvbXBvbmVudC1hdHRyJywgaW5mbGF0ZUF0dHJOYW1lKG9wY29kZVsxXSksIG9wY29kZVsyXSwgb3Bjb2RlWzNdXTtcblxuICAgICAgICBjYXNlIE9wLkR5bmFtaWNBdHRyOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnZHluYW1pYy1hdHRyJyxcbiAgICAgICAgICAgIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuQ29tcG9uZW50QXR0cjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2NvbXBvbmVudC1hdHRyJyxcbiAgICAgICAgICAgIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuQXR0clNwbGF0OlxuICAgICAgICAgIHJldHVybiBbJ2F0dHItc3BsYXQnXTtcblxuICAgICAgICBjYXNlIE9wLllpZWxkOlxuICAgICAgICAgIHJldHVybiBbJ3lpZWxkJywgb3Bjb2RlWzFdLCB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLkR5bmFtaWNBcmc6XG4gICAgICAgICAgcmV0dXJuIFsnZHluYW1pYy1hcmcnLCBvcGNvZGVbMV0sIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSldO1xuXG4gICAgICAgIGNhc2UgT3AuU3RhdGljQXJnOlxuICAgICAgICAgIHJldHVybiBbJ3N0YXRpYy1hcmcnLCBvcGNvZGVbMV0sIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSldO1xuXG4gICAgICAgIGNhc2UgT3AuVHJ1c3RpbmdEeW5hbWljQXR0cjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ3RydXN0aW5nLWR5bmFtaWMtYXR0cicsXG4gICAgICAgICAgICBpbmZsYXRlQXR0ck5hbWUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLlRydXN0aW5nQ29tcG9uZW50QXR0cjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ3RydXN0aW5nLWNvbXBvbmVudC1hdHRyJyxcbiAgICAgICAgICAgIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuRGVidWdnZXI6XG4gICAgICAgICAgcmV0dXJuIFsnZGVidWdnZXInLCBvcGNvZGVbMV1dO1xuXG4gICAgICAgIGNhc2UgT3AuQ29tbWVudDpcbiAgICAgICAgICByZXR1cm4gWydjb21tZW50Jywgb3Bjb2RlWzFdXTtcblxuICAgICAgICBjYXNlIE9wLk1vZGlmaWVyOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnbW9kaWZpZXInLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsyXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzNdKSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuQ29tcG9uZW50OlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnY29tcG9uZW50JyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEVsZW1lbnRQYXJhbXMob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbM10pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRCbG9ja3Mob3Bjb2RlWzRdKSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuSGFzQmxvY2s6XG4gICAgICAgICAgcmV0dXJuIFsnaGFzLWJsb2NrJywgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKV07XG5cbiAgICAgICAgY2FzZSBPcC5IYXNCbG9ja1BhcmFtczpcbiAgICAgICAgICByZXR1cm4gWydoYXMtYmxvY2stcGFyYW1zJywgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKV07XG5cbiAgICAgICAgY2FzZSBPcC5DdXJyeTpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2N1cnJ5JyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEN1cnJ5VHlwZShvcGNvZGVbMl0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzNdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbNF0pLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5VbmRlZmluZWQ6XG4gICAgICAgICAgcmV0dXJuIFsndW5kZWZpbmVkJ107XG5cbiAgICAgICAgY2FzZSBPcC5DYWxsOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnY2FsbCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbM10pLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5Db25jYXQ6XG4gICAgICAgICAgcmV0dXJuIFsnY29uY2F0JywgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzFdIGFzIFdpcmVGb3JtYXQuQ29yZS5QYXJhbXMpXTtcblxuICAgICAgICBjYXNlIE9wLkdldFN0cmljdEZyZWU6XG4gICAgICAgICAgcmV0dXJuIFsnZ2V0LXN0cmljdC1mcmVlJywgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSwgb3Bjb2RlWzJdXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2snLFxuICAgICAgICAgICAgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSxcbiAgICAgICAgICAgIG9wY29kZVsyXSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZCcsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2s6XG4gICAgICAgICAgcmV0dXJuIFsnR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrJywgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSwgb3Bjb2RlWzJdXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2s6XG4gICAgICAgICAgcmV0dXJuIFsnR2V0RnJlZUFzRGVwcmVjYXRlZEhlbHBlckhlYWRPclRoaXNGYWxsYmFjaycsIHRoaXMudXB2YXJzW29wY29kZVsxXV1dO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RnJlZUFzSGVscGVySGVhZDpcbiAgICAgICAgICByZXR1cm4gWydHZXRGcmVlQXNIZWxwZXJIZWFkJywgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSwgb3Bjb2RlWzJdXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0NvbXBvbmVudEhlYWQ6XG4gICAgICAgICAgcmV0dXJuIFsnR2V0RnJlZUFzQ29tcG9uZW50SGVhZCcsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNNb2RpZmllckhlYWQ6XG4gICAgICAgICAgcmV0dXJuIFsnR2V0RnJlZUFzTW9kaWZpZXJIZWFkJywgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSwgb3Bjb2RlWzJdXTtcblxuICAgICAgICBjYXNlIE9wLkdldFN5bWJvbDoge1xuICAgICAgICAgIGlmIChvcGNvZGVbMV0gPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBbJ2dldC1zeW1ib2wnLCAndGhpcycsIG9wY29kZVsyXV07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbJ2dldC1zeW1ib2wnLCB0aGlzLnN5bWJvbHNbb3Bjb2RlWzFdIC0gMV0sIG9wY29kZVsyXV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBPcC5HZXRUZW1wbGF0ZVN5bWJvbDoge1xuICAgICAgICAgIHJldHVybiBbJ2dldC10ZW1wbGF0ZS1zeW1ib2wnLCBvcGNvZGVbMV0sIG9wY29kZVsyXV07XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIE9wLklmOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnaWYnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSA/IHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzNdKSA6IG51bGwsXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLklmSW5saW5lOlxuICAgICAgICAgIHJldHVybiBbJ2lmLWlubGluZSddO1xuXG4gICAgICAgIGNhc2UgT3AuTm90OlxuICAgICAgICAgIHJldHVybiBbJ25vdCddO1xuXG4gICAgICAgIGNhc2UgT3AuRWFjaDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2VhY2gnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIG9wY29kZVsyXSA/IHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSkgOiBudWxsLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbM10pLFxuICAgICAgICAgICAgb3Bjb2RlWzRdID8gdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbNF0pIDogbnVsbCxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuV2l0aDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ3dpdGgnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSA/IHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzNdKSA6IG51bGwsXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkxldDpcbiAgICAgICAgICByZXR1cm4gWydsZXQnLCB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMV0pLCB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVsyXSldO1xuXG4gICAgICAgIGNhc2UgT3AuTG9nOlxuICAgICAgICAgIHJldHVybiBbJ2xvZycsIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuV2l0aER5bmFtaWNWYXJzOlxuICAgICAgICAgIHJldHVybiBbJy13aXRoLWR5bmFtaWMtdmFycycsIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbMV0pLCB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVsyXSldO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RHluYW1pY1ZhcjpcbiAgICAgICAgICByZXR1cm4gWyctZ2V0LWR5bmFtaWMtdmFycycsIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuSW52b2tlQ29tcG9uZW50OlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnY29tcG9uZW50JyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMl0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRIYXNoKG9wY29kZVszXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEJsb2NrcyhvcGNvZGVbNF0pLFxuICAgICAgICAgIF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcGNvZGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRDdXJyeVR5cGUodmFsdWU6IEN1cnJpZWRUeXBlKSB7XG4gICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgY2FzZSBDdXJyaWVkVHlwZS5Db21wb25lbnQ6XG4gICAgICAgIHJldHVybiAnY29tcG9uZW50JztcbiAgICAgIGNhc2UgQ3VycmllZFR5cGUuSGVscGVyOlxuICAgICAgICByZXR1cm4gJ2hlbHBlcic7XG4gICAgICBjYXNlIEN1cnJpZWRUeXBlLk1vZGlmaWVyOlxuICAgICAgICByZXR1cm4gJ21vZGlmaWVyJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IGV4aGF1c3RlZCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRFbGVtZW50UGFyYW1zKG9wY29kZXM6IE9wdGlvbjxXaXJlRm9ybWF0LkVsZW1lbnRQYXJhbWV0ZXJbXT4pOiBPcHRpb248dW5rbm93bltdPiB7XG4gICAgaWYgKG9wY29kZXMgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBvcGNvZGVzLm1hcCgobykgPT4gdGhpcy5mb3JtYXRPcGNvZGUobykpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRQYXJhbXMob3Bjb2RlczogT3B0aW9uPFdpcmVGb3JtYXQuRXhwcmVzc2lvbltdPik6IE9wdGlvbjx1bmtub3duW10+IHtcbiAgICBpZiAob3Bjb2RlcyA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIG9wY29kZXMubWFwKChvKSA9PiB0aGlzLmZvcm1hdE9wY29kZShvKSk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEhhc2goaGFzaDogV2lyZUZvcm1hdC5Db3JlLkhhc2gpOiBPcHRpb248b2JqZWN0PiB7XG4gICAgaWYgKGhhc2ggPT09IG51bGwpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIGhhc2hbMF0ucmVkdWNlKChhY2N1bSwga2V5LCBpbmRleCkgPT4ge1xuICAgICAgYWNjdW1ba2V5XSA9IHRoaXMuZm9ybWF0T3Bjb2RlKGhhc2hbMV1baW5kZXhdKTtcbiAgICAgIHJldHVybiBhY2N1bTtcbiAgICB9LCBkaWN0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRCbG9ja3MoYmxvY2tzOiBXaXJlRm9ybWF0LkNvcmUuQmxvY2tzKTogT3B0aW9uPG9iamVjdD4ge1xuICAgIGlmIChibG9ja3MgPT09IG51bGwpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIGJsb2Nrc1swXS5yZWR1Y2UoKGFjY3VtLCBrZXksIGluZGV4KSA9PiB7XG4gICAgICBhY2N1bVtrZXldID0gdGhpcy5mb3JtYXRCbG9jayhibG9ja3NbMV1baW5kZXhdKTtcbiAgICAgIHJldHVybiBhY2N1bTtcbiAgICB9LCBkaWN0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRCbG9jayhibG9jazogU2VyaWFsaXplZElubGluZUJsb2NrKTogb2JqZWN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhdGVtZW50czogYmxvY2tbMF0ubWFwKChzKSA9PiB0aGlzLmZvcm1hdE9wY29kZShzKSksXG4gICAgICBwYXJhbWV0ZXJzOiBibG9ja1sxXSxcbiAgICB9O1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9

@@ -227,7 +227,2 @@ "use strict";

case 33
/* GetFreeAsFallback */
:
return ['GetFreeAsFallback', this.upvars[opcode[1]], opcode[2]];
case 34

@@ -416,2 +411,2 @@ /* GetFreeAsComponentOrHelperHeadOrThisFallback */

exports.default = WireFormatDebugger;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBpbGVyL2xpYi93aXJlLWZvcm1hdC1kZWJ1Zy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBUUE7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFYyxrQjtBQUlaLFdBQUEsa0JBQUEsQ0FBQSxJQUFBLEVBQTZFO0FBQUEsUUFBakUsV0FBaUUsR0FBQSxJQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsUUFBakUsT0FBaUUsR0FBQSxJQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsUUFBakUsUUFBaUUsR0FBQSxJQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsUUFBN0UsTUFBNkUsR0FBQSxJQUFBLENBQUEsQ0FBQSxDQUFBO0FBQzNFLFNBQUEsTUFBQSxHQUFBLE1BQUE7QUFDQSxTQUFBLE9BQUEsR0FBQSxPQUFBO0FBQ0Q7Ozs7U0FFRCxNLEdBQUEsU0FBQSxNQUFBLENBQUEsT0FBQSxFQUF1QztBQUNyQyxRQUFJLEdBQUcsR0FBUCxFQUFBOztBQUVBLFNBQUEsSUFBQSxTQUFBLEdBQUEsK0JBQUEsQ0FBc0IsT0FBTyxDQUE3QixDQUE2QixDQUE3QixDQUFBLEVBQUEsS0FBQSxFQUFBLENBQUEsQ0FBQSxLQUFBLEdBQUEsU0FBQSxFQUFBLEVBQUEsSUFBQSxHQUFrQztBQUFBLFVBQWxDLFNBQWtDLEdBQUEsS0FBQSxDQUFBLEtBQUE7QUFDaEMsTUFBQSxHQUFHLENBQUgsSUFBQSxDQUFTLEtBQUEsWUFBQSxDQUFULFNBQVMsQ0FBVDtBQUNEOztBQUVELFdBQUEsR0FBQTs7O1NBR0YsWSxHQUFBLFNBQUEsWUFBQSxDQUFBLE1BQUEsRUFBc0M7QUFDcEMsUUFBSSxLQUFLLENBQUwsT0FBQSxDQUFKLE1BQUksQ0FBSixFQUEyQjtBQUN6QixjQUFRLE1BQU0sQ0FBZCxDQUFjLENBQWQ7QUFDRSxhQUFBO0FBQUE7QUFBQTtBQUNFLGlCQUFPLENB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QUEsSUFBQTs7QUFDOUMsV0FBTztBQUNMLE1BQUEsVUFBVSxFQUFFLEtBQUssQ0FBTCxDQUFLLENBQUwsQ0FBQSxHQUFBLENBQWMsVUFBRCxDQUFDLEVBQUQ7QUFBQSxlQUFPLE1BQUEsQ0FBQSxZQUFBLENBRDNCLENBQzJCLENBQVA7QUFEcEIsT0FDTyxDQURQO0FBRUwsTUFBQSxVQUFVLEVBQUUsS0FBSyxDQUFBLENBQUE7QUFGWixLQUFQIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ3VycmllZFR5cGUsXG4gIE9wdGlvbixcbiAgU2VyaWFsaXplZElubGluZUJsb2NrLFxuICBTZXJpYWxpemVkVGVtcGxhdGVCbG9jayxcbiAgU2V4cE9wY29kZXMgYXMgT3AsXG4gIFdpcmVGb3JtYXQsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZGljdCwgZXhoYXVzdGVkIH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmltcG9ydCB7IGluZmxhdGVBdHRyTmFtZSwgaW5mbGF0ZVRhZ05hbWUgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2lyZUZvcm1hdERlYnVnZ2VyIHtcbiAgcHJpdmF0ZSB1cHZhcnM6IHN0cmluZ1tdO1xuICBwcml2YXRlIHN5bWJvbHM6IHN0cmluZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKFtfc3RhdGVtZW50cywgc3ltYm9scywgX2hhc0V2YWwsIHVwdmFyc106IFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrKSB7XG4gICAgdGhpcy51cHZhcnMgPSB1cHZhcnM7XG4gICAgdGhpcy5zeW1ib2xzID0gc3ltYm9scztcbiAgfVxuXG4gIGZvcm1hdChwcm9ncmFtOiBTZXJpYWxpemVkVGVtcGxhdGVCbG9jayk6IHVua25vd24ge1xuICAgIGxldCBvdXQgPSBbXTtcblxuICAgIGZvciAobGV0IHN0YXRlbWVudCBvZiBwcm9ncmFtWzBdKSB7XG4gICAgICBvdXQucHVzaCh0aGlzLmZvcm1hdE9wY29kZShzdGF0ZW1lbnQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3V0O1xuICB9XG5cbiAgZm9ybWF0T3Bjb2RlKG9wY29kZTogV2lyZUZvcm1hdC5TeW50YXgpOiB1bmtub3duIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvcGNvZGUpKSB7XG4gICAgICBzd2l0Y2ggKG9wY29kZVswXSkge1xuICAgICAgICBjYXNlIE9wLkFwcGVuZDpcbiAgICAgICAgICByZXR1cm4gWydhcHBlbmQnLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pXTtcbiAgICAgICAgY2FzZSBPcC5UcnVzdGluZ0FwcGVuZDpcbiAgICAgICAgICByZXR1cm4gWyd0cnVzdGluZy1hcHBlbmQnLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLkJsb2NrOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnYmxvY2snLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsyXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzNdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2tzKG9wY29kZVs0XSksXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkluRWxlbWVudDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2luLWVsZW1lbnQnLFxuICAgICAgICAgICAgb3Bjb2RlWzFdLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSA/IHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVszXSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLk9wZW5FbGVtZW50OlxuICAgICAgICAgIHJldHVybiBbJ29wZW4tZWxlbWVudCcsIGluZmxhdGVUYWdOYW1lKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuT3BlbkVsZW1lbnRXaXRoU3BsYXQ6XG4gICAgICAgICAgcmV0dXJuIFsnb3Blbi1lbGVtZW50LXdpdGgtc3BsYXQnLCBpbmZsYXRlVGFnTmFtZShvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLkNsb3NlRWxlbWVudDpcbiAgICAgICAgICByZXR1cm4gWydjbG9zZS1lbGVtZW50J107XG5cbiAgICAgICAgY2FzZSBPcC5GbHVzaEVsZW1lbnQ6XG4gICAgICAgICAgcmV0dXJuIFsnZmx1c2gtZWxlbWVudCddO1xuXG4gICAgICAgIGNhc2UgT3AuU3RhdGljQXR0cjpcbiAgICAgICAgICByZXR1cm4gWydzdGF0aWMtYXR0cicsIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLCBvcGNvZGVbMl0sIG9wY29kZVszXV07XG5cbiAgICAgICAgY2FzZSBPcC5TdGF0aWNDb21wb25lbnRBdHRyOlxuICAgICAgICAgIHJldHVybiBbJ3N0YXRpYy1jb21wb25lbnQtYXR0cicsIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLCBvcGNvZGVbMl0sIG9wY29kZVszXV07XG5cbiAgICAgICAgY2FzZSBPcC5EeW5hbWljQXR0cjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2R5bmFtaWMtYXR0cicsXG4gICAgICAgICAgICBpbmZsYXRlQXR0ck5hbWUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkNvbXBvbmVudEF0dHI6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdjb21wb25lbnQtYXR0cicsXG4gICAgICAgICAgICBpbmZsYXRlQXR0ck5hbWUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkF0dHJTcGxhdDpcbiAgICAgICAgICByZXR1cm4gWydhdHRyLXNwbGF0J107XG5cbiAgICAgICAgY2FzZSBPcC5ZaWVsZDpcbiAgICAgICAgICByZXR1cm4gWyd5aWVsZCcsIG9wY29kZVsxXSwgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzJdKV07XG5cbiAgICAgICAgY2FzZSBPcC5EeW5hbWljQXJnOlxuICAgICAgICAgIHJldHVybiBbJ2R5bmFtaWMtYXJnJywgb3Bjb2RlWzFdLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLlN0YXRpY0FyZzpcbiAgICAgICAgICByZXR1cm4gWydzdGF0aWMtYXJnJywgb3Bjb2RlWzFdLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLlRydXN0aW5nRHluYW1pY0F0dHI6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICd0cnVzdGluZy1keW5hbWljLWF0dHInLFxuICAgICAgICAgICAgaW5mbGF0ZUF0dHJOYW1lKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pLFxuICAgICAgICAgICAgb3Bjb2RlWzNdLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5UcnVzdGluZ0NvbXBvbmVudEF0dHI6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICd0cnVzdGluZy1jb21wb25lbnQtYXR0cicsXG4gICAgICAgICAgICBpbmZsYXRlQXR0ck5hbWUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkRlYnVnZ2VyOlxuICAgICAgICAgIHJldHVybiBbJ2RlYnVnZ2VyJywgb3Bjb2RlWzFdXTtcblxuICAgICAgICBjYXNlIE9wLkNvbW1lbnQ6XG4gICAgICAgICAgcmV0dXJuIFsnY29tbWVudCcsIG9wY29kZVsxXV07XG5cbiAgICAgICAgY2FzZSBPcC5Nb2RpZmllcjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ21vZGlmaWVyJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMl0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRIYXNoKG9wY29kZVszXSksXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkNvbXBvbmVudDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2NvbXBvbmVudCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRFbGVtZW50UGFyYW1zKG9wY29kZVsyXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzNdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2tzKG9wY29kZVs0XSksXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkhhc0Jsb2NrOlxuICAgICAgICAgIHJldHVybiBbJ2hhcy1ibG9jaycsIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuSGFzQmxvY2tQYXJhbXM6XG4gICAgICAgICAgcmV0dXJuIFsnaGFzLWJsb2NrLXBhcmFtcycsIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuQ3Vycnk6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdjdXJyeScsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRDdXJyeVR5cGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVszXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzRdKSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuVW5kZWZpbmVkOlxuICAgICAgICAgIHJldHVybiBbJ3VuZGVmaW5lZCddO1xuXG4gICAgICAgIGNhc2UgT3AuQ2FsbDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2NhbGwnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsyXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzNdKSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuQ29uY2F0OlxuICAgICAgICAgIHJldHVybiBbJ2NvbmNhdCcsIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsxXSBhcyBXaXJlRm9ybWF0LkNvcmUuUGFyYW1zKV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRTdHJpY3RGcmVlOlxuICAgICAgICAgIHJldHVybiBbJ2dldC1zdHJpY3QtZnJlZScsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNGYWxsYmFjazpcbiAgICAgICAgICByZXR1cm4gWydHZXRGcmVlQXNGYWxsYmFjaycsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjazpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ0dldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrJyxcbiAgICAgICAgICAgIHRoaXMudXB2YXJzW29wY29kZVsxXV0sXG4gICAgICAgICAgICBvcGNvZGVbMl0sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZDpcbiAgICAgICAgICByZXR1cm4gWydHZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWQnLCB0aGlzLnVwdmFyc1tvcGNvZGVbMV1dLCBvcGNvZGVbMl1dO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFjaycsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNEZXByZWNhdGVkSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2snLCB0aGlzLnVwdmFyc1tvcGNvZGVbMV1dXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0hlbHBlckhlYWQ6XG4gICAgICAgICAgcmV0dXJuIFsnR2V0RnJlZUFzSGVscGVySGVhZCcsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNDb21wb25lbnRIZWFkOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc0NvbXBvbmVudEhlYWQnLCB0aGlzLnVwdmFyc1tvcGNvZGVbMV1dLCBvcGNvZGVbMl1dO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RnJlZUFzTW9kaWZpZXJIZWFkOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc01vZGlmaWVySGVhZCcsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRTeW1ib2w6IHtcbiAgICAgICAgICBpZiAob3Bjb2RlWzFdID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gWydnZXQtc3ltYm9sJywgJ3RoaXMnLCBvcGNvZGVbMl1dO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gWydnZXQtc3ltYm9sJywgdGhpcy5zeW1ib2xzW29wY29kZVsxXSAtIDFdLCBvcGNvZGVbMl1dO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgT3AuR2V0VGVtcGxhdGVTeW1ib2w6IHtcbiAgICAgICAgICByZXR1cm4gWydnZXQtdGVtcGxhdGUtc3ltYm9sJywgb3Bjb2RlWzFdLCBvcGNvZGVbMl1dO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBPcC5JZjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2lmJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10gPyB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVszXSkgOiBudWxsLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5JZklubGluZTpcbiAgICAgICAgICByZXR1cm4gWydpZi1pbmxpbmUnXTtcblxuICAgICAgICBjYXNlIE9wLk5vdDpcbiAgICAgICAgICByZXR1cm4gWydub3QnXTtcblxuICAgICAgICBjYXNlIE9wLkVhY2g6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdlYWNoJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICBvcGNvZGVbMl0gPyB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pIDogbnVsbCxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzNdKSxcbiAgICAgICAgICAgIG9wY29kZVs0XSA/IHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzRdKSA6IG51bGwsXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLldpdGg6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICd3aXRoJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10gPyB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVszXSkgOiBudWxsLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5MZXQ6XG4gICAgICAgICAgcmV0dXJuIFsnbGV0JywgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzFdKSwgdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLkxvZzpcbiAgICAgICAgICByZXR1cm4gWydsb2cnLCB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLldpdGhEeW5hbWljVmFyczpcbiAgICAgICAgICByZXR1cm4gWyctd2l0aC1keW5hbWljLXZhcnMnLCB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzFdKSwgdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLkdldER5bmFtaWNWYXI6XG4gICAgICAgICAgcmV0dXJuIFsnLWdldC1keW5hbWljLXZhcnMnLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLkludm9rZUNvbXBvbmVudDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2NvbXBvbmVudCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbM10pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRCbG9ja3Mob3Bjb2RlWzRdKSxcbiAgICAgICAgICBdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3Bjb2RlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0Q3VycnlUeXBlKHZhbHVlOiBDdXJyaWVkVHlwZSkge1xuICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgIGNhc2UgQ3VycmllZFR5cGUuQ29tcG9uZW50OlxuICAgICAgICByZXR1cm4gJ2NvbXBvbmVudCc7XG4gICAgICBjYXNlIEN1cnJpZWRUeXBlLkhlbHBlcjpcbiAgICAgICAgcmV0dXJuICdoZWxwZXInO1xuICAgICAgY2FzZSBDdXJyaWVkVHlwZS5Nb2RpZmllcjpcbiAgICAgICAgcmV0dXJuICdtb2RpZmllcic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBleGhhdXN0ZWQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0RWxlbWVudFBhcmFtcyhvcGNvZGVzOiBPcHRpb248V2lyZUZvcm1hdC5FbGVtZW50UGFyYW1ldGVyW10+KTogT3B0aW9uPHVua25vd25bXT4ge1xuICAgIGlmIChvcGNvZGVzID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gb3Bjb2Rlcy5tYXAoKG8pID0+IHRoaXMuZm9ybWF0T3Bjb2RlKG8pKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0UGFyYW1zKG9wY29kZXM6IE9wdGlvbjxXaXJlRm9ybWF0LkV4cHJlc3Npb25bXT4pOiBPcHRpb248dW5rbm93bltdPiB7XG4gICAgaWYgKG9wY29kZXMgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBvcGNvZGVzLm1hcCgobykgPT4gdGhpcy5mb3JtYXRPcGNvZGUobykpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRIYXNoKGhhc2g6IFdpcmVGb3JtYXQuQ29yZS5IYXNoKTogT3B0aW9uPG9iamVjdD4ge1xuICAgIGlmIChoYXNoID09PSBudWxsKSByZXR1cm4gbnVsbDtcblxuICAgIHJldHVybiBoYXNoWzBdLnJlZHVjZSgoYWNjdW0sIGtleSwgaW5kZXgpID0+IHtcbiAgICAgIGFjY3VtW2tleV0gPSB0aGlzLmZvcm1hdE9wY29kZShoYXNoWzFdW2luZGV4XSk7XG4gICAgICByZXR1cm4gYWNjdW07XG4gICAgfSwgZGljdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0QmxvY2tzKGJsb2NrczogV2lyZUZvcm1hdC5Db3JlLkJsb2Nrcyk6IE9wdGlvbjxvYmplY3Q+IHtcbiAgICBpZiAoYmxvY2tzID09PSBudWxsKSByZXR1cm4gbnVsbDtcblxuICAgIHJldHVybiBibG9ja3NbMF0ucmVkdWNlKChhY2N1bSwga2V5LCBpbmRleCkgPT4ge1xuICAgICAgYWNjdW1ba2V5XSA9IHRoaXMuZm9ybWF0QmxvY2soYmxvY2tzWzFdW2luZGV4XSk7XG4gICAgICByZXR1cm4gYWNjdW07XG4gICAgfSwgZGljdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0QmxvY2soYmxvY2s6IFNlcmlhbGl6ZWRJbmxpbmVCbG9jayk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXRlbWVudHM6IGJsb2NrWzBdLm1hcCgocykgPT4gdGhpcy5mb3JtYXRPcGNvZGUocykpLFxuICAgICAgcGFyYW1ldGVyczogYmxvY2tbMV0sXG4gICAgfTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBpbGVyL2xpYi93aXJlLWZvcm1hdC1kZWJ1Zy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBUUE7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFYyxrQjtBQUlaLFdBQUEsa0JBQUEsQ0FBQSxJQUFBLEVBQTZFO0FBQUEsUUFBakUsV0FBaUUsR0FBQSxJQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsUUFBakUsT0FBaUUsR0FBQSxJQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsUUFBakUsUUFBaUUsR0FBQSxJQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsUUFBN0UsTUFBNkUsR0FBQSxJQUFBLENBQUEsQ0FBQSxDQUFBO0FBQzNFLFNBQUEsTUFBQSxHQUFBLE1BQUE7QUFDQSxTQUFBLE9BQUEsR0FBQSxPQUFBO0FBQ0Q7Ozs7U0FFRCxNLEdBQUEsU0FBQSxNQUFBLENBQUEsT0FBQSxFQUF1QztBQUNyQyxRQUFJLEdBQUcsR0FBUCxFQUFBOztBQUVBLFNBQUEsSUFBQSxTQUFBLEdBQUEsK0JBQUEsQ0FBc0IsT0FBTyxDQUE3QixDQUE2QixDQUE3QixDQUFBLEVBQUEsS0FBQSxFQUFBLENBQUEsQ0FBQSxLQUFBLEdBQUEsU0FBQSxFQUFBLEVBQUEsSUFBQSxHQUFrQztBQUFBLFVBQWxDLFNBQWtDLEdBQUEsS0FBQSxDQUFBLEtBQUE7QUFDaEMsTUFBQSxHQUFHLENBQUgsSUFBQSxDQUFTLEtBQUEsWUFBQSxDQUFULFNBQVMsQ0FBVDtBQUNEOztBQUVELFdBQUEsR0FBQTs7O1NBR0YsWSxHQUFBLFNBQUEsWUFBQSxDQUFBLE1BQUEsRUFBc0M7QUFDcEMsUUFBSSxLQUFLLENBQUwsT0FBQSxDQUFKLE1BQUksQ0FBSixFQUEyQjtBQUN6QixjQUFRLE1BQU0sQ0FBZCxDQUFjLENBQWQ7QUFDRSxhQUFBO0FBQUE7QUFBQTtBQUNFLGlCQUFPLENB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Q0FBUDtBQURwQixPQUNPLENBRFA7QUFFTCxNQUFBLFVBQVUsRUFBRSxLQUFLLENBQUEsQ0FBQTtBQUZaLEtBQVAiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDdXJyaWVkVHlwZSxcbiAgT3B0aW9uLFxuICBTZXJpYWxpemVkSW5saW5lQmxvY2ssXG4gIFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrLFxuICBTZXhwT3Bjb2RlcyBhcyBPcCxcbiAgV2lyZUZvcm1hdCxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBkaWN0LCBleGhhdXN0ZWQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuaW1wb3J0IHsgaW5mbGF0ZUF0dHJOYW1lLCBpbmZsYXRlVGFnTmFtZSB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBXaXJlRm9ybWF0RGVidWdnZXIge1xuICBwcml2YXRlIHVwdmFyczogc3RyaW5nW107XG4gIHByaXZhdGUgc3ltYm9sczogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IoW19zdGF0ZW1lbnRzLCBzeW1ib2xzLCBfaGFzRXZhbCwgdXB2YXJzXTogU2VyaWFsaXplZFRlbXBsYXRlQmxvY2spIHtcbiAgICB0aGlzLnVwdmFycyA9IHVwdmFycztcbiAgICB0aGlzLnN5bWJvbHMgPSBzeW1ib2xzO1xuICB9XG5cbiAgZm9ybWF0KHByb2dyYW06IFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrKTogdW5rbm93biB7XG4gICAgbGV0IG91dCA9IFtdO1xuXG4gICAgZm9yIChsZXQgc3RhdGVtZW50IG9mIHByb2dyYW1bMF0pIHtcbiAgICAgIG91dC5wdXNoKHRoaXMuZm9ybWF0T3Bjb2RlKHN0YXRlbWVudCkpO1xuICAgIH1cblxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICBmb3JtYXRPcGNvZGUob3Bjb2RlOiBXaXJlRm9ybWF0LlN5bnRheCk6IHVua25vd24ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9wY29kZSkpIHtcbiAgICAgIHN3aXRjaCAob3Bjb2RlWzBdKSB7XG4gICAgICAgIGNhc2UgT3AuQXBwZW5kOlxuICAgICAgICAgIHJldHVybiBbJ2FwcGVuZCcsIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSldO1xuICAgICAgICBjYXNlIE9wLlRydXN0aW5nQXBwZW5kOlxuICAgICAgICAgIHJldHVybiBbJ3RydXN0aW5nLWFwcGVuZCcsIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuQmxvY2s6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdibG9jaycsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbM10pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRCbG9ja3Mob3Bjb2RlWzRdKSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuSW5FbGVtZW50OlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnaW4tZWxlbWVudCcsXG4gICAgICAgICAgICBvcGNvZGVbMV0sXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pLFxuICAgICAgICAgICAgb3Bjb2RlWzNdID8gdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzNdKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuT3BlbkVsZW1lbnQ6XG4gICAgICAgICAgcmV0dXJuIFsnb3Blbi1lbGVtZW50JywgaW5mbGF0ZVRhZ05hbWUob3Bjb2RlWzFdKV07XG5cbiAgICAgICAgY2FzZSBPcC5PcGVuRWxlbWVudFdpdGhTcGxhdDpcbiAgICAgICAgICByZXR1cm4gWydvcGVuLWVsZW1lbnQtd2l0aC1zcGxhdCcsIGluZmxhdGVUYWdOYW1lKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuQ2xvc2VFbGVtZW50OlxuICAgICAgICAgIHJldHVybiBbJ2Nsb3NlLWVsZW1lbnQnXTtcblxuICAgICAgICBjYXNlIE9wLkZsdXNoRWxlbWVudDpcbiAgICAgICAgICByZXR1cm4gWydmbHVzaC1lbGVtZW50J107XG5cbiAgICAgICAgY2FzZSBPcC5TdGF0aWNBdHRyOlxuICAgICAgICAgIHJldHVybiBbJ3N0YXRpYy1hdHRyJywgaW5mbGF0ZUF0dHJOYW1lKG9wY29kZVsxXSksIG9wY29kZVsyXSwgb3Bjb2RlWzNdXTtcblxuICAgICAgICBjYXNlIE9wLlN0YXRpY0NvbXBvbmVudEF0dHI6XG4gICAgICAgICAgcmV0dXJuIFsnc3RhdGljLWNvbXBvbmVudC1hdHRyJywgaW5mbGF0ZUF0dHJOYW1lKG9wY29kZVsxXSksIG9wY29kZVsyXSwgb3Bjb2RlWzNdXTtcblxuICAgICAgICBjYXNlIE9wLkR5bmFtaWNBdHRyOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnZHluYW1pYy1hdHRyJyxcbiAgICAgICAgICAgIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuQ29tcG9uZW50QXR0cjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2NvbXBvbmVudC1hdHRyJyxcbiAgICAgICAgICAgIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuQXR0clNwbGF0OlxuICAgICAgICAgIHJldHVybiBbJ2F0dHItc3BsYXQnXTtcblxuICAgICAgICBjYXNlIE9wLllpZWxkOlxuICAgICAgICAgIHJldHVybiBbJ3lpZWxkJywgb3Bjb2RlWzFdLCB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLkR5bmFtaWNBcmc6XG4gICAgICAgICAgcmV0dXJuIFsnZHluYW1pYy1hcmcnLCBvcGNvZGVbMV0sIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSldO1xuXG4gICAgICAgIGNhc2UgT3AuU3RhdGljQXJnOlxuICAgICAgICAgIHJldHVybiBbJ3N0YXRpYy1hcmcnLCBvcGNvZGVbMV0sIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSldO1xuXG4gICAgICAgIGNhc2UgT3AuVHJ1c3RpbmdEeW5hbWljQXR0cjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ3RydXN0aW5nLWR5bmFtaWMtYXR0cicsXG4gICAgICAgICAgICBpbmZsYXRlQXR0ck5hbWUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLlRydXN0aW5nQ29tcG9uZW50QXR0cjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ3RydXN0aW5nLWNvbXBvbmVudC1hdHRyJyxcbiAgICAgICAgICAgIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuRGVidWdnZXI6XG4gICAgICAgICAgcmV0dXJuIFsnZGVidWdnZXInLCBvcGNvZGVbMV1dO1xuXG4gICAgICAgIGNhc2UgT3AuQ29tbWVudDpcbiAgICAgICAgICByZXR1cm4gWydjb21tZW50Jywgb3Bjb2RlWzFdXTtcblxuICAgICAgICBjYXNlIE9wLk1vZGlmaWVyOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnbW9kaWZpZXInLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsyXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzNdKSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuQ29tcG9uZW50OlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnY29tcG9uZW50JyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEVsZW1lbnRQYXJhbXMob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbM10pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRCbG9ja3Mob3Bjb2RlWzRdKSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuSGFzQmxvY2s6XG4gICAgICAgICAgcmV0dXJuIFsnaGFzLWJsb2NrJywgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKV07XG5cbiAgICAgICAgY2FzZSBPcC5IYXNCbG9ja1BhcmFtczpcbiAgICAgICAgICByZXR1cm4gWydoYXMtYmxvY2stcGFyYW1zJywgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKV07XG5cbiAgICAgICAgY2FzZSBPcC5DdXJyeTpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2N1cnJ5JyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEN1cnJ5VHlwZShvcGNvZGVbMl0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzNdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbNF0pLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5VbmRlZmluZWQ6XG4gICAgICAgICAgcmV0dXJuIFsndW5kZWZpbmVkJ107XG5cbiAgICAgICAgY2FzZSBPcC5DYWxsOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnY2FsbCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbM10pLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5Db25jYXQ6XG4gICAgICAgICAgcmV0dXJuIFsnY29uY2F0JywgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzFdIGFzIFdpcmVGb3JtYXQuQ29yZS5QYXJhbXMpXTtcblxuICAgICAgICBjYXNlIE9wLkdldFN0cmljdEZyZWU6XG4gICAgICAgICAgcmV0dXJuIFsnZ2V0LXN0cmljdC1mcmVlJywgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSwgb3Bjb2RlWzJdXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2snLFxuICAgICAgICAgICAgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSxcbiAgICAgICAgICAgIG9wY29kZVsyXSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZCcsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2s6XG4gICAgICAgICAgcmV0dXJuIFsnR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrJywgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSwgb3Bjb2RlWzJdXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2s6XG4gICAgICAgICAgcmV0dXJuIFsnR2V0RnJlZUFzRGVwcmVjYXRlZEhlbHBlckhlYWRPclRoaXNGYWxsYmFjaycsIHRoaXMudXB2YXJzW29wY29kZVsxXV1dO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RnJlZUFzSGVscGVySGVhZDpcbiAgICAgICAgICByZXR1cm4gWydHZXRGcmVlQXNIZWxwZXJIZWFkJywgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSwgb3Bjb2RlWzJdXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0NvbXBvbmVudEhlYWQ6XG4gICAgICAgICAgcmV0dXJuIFsnR2V0RnJlZUFzQ29tcG9uZW50SGVhZCcsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNNb2RpZmllckhlYWQ6XG4gICAgICAgICAgcmV0dXJuIFsnR2V0RnJlZUFzTW9kaWZpZXJIZWFkJywgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSwgb3Bjb2RlWzJdXTtcblxuICAgICAgICBjYXNlIE9wLkdldFN5bWJvbDoge1xuICAgICAgICAgIGlmIChvcGNvZGVbMV0gPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBbJ2dldC1zeW1ib2wnLCAndGhpcycsIG9wY29kZVsyXV07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbJ2dldC1zeW1ib2wnLCB0aGlzLnN5bWJvbHNbb3Bjb2RlWzFdIC0gMV0sIG9wY29kZVsyXV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBPcC5HZXRUZW1wbGF0ZVN5bWJvbDoge1xuICAgICAgICAgIHJldHVybiBbJ2dldC10ZW1wbGF0ZS1zeW1ib2wnLCBvcGNvZGVbMV0sIG9wY29kZVsyXV07XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIE9wLklmOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnaWYnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSA/IHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzNdKSA6IG51bGwsXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLklmSW5saW5lOlxuICAgICAgICAgIHJldHVybiBbJ2lmLWlubGluZSddO1xuXG4gICAgICAgIGNhc2UgT3AuTm90OlxuICAgICAgICAgIHJldHVybiBbJ25vdCddO1xuXG4gICAgICAgIGNhc2UgT3AuRWFjaDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2VhY2gnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIG9wY29kZVsyXSA/IHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSkgOiBudWxsLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbM10pLFxuICAgICAgICAgICAgb3Bjb2RlWzRdID8gdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbNF0pIDogbnVsbCxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuV2l0aDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ3dpdGgnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSA/IHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzNdKSA6IG51bGwsXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkxldDpcbiAgICAgICAgICByZXR1cm4gWydsZXQnLCB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMV0pLCB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVsyXSldO1xuXG4gICAgICAgIGNhc2UgT3AuTG9nOlxuICAgICAgICAgIHJldHVybiBbJ2xvZycsIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuV2l0aER5bmFtaWNWYXJzOlxuICAgICAgICAgIHJldHVybiBbJy13aXRoLWR5bmFtaWMtdmFycycsIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbMV0pLCB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVsyXSldO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RHluYW1pY1ZhcjpcbiAgICAgICAgICByZXR1cm4gWyctZ2V0LWR5bmFtaWMtdmFycycsIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuSW52b2tlQ29tcG9uZW50OlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnY29tcG9uZW50JyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMl0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRIYXNoKG9wY29kZVszXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEJsb2NrcyhvcGNvZGVbNF0pLFxuICAgICAgICAgIF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcGNvZGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRDdXJyeVR5cGUodmFsdWU6IEN1cnJpZWRUeXBlKSB7XG4gICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgY2FzZSBDdXJyaWVkVHlwZS5Db21wb25lbnQ6XG4gICAgICAgIHJldHVybiAnY29tcG9uZW50JztcbiAgICAgIGNhc2UgQ3VycmllZFR5cGUuSGVscGVyOlxuICAgICAgICByZXR1cm4gJ2hlbHBlcic7XG4gICAgICBjYXNlIEN1cnJpZWRUeXBlLk1vZGlmaWVyOlxuICAgICAgICByZXR1cm4gJ21vZGlmaWVyJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IGV4aGF1c3RlZCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRFbGVtZW50UGFyYW1zKG9wY29kZXM6IE9wdGlvbjxXaXJlRm9ybWF0LkVsZW1lbnRQYXJhbWV0ZXJbXT4pOiBPcHRpb248dW5rbm93bltdPiB7XG4gICAgaWYgKG9wY29kZXMgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBvcGNvZGVzLm1hcCgobykgPT4gdGhpcy5mb3JtYXRPcGNvZGUobykpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRQYXJhbXMob3Bjb2RlczogT3B0aW9uPFdpcmVGb3JtYXQuRXhwcmVzc2lvbltdPik6IE9wdGlvbjx1bmtub3duW10+IHtcbiAgICBpZiAob3Bjb2RlcyA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIG9wY29kZXMubWFwKChvKSA9PiB0aGlzLmZvcm1hdE9wY29kZShvKSk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEhhc2goaGFzaDogV2lyZUZvcm1hdC5Db3JlLkhhc2gpOiBPcHRpb248b2JqZWN0PiB7XG4gICAgaWYgKGhhc2ggPT09IG51bGwpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIGhhc2hbMF0ucmVkdWNlKChhY2N1bSwga2V5LCBpbmRleCkgPT4ge1xuICAgICAgYWNjdW1ba2V5XSA9IHRoaXMuZm9ybWF0T3Bjb2RlKGhhc2hbMV1baW5kZXhdKTtcbiAgICAgIHJldHVybiBhY2N1bTtcbiAgICB9LCBkaWN0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRCbG9ja3MoYmxvY2tzOiBXaXJlRm9ybWF0LkNvcmUuQmxvY2tzKTogT3B0aW9uPG9iamVjdD4ge1xuICAgIGlmIChibG9ja3MgPT09IG51bGwpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIGJsb2Nrc1swXS5yZWR1Y2UoKGFjY3VtLCBrZXksIGluZGV4KSA9PiB7XG4gICAgICBhY2N1bVtrZXldID0gdGhpcy5mb3JtYXRCbG9jayhibG9ja3NbMV1baW5kZXhdKTtcbiAgICAgIHJldHVybiBhY2N1bTtcbiAgICB9LCBkaWN0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRCbG9jayhibG9jazogU2VyaWFsaXplZElubGluZUJsb2NrKTogb2JqZWN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhdGVtZW50czogYmxvY2tbMF0ubWFwKChzKSA9PiB0aGlzLmZvcm1hdE9wY29kZShzKSksXG4gICAgICBwYXJhbWV0ZXJzOiBibG9ja1sxXSxcbiAgICB9O1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9

33

dist/modules/es2017/lib/builder/builder.js

@@ -283,3 +283,3 @@ import { assert, assertNever, dict, exhausted, isPresent, values } from '@glimmer/util';

let keyExpr = normalized.hash ? normalized.hash['key'] : null;
let key = keyExpr ? buildExpression(keyExpr, 'Generic', symbols) : null;
let key = keyExpr ? buildExpression(keyExpr, 'Strict', symbols) : null;
return [42

@@ -497,3 +497,3 @@ /* Each */

let builtHash = buildHash(expr.hash, symbols);
let builtExpr = buildCallHead(expr.head, context === 'Generic' ? 'SubExpression' : varContext(context, false), symbols);
let builtExpr = buildCallHead(expr.head, context === 'Strict' ? 'SubExpression' : varContext(context, false), symbols);
return [28

@@ -514,4 +514,4 @@ /* Call */

mode: 'loose'
}, 4
/* LooseFreeVariable */
}, 0
/* Strict */
, symbols)];

@@ -530,4 +530,4 @@ }

mode: 'loose'
}, 4
/* LooseFreeVariable */
}, 0
/* Strict */
, symbols)];

@@ -563,4 +563,4 @@ }

export function buildGetPath(head, symbols) {
return buildVar(head.path.head, 4
/* LooseFreeVariable */
return buildVar(head.path.head, 0
/* Strict */
, symbols, head.path.tail);

@@ -608,6 +608,2 @@ }

;
} else if (context === 'Generic') {
op = 33
/* GetFreeAsFallback */
;
} else {

@@ -683,9 +679,2 @@ op = expressionContextOp(context);

case 4
/* LooseFreeVariable */
:
return 33
/* GetFreeAsFallback */
;
case 5

@@ -718,3 +707,3 @@ /* ResolveAsCallHead */

if (exprs === null || !isPresent(exprs)) return null;
return exprs.map(e => buildExpression(e, 'Generic', symbols));
return exprs.map(e => buildExpression(e, 'Strict', symbols));
}

@@ -729,3 +718,3 @@ export function buildConcat(exprs, symbols) {

out[0].push(key);
out[1].push(buildExpression(exprs[key], 'Generic', symbols));
out[1].push(buildExpression(exprs[key], 'Strict', symbols));
});

@@ -753,2 +742,2 @@ return out;

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBpbGVyL2xpYi9idWlsZGVyL2J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsU0FBUyxNQUFULEVBQWlCLFdBQWpCLEVBQThCLElBQTlCLEVBQW9DLFNBQXBDLEVBQXVELFNBQXZELEVBQWtFLE1BQWxFLFFBQWdGLGVBQWhGO0FBR0EsU0FrQkUsa0JBbEJGLEVBb0JFLFlBcEJGLFFBcUJPLHFCQXJCUDtBQXNDQSxPQUFNLE1BQU8sY0FBUCxDQUFxQjtBQUEzQixFQUFBLFdBQUEsR0FBQTtBQUNFLFNBQUEsY0FBQSxHQUEyQixFQUEzQjtBQUNBLFNBQUEsUUFBQSxHQUFxQixDQUFDLE1BQUQsQ0FBckI7QUFFQSxTQUFBLEdBQUEsR0FBTSxJQUFOO0FBNENEOztBQTFDQyxFQUFBLFNBQVMsR0FBQTtBQUNQLFdBQU8sS0FBSyxRQUFMLENBQWMsS0FBZCxDQUFvQixDQUFwQixDQUFQO0FBQ0Q7O0FBRUQsRUFBQSxRQUFRLEdBQUE7QUFDTixXQUFPLEtBQUssY0FBWjtBQUNEOztBQUVELEVBQUEsT0FBTyxDQUFDLElBQUQsRUFBYTtBQUNsQixXQUFPLFNBQVMsQ0FBQyxLQUFLLGNBQU4sRUFBc0IsSUFBdEIsQ0FBaEI7QUFDRDs7QUFFRCxFQUFBLEtBQUssQ0FBQyxJQUFELEVBQWE7QUFDaEIsV0FBTyxLQUFLLE1BQUwsQ0FBWSxJQUFaLENBQVA7QUFDRDs7QUFFRCxFQUFBLEdBQUcsQ0FBQyxJQUFELEVBQWE7QUFDZCxXQUFPLFNBQVMsQ0FBQyxLQUFLLFFBQU4sRUFBZ0IsSUFBaEIsQ0FBaEI7QUFDRDs7QUFFRCxFQUFBLEtBQUssQ0FBQyxJQUFELEVBQWE7QUFDaEIsVUFBTSxJQUFJLEtBQUosQ0FDSixZQUFZLElBQUksZ0NBQWdDLElBQUksbUJBQW1CLElBQUksZUFEdkUsQ0FBTjtBQUdEOztBQUVELEVBQUEsSUFBSSxHQUFBO0FBQ0YsV0FBTyxDQUFQO0FBQ0Q7O0FB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LE1BQUEsTUFBTSxDQUFDLElBQVAsQ0FBWSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUQsQ0FBUCxFQUFlLE9BQWYsRUFBd0IsT0FBTyxDQUFDLFlBQWhDLENBQXRCO0FBQ0QsS0FKRCxNQUlPO0FBQ0wsTUFBQSxNQUFNLENBQUMsSUFBUCxDQUFZLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBRCxDQUFQLEVBQWUsTUFBZixFQUF1QixFQUF2QixDQUF0QjtBQUNEO0FBQ0YsR0FWRDtBQVlBLFNBQU8sQ0FBQyxJQUFELEVBQU8sTUFBUCxDQUFQO0FBQ0Q7O0FBRUQsU0FBUyxVQUFULENBQ0UsS0FERixFQUVFLE9BRkYsRUFHRSxNQUFBLEdBQW1CLEVBSHJCLEVBR3VCO0FBRXJCLFNBQU8sQ0FBQyx5QkFBeUIsQ0FBQyxLQUFELEVBQVEsT0FBUixDQUExQixFQUE0QyxNQUE1QyxDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaWN0LFxuICBFeHByZXNzaW9ucyxcbiAgR2V0Q29udGV4dHVhbEZyZWVPcCxcbiAgT3B0aW9uLFxuICBQcmVzZW50QXJyYXksXG4gIFNleHBPcGNvZGVzLFxuICBWYXJpYWJsZVJlc29sdXRpb25Db250ZXh0LFxuICBXaXJlRm9ybWF0LFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGFzc2VydCwgYXNzZXJ0TmV2ZXIsIGRpY3QsIGV4aGF1c3RlZCwgZXhwZWN0LCBpc1ByZXNlbnQsIHZhbHVlcyB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHsgQXR0ck5hbWVzcGFjZSwgTmFtZXNwYWNlIH0gZnJvbSAnQHNpbXBsZS1kb20vaW50ZXJmYWNlJztcblxuaW1wb3J0IHtcbiAgQnVpbGRlcixcbiAgQnVpbGRlckNvbW1lbnQsXG4gIEJ1aWxkZXJTdGF0ZW1lbnQsXG4gIEV4cHJlc3Npb25LaW5kLFxuICBIZWFkS2luZCxcbiAgTm9ybWFsaXplZEFuZ2xlSW52b2NhdGlvbixcbiAgTm9ybWFsaXplZEF0dHJzLFxuICBOb3JtYWxpemVkQmxvY2ssXG4gIE5vcm1hbGl6ZWRCbG9ja3MsXG4gIE5vcm1hbGl6ZWRFbGVtZW50LFxuICBOb3JtYWxpemVkRXhwcmVzc2lvbixcbiAgTm9ybWFsaXplZEhhc2gsXG4gIE5vcm1hbGl6ZWRIZWFkLFxuICBOb3JtYWxpemVkS2V5d29yZFN0YXRlbWVudCxcbiAgTm9ybWFsaXplZFBhcmFtcyxcbiAgTm9ybWFsaXplZFBhdGgsXG4gIE5vcm1hbGl6ZWRTdGF0ZW1lbnQsXG4gIG5vcm1hbGl6ZVN0YXRlbWVudCxcbiAgVmFyaWFibGUsXG4gIFZhcmlhYmxlS2luZCxcbn0gZnJvbSAnLi9idWlsZGVyLWludGVyZmFjZSc7XG5cbmltcG9ydCBPcCA9IFdpcmVGb3JtYXQuU2V4cE9wY29kZXM7XG5cbmludGVyZmFjZSBTeW1ib2xzIHtcbiAgdG9wOiBQcm9ncmFtU3ltYm9scztcbiAgZnJlZVZhcihuYW1lOiBzdHJpbmcpOiBudW1iZXI7XG4gIGFyZyhuYW1lOiBzdHJpbmcpOiBudW1iZXI7XG4gIGJsb2NrKG5hbWU6IHN0cmluZyk6IG51bWJlcjtcbiAgbG9jYWwobmFtZTogc3RyaW5nKTogbnVtYmVyO1xuICB0aGlzKCk6IG51bWJlcjtcblxuICBoYXNMb2NhbChuYW1lOiBzdHJpbmcpOiBib29sZWFuO1xuXG4gIGNoaWxkKHBhcmFtczogc3RyaW5nW10pOiBMb2NhbFN5bWJvbHM7XG59XG5cbmV4cG9ydCBjbGFzcyBQcm9ncmFtU3ltYm9scyBpbXBsZW1lbnRzIFN5bWJvbHMge1xuICBfZnJlZVZhcmlhYmxlczogc3RyaW5nW10gPSBbXTtcbiAgX3N5bWJvbHM6IHN0cmluZ1tdID0gWyd0aGlzJ107XG5cbiAgdG9wID0gdGhpcztcblxuICB0b1N5bWJvbHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9zeW1ib2xzLnNsaWNlKDEpO1xuICB9XG5cbiAgdG9VcHZhcnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9mcmVlVmFyaWFibGVzO1xuICB9XG5cbiAgZnJlZVZhcihuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiBhZGRTdHJpbmcodGhpcy5fZnJlZVZhcmlhYmxlcywgbmFtZSk7XG4gIH1cblxuICBibG9jayhuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnN5bWJvbChuYW1lKTtcbiAgfVxuXG4gIGFyZyhuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiBhZGRTdHJpbmcodGhpcy5fc3ltYm9scywgbmFtZSk7XG4gIH1cblxuICBsb2NhbChuYW1lOiBzdHJpbmcpOiBuZXZlciB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYE5vIGxvY2FsICR7bmFtZX0gd2FzIGZvdW5kLiBNYXliZSB5b3UgbWVhbnQgXiR7bmFtZX0gZm9yIHVwdmFyLCBvciAhJHtuYW1lfSBmb3Iga2V5d29yZD9gXG4gICAgKTtcbiAgfVxuXG4gIHRoaXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGhhc0xvY2FsKF9uYW1lOiBzdHJpbmcpOiBmYWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gYW55IHN5bWJvbFxuICBzeW1ib2wobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gYWRkU3RyaW5nKHRoaXMuX3N5bWJvbHMsIG5hbWUpO1xuICB9XG5cbiAgY2hpbGQobG9jYWxzOiBzdHJpbmdbXSk6IExvY2FsU3ltYm9scyB7XG4gICAgcmV0dXJuIG5ldyBMb2NhbFN5bWJvbHModGhpcywgbG9jYWxzKTtcbiAgfVxufVxuXG5jbGFzcyBMb2NhbFN5bWJvbHMgaW1wbGVtZW50cyBTeW1ib2xzIHtcbiAgcHJpdmF0ZSBsb2NhbHM6IERpY3Q8bnVtYmVyPiA9IGRpY3QoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcmVudDogU3ltYm9scywgbG9jYWxzOiBzdHJpbmdbXSkge1xuICAgIGZvciAobGV0IGxvY2FsIG9mIGxvY2Fscykge1xuICAgICAgdGhpcy5sb2NhbHNbbG9jYWxdID0gcGFyZW50LnRvcC5zeW1ib2wobG9jYWwpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBwYXJhbVN5bWJvbHMoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB2YWx1ZXModGhpcy5sb2NhbHMpO1xuICB9XG5cbiAgZ2V0IHRvcCgpOiBQcm9ncmFtU3ltYm9scyB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50LnRvcDtcbiAgfVxuXG4gIGZyZWVWYXIobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuZnJlZVZhcihuYW1lKTtcbiAgfVxuXG4gIGFyZyhuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5hcmcobmFtZSk7XG4gIH1cblxuICBibG9jayhuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5ibG9jayhuYW1lKTtcbiAgfVxuXG4gIGxvY2FsKG5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgaWYgKG5hbWUgaW4gdGhpcy5sb2NhbHMpIHtcbiAgICAgIHJldHVybiB0aGlzLmxvY2Fsc1tuYW1lXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50LmxvY2FsKG5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHRoaXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQudGhpcygpO1xuICB9XG5cbiAgaGFzTG9jYWwobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKG5hbWUgaW4gdGhpcy5sb2NhbHMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5wYXJlbnQuaGFzTG9jYWwobmFtZSk7XG4gICAgfVxuICB9XG5cbiAgY2hpbGQobG9jYWxzOiBzdHJpbmdbXSk6IExvY2FsU3ltYm9scyB7XG4gICAgcmV0dXJuIG5ldyBMb2NhbFN5bWJvbHModGhpcywgbG9jYWxzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhZGRTdHJpbmcoYXJyYXk6IHN0cmluZ1tdLCBpdGVtOiBzdHJpbmcpOiBudW1iZXIge1xuICBsZXQgaW5kZXggPSBhcnJheS5pbmRleE9mKGl0ZW0pO1xuXG4gIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICBpbmRleCA9IGFycmF5Lmxlbmd0aDtcbiAgICBhcnJheS5wdXNoKGl0ZW0pO1xuICAgIHJldHVybiBpbmRleDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZGVyR2V0RnJlZSB7XG4gIHR5cGU6ICdHZXRGcmVlJztcbiAgaGVhZDogc3RyaW5nO1xuICB0YWlsOiBzdHJpbmdbXTtcbn1cblxuZnVuY3Rpb24gdW5pbXBsKG1lc3NhZ2U6IHN0cmluZyk6IEVycm9yIHtcbiAgcmV0dXJuIG5ldyBFcnJvcihgdW5pbXBsZW1lbnRlZCAke21lc3NhZ2V9YCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFN0YXRlbWVudHMoXG4gIHN0YXRlbWVudHM6IEJ1aWxkZXJTdGF0ZW1lbnRbXSxcbiAgc3ltYm9sczogU3ltYm9sc1xuKTogV2lyZUZvcm1hdC5TdGF0ZW1lbnRbXSB7XG4gIGxldCBvdXQ6IFdpcmVGb3JtYXQuU3RhdGVtZW50W10gPSBbXTtcblxuICBzdGF0ZW1lbnRzLmZvckVhY2goKHMpID0+IG91dC5wdXNoKC4uLmJ1aWxkU3RhdGVtZW50KG5vcm1hbGl6ZVN0YXRlbWVudChzKSwgc3ltYm9scykpKTtcblxuICByZXR1cm4gb3V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGROb3JtYWxpemVkU3RhdGVtZW50cyhcbiAgc3RhdGVtZW50czogTm9ybWFsaXplZFN0YXRlbWVudFtdLFxuICBzeW1ib2xzOiBTeW1ib2xzXG4pOiBXaXJlRm9ybWF0LlN0YXRlbWVudFtdIHtcbiAgbGV0IG91dDogV2lyZUZvcm1hdC5TdGF0ZW1lbnRbXSA9IFtdO1xuXG4gIHN0YXRlbWVudHMuZm9yRWFjaCgocykgPT4gb3V0LnB1c2goLi4uYnVpbGRTdGF0ZW1lbnQocywgc3ltYm9scykpKTtcblxuICByZXR1cm4gb3V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTdGF0ZW1lbnQoXG4gIG5vcm1hbGl6ZWQ6IE5vcm1hbGl6ZWRTdGF0ZW1lbnQsXG4gIHN5bWJvbHM6IFN5bWJvbHMgPSBuZXcgUHJvZ3JhbVN5bWJvbHMoKVxuKTogV2lyZUZvcm1hdC5TdGF0ZW1lbnRbXSB7XG4gIHN3aXRjaCAobm9ybWFsaXplZC5raW5kKSB7XG4gICAgY2FzZSBIZWFkS2luZC5BcHBlbmRQYXRoOiB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBbXG4gICAgICAgICAgbm9ybWFsaXplZC50cnVzdGVkID8gT3AuVHJ1c3RpbmdBcHBlbmQgOiBPcC5BcHBlbmQsXG4gICAgICAgICAgYnVpbGRHZXRQYXRoKG5vcm1hbGl6ZWQucGF0aCwgc3ltYm9scyksXG4gICAgICAgIF0sXG4gICAgICBdO1xuICAgIH1cblxuICAgIGNhc2UgSGVhZEtpbmQuQXBwZW5kRXhwcjoge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgW1xuICAgICAgICAgIG5vcm1hbGl6ZWQudHJ1c3RlZCA/IE9wLlRydXN0aW5nQXBwZW5kIDogT3AuQXBwZW5kLFxuICAgICAgICAgIGJ1aWxkRXhwcmVzc2lvbihcbiAgICAgICAgICAgIG5vcm1hbGl6ZWQuZXhwcixcbiAgICAgICAgICAgIG5vcm1hbGl6ZWQudHJ1c3RlZCA/ICdUcnVzdGVkQXBwZW5kJyA6ICdBcHBlbmQnLFxuICAgICAgICAgICAgc3ltYm9sc1xuICAgICAgICAgICksXG4gICAgICAgIF0sXG4gICAgICBdO1xuICAgIH1cblxuICAgIGNhc2UgSGVhZEtpbmQuQ2FsbDoge1xuICAgICAgbGV0IHsgaGVhZDogcGF0aCwgcGFyYW1zLCBoYXNoLCB0cnVzdGVkIH0gPSBub3JtYWxpemVkO1xuICAgICAgbGV0IGJ1aWx0UGFyYW1zOiBPcHRpb248V2lyZUZvcm1hdC5Db3JlLlBhcmFtcz4gPSBwYXJhbXNcbiAgICAgICAgPyBidWlsZFBhcmFtcyhwYXJhbXMsIHN5bWJvbHMpXG4gICAgICAgIDogbnVsbDtcbiAgICAgIGxldCBidWlsdEhhc2g6IFdpcmVGb3JtYXQuQ29yZS5IYXNoID0gaGFzaCA/IGJ1aWxkSGFzaChoYXNoLCBzeW1ib2xzKSA6IG51bGw7XG4gICAgICBsZXQgYnVpbHRFeHByOiBXaXJlRm9ybWF0LkV4cHJlc3Npb24gPSBidWlsZENhbGxIZWFkKFxuICAgICAgICBwYXRoLFxuICAgICAgICB0cnVzdGVkXG4gICAgICAgICAgPyBWYXJpYWJsZVJlc29sdXRpb25Db250ZXh0LkFtYmlndW91c0ludm9rZVxuICAgICAgICAgIDogVmFyaWFibGVSZXNvbHV0aW9uQ29udGV4dC5BbWJpZ3VvdXNBcHBlbmRJbnZva2UsXG4gICAgICAgIHN5bWJvbHNcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBbXG4gICAgICAgIFt0cnVzdGVkID8gT3AuVHJ1c3RpbmdBcHBlbmQgOiBPcC5BcHBlbmQsIFtPcC5DYWxsLCBidWlsdEV4cHIsIGJ1aWx0UGFyYW1zLCBidWlsdEhhc2hdXSxcbiAgICAgIF07XG4gICAgfVxuXG4gICAgY2FzZSBIZWFkS2luZC5MaXRlcmFsOiB7XG4gICAgICByZXR1cm4gW1tPcC5BcHBlbmQsIG5vcm1hbGl6ZWQudmFsdWVdXTtcbiAgICB9XG5cbiAgICBjYXNlIEhlYWRLaW5kLkNvbW1lbnQ6IHtcbiAgICAgIHJldHVybiBbW09wLkNvbW1lbnQsIG5vcm1hbGl6ZWQudmFsdWVdXTtcbiAgICB9XG5cbiAgICBjYXNlIEhlYWRLaW5kLkJsb2NrOiB7XG4gICAgICBsZXQgYmxvY2tzID0gYnVpbGRCbG9ja3Mobm9ybWFsaXplZC5ibG9ja3MsIG5vcm1hbGl6ZWQuYmxvY2tQYXJhbXMsIHN5bWJvbHMpO1xuICAgICAgbGV0IGhhc2ggPSBidWlsZEhhc2gobm9ybWFsaXplZC5oYXNoLCBzeW1ib2xzKTtcbiAgICAgIGxldCBwYXJhbXMgPSBidWlsZFBhcmFtcyhub3JtYWxpemVkLnBhcmFtcywgc3ltYm9scyk7XG4gICAgICBsZXQgcGF0aCA9IGJ1aWxkQ2FsbEhlYWQoXG4gICAgICAgIG5vcm1hbGl6ZWQuaGVhZCxcbiAgICAgICAgVmFyaWFibGVSZXNvbHV0aW9uQ29udGV4dC5SZXNvbHZlQXNDb21wb25lbnRIZWFkLFxuICAgICAgICBzeW1ib2xzXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gW1tPcC5CbG9jaywgcGF0aCwgcGFyYW1zLCBoYXNoLCBibG9ja3NdXTtcbiAgICB9XG5cbiAgICBjYXNlIEhlYWRLaW5kLktleXdvcmQ6IHtcbiAgICAgIHJldHVybiBbYnVpbGRLZXl3b3JkKG5vcm1hbGl6ZWQsIHN5bWJvbHMpXTtcbiAgICB9XG5cbiAgICBjYXNlIEhlYWRLaW5kLkVsZW1lbnQ6XG4gICAgICByZXR1cm4gYnVpbGRFbGVtZW50KG5vcm1hbGl6ZWQsIHN5bWJvbHMpO1xuXG4gICAgY2FzZSBIZWFkS2luZC5Nb2RpZmllcjpcbiAgICAgIHRocm93IHVuaW1wbCgnbW9kaWZpZXInKTtcblxuICAgIGNhc2UgSGVhZEtpbmQuRHluYW1pY0NvbXBvbmVudDpcbiAgICAgIHRocm93IHVuaW1wbCgnZHluYW1pYyBjb21wb25lbnQnKTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBhc3NlcnROZXZlcihub3JtYWxpemVkKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcyhcbiAgYXJyOiBUZW1wbGF0ZVN0cmluZ3NBcnJheSxcbiAgLi4uaW50ZXJwb2xhdGVkOiB1bmtub3duW11cbik6IFtCdWlsZGVyLkxpdGVyYWwsIHN0cmluZ10ge1xuICBsZXQgcmVzdWx0ID0gYXJyLnJlZHVjZShcbiAgICAocmVzdWx0LCBzdHJpbmcsIGkpID0+IHJlc3VsdCArIGAke3N0cmluZ30ke2ludGVycG9sYXRlZFtpXSA/IFN0cmluZyhpbnRlcnBvbGF0ZWRbaV0pIDogJyd9YCxcbiAgICAnJ1xuICApO1xuXG4gIHJldHVybiBbQnVpbGRlci5MaXRlcmFsLCByZXN1bHRdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYyhhcnI6IFRlbXBsYXRlU3RyaW5nc0FycmF5LCAuLi5pbnRlcnBvbGF0ZWQ6IHVua25vd25bXSk6IEJ1aWxkZXJDb21tZW50IHtcbiAgbGV0IHJlc3VsdCA9IGFyci5yZWR1Y2UoXG4gICAgKHJlc3VsdCwgc3RyaW5nLCBpKSA9PiByZXN1bHQgKyBgJHtzdHJpbmd9JHtpbnRlcnBvbGF0ZWRbaV0gPyBTdHJpbmcoaW50ZXJwb2xhdGVkW2ldKSA6ICcnfWAsXG4gICAgJydcbiAgKTtcblxuICByZXR1cm4gW0J1aWxkZXIuQ29tbWVudCwgcmVzdWx0XTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWNvZGUoY2hhckNvZGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGNoYXJDb2RlLCAxNikpO1xufVxuXG5leHBvcnQgY29uc3QgTkVXTElORSA9ICdcXG4nO1xuXG5mdW5jdGlvbiBidWlsZEtleXdvcmQoXG4gIG5vcm1hbGl6ZWQ6IE5vcm1hbGl6ZWRLZXl3b3JkU3RhdGVtZW50LFxuICBzeW1ib2xzOiBTeW1ib2xzXG4pOiBXaXJlRm9ybWF0LlN0YXRlbWVudCB7XG4gIGxldCB7IG5hbWUgfSA9IG5vcm1hbGl6ZWQ7XG4gIGxldCBwYXJhbXMgPSBidWlsZFBhcmFtcyhub3JtYWxpemVkLnBhcmFtcywgc3ltYm9scyk7XG4gIGxldCBjaGlsZFN5bWJvbHMgPSBzeW1ib2xzLmNoaWxkKG5vcm1hbGl6ZWQuYmxvY2tQYXJhbXMgfHwgW10pO1xuXG4gIGxldCBibG9jayA9IGJ1aWxkQmxvY2sobm9ybWFsaXplZC5ibG9ja3MuZGVmYXVsdCwgY2hpbGRTeW1ib2xzLCBjaGlsZFN5bWJvbHMucGFyYW1TeW1ib2xzKTtcbiAgbGV0IGludmVyc2UgPSBub3JtYWxpemVkLmJsb2Nrcy5lbHNlID8gYnVpbGRCbG9jayhub3JtYWxpemVkLmJsb2Nrcy5lbHNlLCBzeW1ib2xzLCBbXSkgOiBudWxsO1xuXG4gIHN3aXRjaCAobmFtZSkge1xuICAgIGNhc2UgJ3dpdGgnOlxuICAgICAgcmV0dXJuIFtPcC5XaXRoLCBleHBlY3QocGFyYW1zLCAnd2l0aCByZXF1aXJlcyBwYXJhbXMnKVswXSwgYmxvY2ssIGludmVyc2VdO1xuICAgIGNhc2UgJ2lmJzpcbiAgICAgIHJldHVybiBbT3AuSWYsIGV4cGVjdChwYXJhbXMsICdpZiByZXF1aXJlcyBwYXJhbXMnKVswXSwgYmxvY2ssIGludmVyc2VdO1xuICAgIGNhc2UgJ2VhY2gnOlxuICAgICAgbGV0IGtleUV4cHIgPSBub3JtYWxpemVkLmhhc2ggPyBub3JtYWxpemVkLmhhc2hbJ2tleSddIDogbnVsbDtcbiAgICAgIGxldCBrZXkgPSBrZXlFeHByID8gYnVpbGRFeHByZXNzaW9uKGtleUV4cHIsICdHZW5lcmljJywgc3ltYm9scykgOiBudWxsO1xuXG4gICAgICByZXR1cm4gW09wLkVhY2gsIGV4cGVjdChwYXJhbXMsICdpZiByZXF1aXJlcyBwYXJhbXMnKVswXSwga2V5LCBibG9jaywgaW52ZXJzZV07XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5pbXBsZW1lbnRlZCBrZXl3b3JkJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYnVpbGRFbGVtZW50KFxuICB7IG5hbWUsIGF0dHJzLCBibG9jayB9OiBOb3JtYWxpemVkRWxlbWVudCxcbiAgc3ltYm9sczogU3ltYm9sc1xuKTogV2lyZUZvcm1hdC5TdGF0ZW1lbnRbXSB7XG4gIGxldCBvdXQ6IFdpcmVGb3JtYXQuU3RhdGVtZW50W10gPSBbXG4gICAgaGFzU3BsYXQoYXR0cnMpID8gW09wLk9wZW5FbGVtZW50V2l0aFNwbGF0LCBuYW1lXSA6IFtPcC5PcGVuRWxlbWVudCwgbmFtZV0sXG4gIF07XG4gIGlmIChhdHRycykge1xuICAgIGxldCB7IHBhcmFtcywgYXJncyB9ID0gYnVpbGRFbGVtZW50UGFyYW1zKGF0dHJzLCBzeW1ib2xzKTtcbiAgICBvdXQucHVzaCguLi5wYXJhbXMpO1xuICAgIGFzc2VydChhcmdzID09PSBudWxsLCBgQ2FuJ3QgcGFzcyBhcmdzIHRvIGEgc2ltcGxlIGVsZW1lbnRgKTtcbiAgfVxuICBvdXQucHVzaChbT3AuRmx1c2hFbGVtZW50XSk7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoYmxvY2spKSB7XG4gICAgYmxvY2suZm9yRWFjaCgocykgPT4gb3V0LnB1c2goLi4uYnVpbGRTdGF0ZW1lbnQocywgc3ltYm9scykpKTtcbiAgfSBlbHNlIGlmIChibG9jayA9PT0gbnVsbCkge1xuICAgIC8vIGRvIG5vdGhpbmdcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBhc3NlcnROZXZlcihibG9jayk7XG4gIH1cblxuICBvdXQucHVzaChbT3AuQ2xvc2VFbGVtZW50XSk7XG5cbiAgcmV0dXJuIG91dDtcbn1cblxuZnVuY3Rpb24gaGFzU3BsYXQoYXR0cnM6IE9wdGlvbjxOb3JtYWxpemVkQXR0cnM+KTogYm9vbGVhbiB7XG4gIGlmIChhdHRycyA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiBPYmplY3Qua2V5cyhhdHRycykuc29tZSgoYSkgPT4gYXR0cnNbYV0gPT09IEhlYWRLaW5kLlNwbGF0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQW5nbGVJbnZvY2F0aW9uKFxuICB7IGF0dHJzLCBibG9jaywgaGVhZCB9OiBOb3JtYWxpemVkQW5nbGVJbnZvY2F0aW9uLFxuICBzeW1ib2xzOiBTeW1ib2xzXG4pOiBXaXJlRm9ybWF0LlN0YXRlbWVudHMuQ29tcG9uZW50IHtcbiAgbGV0IHBhcmFtTGlzdDogV2lyZUZvcm1hdC5FbGVtZW50UGFyYW1ldGVyW10gPSBbXTtcbiAgbGV0IGFyZ3M6IFdpcmVGb3JtYXQuQ29yZS5IYXNoID0gbnVsbDtcbiAgbGV0IGJsb2NrTGlzdDogV2lyZUZvcm1hdC5TdGF0ZW1lbnRbXSA9IFtdO1xuXG4gIGlmIChhdHRycykge1xuICAgIGxldCBidWlsdCA9IGJ1aWxkRWxlbWVudFBhcmFtcyhhdHRycywgc3ltYm9scyk7XG4gICAgcGFyYW1MaXN0ID0gYnVpbHQucGFyYW1zO1xuICAgIGFyZ3MgPSBidWlsdC5hcmdzO1xuICB9XG5cbiAgaWYgKGJsb2NrKSBibG9ja0xpc3QgPSBidWlsZE5vcm1hbGl6ZWRTdGF0ZW1lbnRzKGJsb2NrLCBzeW1ib2xzKTtcblxuICByZXR1cm4gW1xuICAgIE9wLkNvbXBvbmVudCxcbiAgICBidWlsZEV4cHJlc3Npb24oaGVhZCwgVmFyaWFibGVSZXNvbHV0aW9uQ29udGV4dC5SZXNvbHZlQXNDb21wb25lbnRIZWFkLCBzeW1ib2xzKSxcbiAgICBpc1ByZXNlbnQocGFyYW1MaXN0KSA/IHBhcmFtTGlzdCA6IG51bGwsXG4gICAgYXJncyxcbiAgICBbWydkZWZhdWx0J10sIFtbYmxvY2tMaXN0LCBbXV1dXSxcbiAgXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRWxlbWVudFBhcmFtcyhcbiAgYXR0cnM6IE5vcm1hbGl6ZWRBdHRycyxcbiAgc3ltYm9sczogU3ltYm9sc1xuKTogeyBwYXJhbXM6IFdpcmVGb3JtYXQuRWxlbWVudFBhcmFtZXRlcltdOyBhcmdzOiBXaXJlRm9ybWF0LkNvcmUuSGFzaCB9IHtcbiAgbGV0IHBhcmFtczogV2lyZUZvcm1hdC5FbGVtZW50UGFyYW1ldGVyW10gPSBbXTtcbiAgbGV0IGtleXM6IHN0cmluZ1tdID0gW107XG4gIGxldCB2YWx1ZXM6IFdpcmVGb3JtYXQuRXhwcmVzc2lvbltdID0gW107XG5cbiAgT2JqZWN0LmtleXMoYXR0cnMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGxldCB2YWx1ZSA9IGF0dHJzW2tleV07XG5cbiAgICBpZiAodmFsdWUgPT09IEhlYWRLaW5kLlNwbGF0KSB7XG4gICAgICBwYXJhbXMucHVzaChbT3AuQXR0clNwbGF0LCBzeW1ib2xzLmJsb2NrKCcmYXR0cnMnKV0pO1xuICAgIH0gZWxzZSBpZiAoa2V5WzBdID09PSAnQCcpIHtcbiAgICAgIGtleXMucHVzaChrZXkpO1xuICAgICAgdmFsdWVzLnB1c2goYnVpbGRFeHByZXNzaW9uKHZhbHVlLCAnU3RyaWN0Jywgc3ltYm9scykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbXMucHVzaChcbiAgICAgICAgLi4uYnVpbGRBdHRyaWJ1dGVWYWx1ZShcbiAgICAgICAgICBrZXksXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgLy8gVE9ETzogZXh0cmFjdCBuYW1lc3BhY2UgZnJvbSBrZXlcbiAgICAgICAgICBleHRyYWN0TmFtZXNwYWNlKGtleSksXG4gICAgICAgICAgc3ltYm9sc1xuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHsgcGFyYW1zLCBhcmdzOiBpc1ByZXNlbnQoa2V5cykgJiYgaXNQcmVzZW50KHZhbHVlcykgPyBba2V5cywgdmFsdWVzXSA6IG51bGwgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3ROYW1lc3BhY2UobmFtZTogc3RyaW5nKTogT3B0aW9uPEF0dHJOYW1lc3BhY2U+IHtcbiAgaWYgKG5hbWUgPT09ICd4bWxucycpIHtcbiAgICByZXR1cm4gTmFtZXNwYWNlLlhNTE5TO1xuICB9XG5cbiAgbGV0IG1hdGNoID0gL14oW146XSopOihbXjpdKikkLy5leGVjKG5hbWUpO1xuXG4gIGlmIChtYXRjaCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgbGV0IG5hbWVzcGFjZSA9IG1hdGNoWzFdO1xuXG4gIHN3aXRjaCAobmFtZXNwYWNlKSB7XG4gICAgY2FzZSAneGxpbmsnOlxuICAgICAgcmV0dXJuIE5hbWVzcGFjZS5YTGluaztcbiAgICBjYXNlICd4bWwnOlxuICAgICAgcmV0dXJuIE5hbWVzcGFjZS5YTUw7XG4gICAgY2FzZSAneG1sbnMnOlxuICAgICAgcmV0dXJuIE5hbWVzcGFjZS5YTUxOUztcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRBdHRyaWJ1dGVWYWx1ZShcbiAgbmFtZTogc3RyaW5nLFxuICB2YWx1ZTogTm9ybWFsaXplZEV4cHJlc3Npb24sXG4gIG5hbWVzcGFjZTogT3B0aW9uPEF0dHJOYW1lc3BhY2U+LFxuICBzeW1ib2xzOiBTeW1ib2xzXG4pOiBXaXJlRm9ybWF0LkF0dHJpYnV0ZVtdIHtcbiAgc3dpdGNoICh2YWx1ZS50eXBlKSB7XG4gICAgY2FzZSBFeHByZXNzaW9uS2luZC5MaXRlcmFsOiB7XG4gICAgICBsZXQgdmFsID0gdmFsdWUudmFsdWU7XG5cbiAgICAgIGlmICh2YWwgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH0gZWxzZSBpZiAodmFsID09PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiBbW09wLlN0YXRpY0F0dHIsIG5hbWUsICcnLCBuYW1lc3BhY2UgPz8gdW5kZWZpbmVkXV07XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBbW09wLlN0YXRpY0F0dHIsIG5hbWUsIHZhbCwgbmFtZXNwYWNlID8/IHVuZGVmaW5lZF1dO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkL3VuaW1wbGVtZW50ZWQgbGl0ZXJhbCBhdHRyaWJ1dGUgJHtKU09OLnN0cmluZ2lmeSh2YWwpfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gW1xuICAgICAgICBbXG4gICAgICAgICAgT3AuRHluYW1pY0F0dHIsXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBidWlsZEV4cHJlc3Npb24odmFsdWUsICdBdHRyVmFsdWUnLCBzeW1ib2xzKSxcbiAgICAgICAgICBuYW1lc3BhY2UgPz8gdW5kZWZpbmVkLFxuICAgICAgICBdLFxuICAgICAgXTtcbiAgfVxufVxuXG50eXBlIEV4cHJSZXNvbHV0aW9uID1cbiAgfCBWYXJpYWJsZVJlc29sdXRpb25Db250ZXh0XG4gIHwgJ0FwcGVuZCdcbiAgfCAnVHJ1c3RlZEFwcGVuZCdcbiAgfCAnQXR0clZhbHVlJ1xuICB8ICdTdWJFeHByZXNzaW9uJ1xuICB8ICdHZW5lcmljJ1xuICB8ICdTdHJpY3QnO1xuXG5mdW5jdGlvbiB2YXJDb250ZXh0KGNvbnRleHQ6IEV4cHJSZXNvbHV0aW9uLCBiYXJlOiBib29sZWFuKTogVmFyUmVzb2x1dGlvbiB7XG4gIHN3aXRjaCAoY29udGV4dCkge1xuICAgIGNhc2UgJ0FwcGVuZCc6XG4gICAgICByZXR1cm4gYmFyZSA/ICdBcHBlbmRCYXJlJyA6ICdBcHBlbmRJbnZva2UnO1xuICAgIGNhc2UgJ1RydXN0ZWRBcHBlbmQnOlxuICAgICAgcmV0dXJuIGJhcmUgPyAnVHJ1c3RlZEFwcGVuZEJhcmUnIDogJ1RydXN0ZWRBcHBlbmRJbnZva2UnO1xuICAgIGNhc2UgJ0F0dHJWYWx1ZSc6XG4gICAgICByZXR1cm4gYmFyZSA/ICdBdHRyVmFsdWVCYXJlJyA6ICdBdHRyVmFsdWVJbnZva2UnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gY29udGV4dDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRFeHByZXNzaW9uKFxuICBleHByOiBOb3JtYWxpemVkRXhwcmVzc2lvbixcbiAgY29udGV4dDogRXhwclJlc29sdXRpb24sXG4gIHN5bWJvbHM6IFN5bWJvbHNcbik6IFdpcmVGb3JtYXQuRXhwcmVzc2lvbiB7XG4gIHN3aXRjaCAoZXhwci50eXBlKSB7XG4gICAgY2FzZSBFeHByZXNzaW9uS2luZC5HZXRQYXRoOiB7XG4gICAgICByZXR1cm4gYnVpbGRHZXRQYXRoKGV4cHIsIHN5bWJvbHMpO1xuICAgIH1cblxuICAgIGNhc2UgRXhwcmVzc2lvbktpbmQuR2V0VmFyOiB7XG4gICAgICByZXR1cm4gYnVpbGRWYXIoZXhwci52YXJpYWJsZSwgdmFyQ29udGV4dChjb250ZXh0LCB0cnVlKSwgc3ltYm9scyk7XG4gICAgfVxuXG4gICAgY2FzZSBFeHByZXNzaW9uS2luZC5Db25jYXQ6IHtcbiAgICAgIHJldHVybiBbT3AuQ29uY2F0LCBidWlsZENvbmNhdChleHByLnBhcmFtcywgc3ltYm9scyldO1xuICAgIH1cblxuICAgIGNhc2UgRXhwcmVzc2lvbktpbmQuQ2FsbDoge1xuICAgICAgbGV0IGJ1aWx0UGFyYW1zID0gYnVpbGRQYXJhbXMoZXhwci5wYXJhbXMsIHN5bWJvbHMpO1xuICAgICAgbGV0IGJ1aWx0SGFzaCA9IGJ1aWxkSGFzaChleHByLmhhc2gsIHN5bWJvbHMpO1xuICAgICAgbGV0IGJ1aWx0RXhwciA9IGJ1aWxkQ2FsbEhlYWQoXG4gICAgICAgIGV4cHIuaGVhZCxcbiAgICAgICAgY29udGV4dCA9PT0gJ0dlbmVyaWMnID8gJ1N1YkV4cHJlc3Npb24nIDogdmFyQ29udGV4dChjb250ZXh0LCBmYWxzZSksXG4gICAgICAgIHN5bWJvbHNcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBbT3AuQ2FsbCwgYnVpbHRFeHByLCBidWlsdFBhcmFtcywgYnVpbHRIYXNoXTtcbiAgICB9XG5cbiAgICBjYXNlIEV4cHJlc3Npb25LaW5kLkhhc0Jsb2NrOiB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBPcC5IYXNCbG9jayxcbiAgICAgICAgYnVpbGRWYXIoXG4gICAgICAgICAgeyBraW5kOiBWYXJpYWJsZUtpbmQuQmxvY2ssIG5hbWU6IGV4cHIubmFtZSwgbW9kZTogJ2xvb3NlJyB9LFxuICAgICAgICAgIFZhcmlhYmxlUmVzb2x1dGlvbkNvbnRleHQuTG9vc2VGcmVlVmFyaWFibGUsXG4gICAgICAgICAgc3ltYm9sc1xuICAgICAgICApLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBjYXNlIEV4cHJlc3Npb25LaW5kLkhhc0Jsb2NrUGFyYW1zOiB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBPcC5IYXNCbG9ja1BhcmFtcyxcbiAgICAgICAgYnVpbGRWYXIoXG4gICAgICAgICAgeyBraW5kOiBWYXJpYWJsZUtpbmQuQmxvY2ssIG5hbWU6IGV4cHIubmFtZSwgbW9kZTogJ2xvb3NlJyB9LFxuICAgICAgICAgIFZhcmlhYmxlUmVzb2x1dGlvbkNvbnRleHQuTG9vc2VGcmVlVmFyaWFibGUsXG4gICAgICAgICAgc3ltYm9sc1xuICAgICAgICApLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBjYXNlIEV4cHJlc3Npb25LaW5kLkxpdGVyYWw6IHtcbiAgICAgIGlmIChleHByLnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIFtPcC5VbmRlZmluZWRdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGV4cHIudmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZGVmYXVsdDpcbiAgICAgIGFzc2VydE5ldmVyKGV4cHIpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZENhbGxIZWFkKFxuICBjYWxsSGVhZDogTm9ybWFsaXplZEhlYWQsXG4gIGNvbnRleHQ6IFZhclJlc29sdXRpb24sXG4gIHN5bWJvbHM6IFN5bWJvbHNcbik6IEV4cHJlc3Npb25zLkdldFZhciB8IEV4cHJlc3Npb25zLkdldFBhdGgge1xuICBpZiAoY2FsbEhlYWQudHlwZSA9PT0gRXhwcmVzc2lvbktpbmQuR2V0VmFyKSB7XG4gICAgcmV0dXJuIGJ1aWxkVmFyKGNhbGxIZWFkLnZhcmlhYmxlLCBjb250ZXh0LCBzeW1ib2xzKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYnVpbGRHZXRQYXRoKGNhbGxIZWFkLCBzeW1ib2xzKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRHZXRQYXRoKGhlYWQ6IE5vcm1hbGl6ZWRQYXRoLCBzeW1ib2xzOiBTeW1ib2xzKTogRXhwcmVzc2lvbnMuR2V0UGF0aCB7XG4gIHJldHVybiBidWlsZFZhcihcbiAgICBoZWFkLnBhdGguaGVhZCxcbiAgICBWYXJpYWJsZVJlc29sdXRpb25Db250ZXh0Lkxvb3NlRnJlZVZhcmlhYmxlLFxuICAgIHN5bWJvbHMsXG4gICAgaGVhZC5wYXRoLnRhaWxcbiAgKTtcbn1cblxudHlwZSBWYXJSZXNvbHV0aW9uID1cbiAgfCBWYXJpYWJsZVJlc29sdXRpb25Db250ZXh0XG4gIHwgJ0FwcGVuZEJhcmUnXG4gIHwgJ0FwcGVuZEludm9rZSdcbiAgfCAnVHJ1c3RlZEFwcGVuZEJhcmUnXG4gIHwgJ1RydXN0ZWRBcHBlbmRJbnZva2UnXG4gIHwgJ0F0dHJWYWx1ZUJhcmUnXG4gIHwgJ0F0dHJWYWx1ZUludm9rZSdcbiAgfCAnU3ViRXhwcmVzc2lvbidcbiAgfCAnR2VuZXJpYydcbiAgfCAnU3RyaWN0JztcblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVmFyKFxuICBoZWFkOiBWYXJpYWJsZSxcbiAgY29udGV4dDogVmFyUmVzb2x1dGlvbixcbiAgc3ltYm9sczogU3ltYm9scyxcbiAgcGF0aDogUHJlc2VudEFycmF5PHN0cmluZz5cbik6IEV4cHJlc3Npb25zLkdldFBhdGg7XG5leHBvcnQgZnVuY3Rpb24gYnVpbGRWYXIoXG4gIGhlYWQ6IFZhcmlhYmxlLFxuICBjb250ZXh0OiBWYXJSZXNvbHV0aW9uLFxuICBzeW1ib2xzOiBTeW1ib2xzXG4pOiBFeHByZXNzaW9ucy5HZXRWYXI7XG5leHBvcnQgZnVuY3Rpb24gYnVpbGRWYXIoXG4gIGhlYWQ6IFZhcmlhYmxlLFxuICBjb250ZXh0OiBWYXJSZXNvbHV0aW9uLFxuICBzeW1ib2xzOiBTeW1ib2xzLFxuICBwYXRoPzogUHJlc2VudEFycmF5PHN0cmluZz5cbik6IEV4cHJlc3Npb25zLkdldFBhdGggfCBFeHByZXNzaW9ucy5HZXRWYXIge1xuICBsZXQgb3A6IEV4cHJlc3Npb25zLkdldFZhclswXSA9IE9wLkdldFN5bWJvbDtcbiAgbGV0IHN5bTogbnVtYmVyO1xuICBzd2l0Y2ggKGhlYWQua2luZCkge1xuICAgIGNhc2UgVmFyaWFibGVLaW5kLkZyZWU6XG4gICAgICBpZiAoY29udGV4dCA9PT0gJ1N0cmljdCcpIHtcbiAgICAgICAgb3AgPSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlO1xuICAgICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSAnQXBwZW5kQmFyZScpIHtcbiAgICAgICAgb3AgPSBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjaztcbiAgICAgIH0gZWxzZSBpZiAoY29udGV4dCA9PT0gJ0FwcGVuZEludm9rZScpIHtcbiAgICAgICAgb3AgPSBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWQ7XG4gICAgICB9IGVsc2UgaWYgKGNvbnRleHQgPT09ICdUcnVzdGVkQXBwZW5kQmFyZScpIHtcbiAgICAgICAgb3AgPSBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2s7XG4gICAgICB9IGVsc2UgaWYgKGNvbnRleHQgPT09ICdUcnVzdGVkQXBwZW5kSW52b2tlJykge1xuICAgICAgICBvcCA9IFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWQ7XG4gICAgICB9IGVsc2UgaWYgKGNvbnRleHQgPT09ICdBdHRyVmFsdWVCYXJlJykge1xuICAgICAgICBvcCA9IFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFjaztcbiAgICAgIH0gZWxzZSBpZiAoY29udGV4dCA9PT0gJ0F0dHJWYWx1ZUludm9rZScpIHtcbiAgICAgICAgb3AgPSBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkO1xuICAgICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSAnU3ViRXhwcmVzc2lvbicpIHtcbiAgICAgICAgb3AgPSBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkO1xuICAgICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSAnR2VuZXJpYycpIHtcbiAgICAgICAgb3AgPSBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNGYWxsYmFjaztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9wID0gZXhwcmVzc2lvbkNvbnRleHRPcChjb250ZXh0KTtcbiAgICAgIH1cbiAgICAgIHN5bSA9IHN5bWJvbHMuZnJlZVZhcihoZWFkLm5hbWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIG9wID0gT3AuR2V0U3ltYm9sO1xuICAgICAgc3ltID0gZ2V0U3ltYm9sRm9yVmFyKGhlYWQua2luZCwgc3ltYm9scywgaGVhZC5uYW1lKTtcbiAgfVxuXG4gIGlmIChwYXRoID09PSB1bmRlZmluZWQgfHwgcGF0aC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW29wLCBzeW1dO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbb3AsIHN5bSwgcGF0aF07XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0U3ltYm9sRm9yVmFyKFxuICBraW5kOiBFeGNsdWRlPFZhcmlhYmxlS2luZCwgVmFyaWFibGVLaW5kLkZyZWU+LFxuICBzeW1ib2xzOiBTeW1ib2xzLFxuICBuYW1lOiBzdHJpbmdcbikge1xuICBzd2l0Y2ggKGtpbmQpIHtcbiAgICBjYXNlIFZhcmlhYmxlS2luZC5Bcmc6XG4gICAgICByZXR1cm4gc3ltYm9scy5hcmcobmFtZSk7XG4gICAgY2FzZSBWYXJpYWJsZUtpbmQuQmxvY2s6XG4gICAgICByZXR1cm4gc3ltYm9scy5ibG9jayhuYW1lKTtcbiAgICBjYXNlIFZhcmlhYmxlS2luZC5Mb2NhbDpcbiAgICAgIHJldHVybiBzeW1ib2xzLmxvY2FsKG5hbWUpO1xuICAgIGNhc2UgVmFyaWFibGVLaW5kLlRoaXM6XG4gICAgICByZXR1cm4gc3ltYm9scy50aGlzKCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBleGhhdXN0ZWQoa2luZCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cHJlc3Npb25Db250ZXh0T3AoY29udGV4dDogVmFyaWFibGVSZXNvbHV0aW9uQ29udGV4dCk6IEdldENvbnRleHR1YWxGcmVlT3Age1xuICBzd2l0Y2ggKGNvbnRleHQpIHtcbiAgICBjYXNlIFZhcmlhYmxlUmVzb2x1dGlvbkNvbnRleHQuU3RyaWN0OlxuICAgICAgcmV0dXJuIE9wLkdldFN0cmljdEZyZWU7XG4gICAgY2FzZSBWYXJpYWJsZVJlc29sdXRpb25Db250ZXh0LkFtYmlndW91c0FwcGVuZDpcbiAgICAgIHJldHVybiBPcC5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjaztcbiAgICBjYXNlIFZhcmlhYmxlUmVzb2x1dGlvbkNvbnRleHQuQW1iaWd1b3VzQXBwZW5kSW52b2tlOlxuICAgICAgcmV0dXJuIE9wLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZDtcbiAgICBjYXNlIFZhcmlhYmxlUmVzb2x1dGlvbkNvbnRleHQuQW1iaWd1b3VzSW52b2tlOlxuICAgICAgcmV0dXJuIE9wLkdldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFjaztcbiAgICBjYXNlIFZhcmlhYmxlUmVzb2x1dGlvbkNvbnRleHQuTG9vc2VGcmVlVmFyaWFibGU6XG4gICAgICByZXR1cm4gT3AuR2V0RnJlZUFzRmFsbGJhY2s7XG4gICAgY2FzZSBWYXJpYWJsZVJlc29sdXRpb25Db250ZXh0LlJlc29sdmVBc0NhbGxIZWFkOlxuICAgICAgcmV0dXJuIE9wLkdldEZyZWVBc0hlbHBlckhlYWQ7XG4gICAgY2FzZSBWYXJpYWJsZVJlc29sdXRpb25Db250ZXh0LlJlc29sdmVBc01vZGlmaWVySGVhZDpcbiAgICAgIHJldHVybiBPcC5HZXRGcmVlQXNNb2RpZmllckhlYWQ7XG4gICAgY2FzZSBWYXJpYWJsZVJlc29sdXRpb25Db250ZXh0LlJlc29sdmVBc0NvbXBvbmVudEhlYWQ6XG4gICAgICByZXR1cm4gT3AuR2V0RnJlZUFzQ29tcG9uZW50SGVhZDtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGV4aGF1c3RlZChjb250ZXh0KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQYXJhbXMoXG4gIGV4cHJzOiBPcHRpb248Tm9ybWFsaXplZFBhcmFtcz4sXG4gIHN5bWJvbHM6IFN5bWJvbHNcbik6IE9wdGlvbjxXaXJlRm9ybWF0LkNvcmUuUGFyYW1zPiB7XG4gIGlmIChleHBycyA9PT0gbnVsbCB8fCAhaXNQcmVzZW50KGV4cHJzKSkgcmV0dXJuIG51bGw7XG5cbiAgcmV0dXJuIGV4cHJzLm1hcCgoZSkgPT4gYnVpbGRFeHByZXNzaW9uKGUsICdHZW5lcmljJywgc3ltYm9scykpIGFzIFdpcmVGb3JtYXQuQ29yZS5Db25jYXRQYXJhbXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZENvbmNhdChcbiAgZXhwcnM6IFtOb3JtYWxpemVkRXhwcmVzc2lvbiwgLi4uTm9ybWFsaXplZEV4cHJlc3Npb25bXV0sXG4gIHN5bWJvbHM6IFN5bWJvbHNcbik6IFdpcmVGb3JtYXQuQ29yZS5Db25jYXRQYXJhbXMge1xuICByZXR1cm4gZXhwcnMubWFwKChlKSA9PiBidWlsZEV4cHJlc3Npb24oZSwgJ0F0dHJWYWx1ZScsIHN5bWJvbHMpKSBhcyBXaXJlRm9ybWF0LkNvcmUuQ29uY2F0UGFyYW1zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRIYXNoKGV4cHJzOiBPcHRpb248Tm9ybWFsaXplZEhhc2g+LCBzeW1ib2xzOiBTeW1ib2xzKTogV2lyZUZvcm1hdC5Db3JlLkhhc2gge1xuICBpZiAoZXhwcnMgPT09IG51bGwpIHJldHVybiBudWxsO1xuXG4gIGxldCBvdXQ6IFtzdHJpbmdbXSwgV2lyZUZvcm1hdC5FeHByZXNzaW9uW11dID0gW1tdLCBbXV07XG5cbiAgT2JqZWN0LmtleXMoZXhwcnMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIG91dFswXS5wdXNoKGtleSk7XG4gICAgb3V0WzFdLnB1c2goYnVpbGRFeHByZXNzaW9uKGV4cHJzW2tleV0sICdHZW5lcmljJywgc3ltYm9scykpO1xuICB9KTtcblxuICByZXR1cm4gb3V0IGFzIFdpcmVGb3JtYXQuQ29yZS5IYXNoO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRCbG9ja3MoXG4gIGJsb2NrczogTm9ybWFsaXplZEJsb2NrcyxcbiAgYmxvY2tQYXJhbXM6IE9wdGlvbjxzdHJpbmdbXT4sXG4gIHBhcmVudDogU3ltYm9sc1xuKTogV2lyZUZvcm1hdC5Db3JlLkJsb2NrcyB7XG4gIGxldCBrZXlzOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgdmFsdWVzOiBXaXJlRm9ybWF0LlNlcmlhbGl6ZWRJbmxpbmVCbG9ja1tdID0gW107XG5cbiAgT2JqZWN0LmtleXMoYmxvY2tzKS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAga2V5cy5wdXNoKG5hbWUpO1xuXG4gICAgaWYgKG5hbWUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgbGV0IHN5bWJvbHMgPSBwYXJlbnQuY2hpbGQoYmxvY2tQYXJhbXMgfHwgW10pO1xuXG4gICAgICB2YWx1ZXMucHVzaChidWlsZEJsb2NrKGJsb2Nrc1tuYW1lXSwgc3ltYm9scywgc3ltYm9scy5wYXJhbVN5bWJvbHMpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWVzLnB1c2goYnVpbGRCbG9jayhibG9ja3NbbmFtZV0sIHBhcmVudCwgW10pKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBba2V5cywgdmFsdWVzXTtcbn1cblxuZnVuY3Rpb24gYnVpbGRCbG9jayhcbiAgYmxvY2s6IE5vcm1hbGl6ZWRCbG9jayxcbiAgc3ltYm9sczogU3ltYm9scyxcbiAgbG9jYWxzOiBudW1iZXJbXSA9IFtdXG4pOiBXaXJlRm9ybWF0LlNlcmlhbGl6ZWRJbmxpbmVCbG9jayB7XG4gIHJldHVybiBbYnVpbGROb3JtYWxpemVkU3RhdGVtZW50cyhibG9jaywgc3ltYm9scyksIGxvY2Fsc107XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBpbGVyL2xpYi9idWlsZGVyL2J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsU0FBUyxNQUFULEVBQWlCLFdBQWpCLEVBQThCLElBQTlCLEVBQW9DLFNBQXBDLEVBQXVELFNBQXZELEVBQWtFLE1BQWxFLFFBQWdGLGVBQWhGO0FBR0EsU0FrQkUsa0JBbEJGLEVBb0JFLFlBcEJGLFFBcUJPLHFCQXJCUDtBQXNDQSxPQUFNLE1BQU8sY0FBUCxDQUFxQjtBQUEzQixFQUFBLFdBQUEsR0FBQTtBQUNFLFNBQUEsY0FBQSxHQUEyQixFQUEzQjtBQUNBLFNBQUEsUUFBQSxHQUFxQixDQUFDLE1BQUQsQ0FBckI7QUFFQSxTQUFBLEdBQUEsR0FBTSxJQUFOO0FBNENEOztBQTFDQyxFQUFBLFNBQVMsR0FBQTtBQUNQLFdBQU8sS0FBSyxRQUFMLENBQWMsS0FBZCxDQUFvQixDQUFwQixDQUFQO0FBQ0Q7O0FBRUQsRUFBQSxRQUFRLEdBQUE7QUFDTixXQUFPLEtBQUssY0FBWjtBQUNEOztBQUVELEVBQUEsT0FBTyxDQUFDLElBQUQsRUFBYTtBQUNsQixXQUFPLFNBQVMsQ0FBQyxLQUFLLGNBQU4sRUFBc0IsSUFBdEIsQ0FBaEI7QUFDRDs7QUFFRCxFQUFBLEtBQUssQ0FBQyxJQUFELEVBQWE7QUFDaEIsV0FBTyxLQUFLLE1BQUwsQ0FBWSxJQUFaLENBQVA7QUFDRDs7QUFFRCxFQUFBLEdBQUcsQ0FBQyxJQUFELEVBQWE7QUFDZCxXQUFPLFNBQVMsQ0FBQyxLQUFLLFFBQU4sRUFBZ0IsSUFBaEIsQ0FBaEI7QUFDRDs7QUFFRCxFQUFBLEtBQUssQ0FBQyxJQUFELEVBQWE7QUFDaEIsVUFBTSxJQUFJLEtBQUosQ0FDSixZQUFZLElBQUksZ0NBQWdDLElBQUksbUJBQW1CLElBQUksZUFEdkUsQ0FBTjtBQUdEOztBQUVELEVBQUEsSUFBSSxHQUFBO0FBQ0YsV0FBTyxDQUFQO0FBQ0Q7O0FB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QUNMLE1BQUEsTUFBTSxDQUFDLElBQVAsQ0FBWSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUQsQ0FBUCxFQUFlLE1BQWYsRUFBdUIsRUFBdkIsQ0FBdEI7QUFDRDtBQUNGLEdBVkQ7QUFZQSxTQUFPLENBQUMsSUFBRCxFQUFPLE1BQVAsQ0FBUDtBQUNEOztBQUVELFNBQVMsVUFBVCxDQUNFLEtBREYsRUFFRSxPQUZGLEVBR0UsTUFBQSxHQUFtQixFQUhyQixFQUd1QjtBQUVyQixTQUFPLENBQUMseUJBQXlCLENBQUMsS0FBRCxFQUFRLE9BQVIsQ0FBMUIsRUFBNEMsTUFBNUMsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGljdCxcbiAgRXhwcmVzc2lvbnMsXG4gIEdldENvbnRleHR1YWxGcmVlT3AsXG4gIE9wdGlvbixcbiAgUHJlc2VudEFycmF5LFxuICBTZXhwT3Bjb2RlcyxcbiAgVmFyaWFibGVSZXNvbHV0aW9uQ29udGV4dCxcbiAgV2lyZUZvcm1hdCxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBhc3NlcnQsIGFzc2VydE5ldmVyLCBkaWN0LCBleGhhdXN0ZWQsIGV4cGVjdCwgaXNQcmVzZW50LCB2YWx1ZXMgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IEF0dHJOYW1lc3BhY2UsIE5hbWVzcGFjZSB9IGZyb20gJ0BzaW1wbGUtZG9tL2ludGVyZmFjZSc7XG5cbmltcG9ydCB7XG4gIEJ1aWxkZXIsXG4gIEJ1aWxkZXJDb21tZW50LFxuICBCdWlsZGVyU3RhdGVtZW50LFxuICBFeHByZXNzaW9uS2luZCxcbiAgSGVhZEtpbmQsXG4gIE5vcm1hbGl6ZWRBbmdsZUludm9jYXRpb24sXG4gIE5vcm1hbGl6ZWRBdHRycyxcbiAgTm9ybWFsaXplZEJsb2NrLFxuICBOb3JtYWxpemVkQmxvY2tzLFxuICBOb3JtYWxpemVkRWxlbWVudCxcbiAgTm9ybWFsaXplZEV4cHJlc3Npb24sXG4gIE5vcm1hbGl6ZWRIYXNoLFxuICBOb3JtYWxpemVkSGVhZCxcbiAgTm9ybWFsaXplZEtleXdvcmRTdGF0ZW1lbnQsXG4gIE5vcm1hbGl6ZWRQYXJhbXMsXG4gIE5vcm1hbGl6ZWRQYXRoLFxuICBOb3JtYWxpemVkU3RhdGVtZW50LFxuICBub3JtYWxpemVTdGF0ZW1lbnQsXG4gIFZhcmlhYmxlLFxuICBWYXJpYWJsZUtpbmQsXG59IGZyb20gJy4vYnVpbGRlci1pbnRlcmZhY2UnO1xuXG5pbXBvcnQgT3AgPSBXaXJlRm9ybWF0LlNleHBPcGNvZGVzO1xuXG5pbnRlcmZhY2UgU3ltYm9scyB7XG4gIHRvcDogUHJvZ3JhbVN5bWJvbHM7XG4gIGZyZWVWYXIobmFtZTogc3RyaW5nKTogbnVtYmVyO1xuICBhcmcobmFtZTogc3RyaW5nKTogbnVtYmVyO1xuICBibG9jayhuYW1lOiBzdHJpbmcpOiBudW1iZXI7XG4gIGxvY2FsKG5hbWU6IHN0cmluZyk6IG51bWJlcjtcbiAgdGhpcygpOiBudW1iZXI7XG5cbiAgaGFzTG9jYWwobmFtZTogc3RyaW5nKTogYm9vbGVhbjtcblxuICBjaGlsZChwYXJhbXM6IHN0cmluZ1tdKTogTG9jYWxTeW1ib2xzO1xufVxuXG5leHBvcnQgY2xhc3MgUHJvZ3JhbVN5bWJvbHMgaW1wbGVtZW50cyBTeW1ib2xzIHtcbiAgX2ZyZWVWYXJpYWJsZXM6IHN0cmluZ1tdID0gW107XG4gIF9zeW1ib2xzOiBzdHJpbmdbXSA9IFsndGhpcyddO1xuXG4gIHRvcCA9IHRoaXM7XG5cbiAgdG9TeW1ib2xzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fc3ltYm9scy5zbGljZSgxKTtcbiAgfVxuXG4gIHRvVXB2YXJzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fZnJlZVZhcmlhYmxlcztcbiAgfVxuXG4gIGZyZWVWYXIobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gYWRkU3RyaW5nKHRoaXMuX2ZyZWVWYXJpYWJsZXMsIG5hbWUpO1xuICB9XG5cbiAgYmxvY2sobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zeW1ib2wobmFtZSk7XG4gIH1cblxuICBhcmcobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gYWRkU3RyaW5nKHRoaXMuX3N5bWJvbHMsIG5hbWUpO1xuICB9XG5cbiAgbG9jYWwobmFtZTogc3RyaW5nKTogbmV2ZXIge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBObyBsb2NhbCAke25hbWV9IHdhcyBmb3VuZC4gTWF5YmUgeW91IG1lYW50IF4ke25hbWV9IGZvciB1cHZhciwgb3IgISR7bmFtZX0gZm9yIGtleXdvcmQ/YFxuICAgICk7XG4gIH1cblxuICB0aGlzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBoYXNMb2NhbChfbmFtZTogc3RyaW5nKTogZmFsc2Uge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIGFueSBzeW1ib2xcbiAgc3ltYm9sKG5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIGFkZFN0cmluZyh0aGlzLl9zeW1ib2xzLCBuYW1lKTtcbiAgfVxuXG4gIGNoaWxkKGxvY2Fsczogc3RyaW5nW10pOiBMb2NhbFN5bWJvbHMge1xuICAgIHJldHVybiBuZXcgTG9jYWxTeW1ib2xzKHRoaXMsIGxvY2Fscyk7XG4gIH1cbn1cblxuY2xhc3MgTG9jYWxTeW1ib2xzIGltcGxlbWVudHMgU3ltYm9scyB7XG4gIHByaXZhdGUgbG9jYWxzOiBEaWN0PG51bWJlcj4gPSBkaWN0KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYXJlbnQ6IFN5bWJvbHMsIGxvY2Fsczogc3RyaW5nW10pIHtcbiAgICBmb3IgKGxldCBsb2NhbCBvZiBsb2NhbHMpIHtcbiAgICAgIHRoaXMubG9jYWxzW2xvY2FsXSA9IHBhcmVudC50b3Auc3ltYm9sKGxvY2FsKTtcbiAgICB9XG4gIH1cblxuICBnZXQgcGFyYW1TeW1ib2xzKCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gdmFsdWVzKHRoaXMubG9jYWxzKTtcbiAgfVxuXG4gIGdldCB0b3AoKTogUHJvZ3JhbVN5bWJvbHMge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC50b3A7XG4gIH1cblxuICBmcmVlVmFyKG5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50LmZyZWVWYXIobmFtZSk7XG4gIH1cblxuICBhcmcobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuYXJnKG5hbWUpO1xuICB9XG5cbiAgYmxvY2sobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuYmxvY2sobmFtZSk7XG4gIH1cblxuICBsb2NhbChuYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGlmIChuYW1lIGluIHRoaXMubG9jYWxzKSB7XG4gICAgICByZXR1cm4gdGhpcy5sb2NhbHNbbmFtZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnBhcmVudC5sb2NhbChuYW1lKTtcbiAgICB9XG4gIH1cblxuICB0aGlzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50LnRoaXMoKTtcbiAgfVxuXG4gIGhhc0xvY2FsKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmIChuYW1lIGluIHRoaXMubG9jYWxzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50Lmhhc0xvY2FsKG5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIGNoaWxkKGxvY2Fsczogc3RyaW5nW10pOiBMb2NhbFN5bWJvbHMge1xuICAgIHJldHVybiBuZXcgTG9jYWxTeW1ib2xzKHRoaXMsIGxvY2Fscyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkU3RyaW5nKGFycmF5OiBzdHJpbmdbXSwgaXRlbTogc3RyaW5nKTogbnVtYmVyIHtcbiAgbGV0IGluZGV4ID0gYXJyYXkuaW5kZXhPZihpdGVtKTtcblxuICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgaW5kZXggPSBhcnJheS5sZW5ndGg7XG4gICAgYXJyYXkucHVzaChpdGVtKTtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRlckdldEZyZWUge1xuICB0eXBlOiAnR2V0RnJlZSc7XG4gIGhlYWQ6IHN0cmluZztcbiAgdGFpbDogc3RyaW5nW107XG59XG5cbmZ1bmN0aW9uIHVuaW1wbChtZXNzYWdlOiBzdHJpbmcpOiBFcnJvciB7XG4gIHJldHVybiBuZXcgRXJyb3IoYHVuaW1wbGVtZW50ZWQgJHttZXNzYWdlfWApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTdGF0ZW1lbnRzKFxuICBzdGF0ZW1lbnRzOiBCdWlsZGVyU3RhdGVtZW50W10sXG4gIHN5bWJvbHM6IFN5bWJvbHNcbik6IFdpcmVGb3JtYXQuU3RhdGVtZW50W10ge1xuICBsZXQgb3V0OiBXaXJlRm9ybWF0LlN0YXRlbWVudFtdID0gW107XG5cbiAgc3RhdGVtZW50cy5mb3JFYWNoKChzKSA9PiBvdXQucHVzaCguLi5idWlsZFN0YXRlbWVudChub3JtYWxpemVTdGF0ZW1lbnQocyksIHN5bWJvbHMpKSk7XG5cbiAgcmV0dXJuIG91dDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkTm9ybWFsaXplZFN0YXRlbWVudHMoXG4gIHN0YXRlbWVudHM6IE5vcm1hbGl6ZWRTdGF0ZW1lbnRbXSxcbiAgc3ltYm9sczogU3ltYm9sc1xuKTogV2lyZUZvcm1hdC5TdGF0ZW1lbnRbXSB7XG4gIGxldCBvdXQ6IFdpcmVGb3JtYXQuU3RhdGVtZW50W10gPSBbXTtcblxuICBzdGF0ZW1lbnRzLmZvckVhY2goKHMpID0+IG91dC5wdXNoKC4uLmJ1aWxkU3RhdGVtZW50KHMsIHN5bWJvbHMpKSk7XG5cbiAgcmV0dXJuIG91dDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkU3RhdGVtZW50KFxuICBub3JtYWxpemVkOiBOb3JtYWxpemVkU3RhdGVtZW50LFxuICBzeW1ib2xzOiBTeW1ib2xzID0gbmV3IFByb2dyYW1TeW1ib2xzKClcbik6IFdpcmVGb3JtYXQuU3RhdGVtZW50W10ge1xuICBzd2l0Y2ggKG5vcm1hbGl6ZWQua2luZCkge1xuICAgIGNhc2UgSGVhZEtpbmQuQXBwZW5kUGF0aDoge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgW1xuICAgICAgICAgIG5vcm1hbGl6ZWQudHJ1c3RlZCA/IE9wLlRydXN0aW5nQXBwZW5kIDogT3AuQXBwZW5kLFxuICAgICAgICAgIGJ1aWxkR2V0UGF0aChub3JtYWxpemVkLnBhdGgsIHN5bWJvbHMpLFxuICAgICAgICBdLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBjYXNlIEhlYWRLaW5kLkFwcGVuZEV4cHI6IHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIFtcbiAgICAgICAgICBub3JtYWxpemVkLnRydXN0ZWQgPyBPcC5UcnVzdGluZ0FwcGVuZCA6IE9wLkFwcGVuZCxcbiAgICAgICAgICBidWlsZEV4cHJlc3Npb24oXG4gICAgICAgICAgICBub3JtYWxpemVkLmV4cHIsXG4gICAgICAgICAgICBub3JtYWxpemVkLnRydXN0ZWQgPyAnVHJ1c3RlZEFwcGVuZCcgOiAnQXBwZW5kJyxcbiAgICAgICAgICAgIHN5bWJvbHNcbiAgICAgICAgICApLFxuICAgICAgICBdLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBjYXNlIEhlYWRLaW5kLkNhbGw6IHtcbiAgICAgIGxldCB7IGhlYWQ6IHBhdGgsIHBhcmFtcywgaGFzaCwgdHJ1c3RlZCB9ID0gbm9ybWFsaXplZDtcbiAgICAgIGxldCBidWlsdFBhcmFtczogT3B0aW9uPFdpcmVGb3JtYXQuQ29yZS5QYXJhbXM+ID0gcGFyYW1zXG4gICAgICAgID8gYnVpbGRQYXJhbXMocGFyYW1zLCBzeW1ib2xzKVxuICAgICAgICA6IG51bGw7XG4gICAgICBsZXQgYnVpbHRIYXNoOiBXaXJlRm9ybWF0LkNvcmUuSGFzaCA9IGhhc2ggPyBidWlsZEhhc2goaGFzaCwgc3ltYm9scykgOiBudWxsO1xuICAgICAgbGV0IGJ1aWx0RXhwcjogV2lyZUZvcm1hdC5FeHByZXNzaW9uID0gYnVpbGRDYWxsSGVhZChcbiAgICAgICAgcGF0aCxcbiAgICAgICAgdHJ1c3RlZFxuICAgICAgICAgID8gVmFyaWFibGVSZXNvbHV0aW9uQ29udGV4dC5BbWJpZ3VvdXNJbnZva2VcbiAgICAgICAgICA6IFZhcmlhYmxlUmVzb2x1dGlvbkNvbnRleHQuQW1iaWd1b3VzQXBwZW5kSW52b2tlLFxuICAgICAgICBzeW1ib2xzXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gW1xuICAgICAgICBbdHJ1c3RlZCA/IE9wLlRydXN0aW5nQXBwZW5kIDogT3AuQXBwZW5kLCBbT3AuQ2FsbCwgYnVpbHRFeHByLCBidWlsdFBhcmFtcywgYnVpbHRIYXNoXV0sXG4gICAgICBdO1xuICAgIH1cblxuICAgIGNhc2UgSGVhZEtpbmQuTGl0ZXJhbDoge1xuICAgICAgcmV0dXJuIFtbT3AuQXBwZW5kLCBub3JtYWxpemVkLnZhbHVlXV07XG4gICAgfVxuXG4gICAgY2FzZSBIZWFkS2luZC5Db21tZW50OiB7XG4gICAgICByZXR1cm4gW1tPcC5Db21tZW50LCBub3JtYWxpemVkLnZhbHVlXV07XG4gICAgfVxuXG4gICAgY2FzZSBIZWFkS2luZC5CbG9jazoge1xuICAgICAgbGV0IGJsb2NrcyA9IGJ1aWxkQmxvY2tzKG5vcm1hbGl6ZWQuYmxvY2tzLCBub3JtYWxpemVkLmJsb2NrUGFyYW1zLCBzeW1ib2xzKTtcbiAgICAgIGxldCBoYXNoID0gYnVpbGRIYXNoKG5vcm1hbGl6ZWQuaGFzaCwgc3ltYm9scyk7XG4gICAgICBsZXQgcGFyYW1zID0gYnVpbGRQYXJhbXMobm9ybWFsaXplZC5wYXJhbXMsIHN5bWJvbHMpO1xuICAgICAgbGV0IHBhdGggPSBidWlsZENhbGxIZWFkKFxuICAgICAgICBub3JtYWxpemVkLmhlYWQsXG4gICAgICAgIFZhcmlhYmxlUmVzb2x1dGlvbkNvbnRleHQuUmVzb2x2ZUFzQ29tcG9uZW50SGVhZCxcbiAgICAgICAgc3ltYm9sc1xuICAgICAgKTtcblxuICAgICAgcmV0dXJuIFtbT3AuQmxvY2ssIHBhdGgsIHBhcmFtcywgaGFzaCwgYmxvY2tzXV07XG4gICAgfVxuXG4gICAgY2FzZSBIZWFkS2luZC5LZXl3b3JkOiB7XG4gICAgICByZXR1cm4gW2J1aWxkS2V5d29yZChub3JtYWxpemVkLCBzeW1ib2xzKV07XG4gICAgfVxuXG4gICAgY2FzZSBIZWFkS2luZC5FbGVtZW50OlxuICAgICAgcmV0dXJuIGJ1aWxkRWxlbWVudChub3JtYWxpemVkLCBzeW1ib2xzKTtcblxuICAgIGNhc2UgSGVhZEtpbmQuTW9kaWZpZXI6XG4gICAgICB0aHJvdyB1bmltcGwoJ21vZGlmaWVyJyk7XG5cbiAgICBjYXNlIEhlYWRLaW5kLkR5bmFtaWNDb21wb25lbnQ6XG4gICAgICB0aHJvdyB1bmltcGwoJ2R5bmFtaWMgY29tcG9uZW50Jyk7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgYXNzZXJ0TmV2ZXIobm9ybWFsaXplZCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHMoXG4gIGFycjogVGVtcGxhdGVTdHJpbmdzQXJyYXksXG4gIC4uLmludGVycG9sYXRlZDogdW5rbm93bltdXG4pOiBbQnVpbGRlci5MaXRlcmFsLCBzdHJpbmddIHtcbiAgbGV0IHJlc3VsdCA9IGFyci5yZWR1Y2UoXG4gICAgKHJlc3VsdCwgc3RyaW5nLCBpKSA9PiByZXN1bHQgKyBgJHtzdHJpbmd9JHtpbnRlcnBvbGF0ZWRbaV0gPyBTdHJpbmcoaW50ZXJwb2xhdGVkW2ldKSA6ICcnfWAsXG4gICAgJydcbiAgKTtcblxuICByZXR1cm4gW0J1aWxkZXIuTGl0ZXJhbCwgcmVzdWx0XTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGMoYXJyOiBUZW1wbGF0ZVN0cmluZ3NBcnJheSwgLi4uaW50ZXJwb2xhdGVkOiB1bmtub3duW10pOiBCdWlsZGVyQ29tbWVudCB7XG4gIGxldCByZXN1bHQgPSBhcnIucmVkdWNlKFxuICAgIChyZXN1bHQsIHN0cmluZywgaSkgPT4gcmVzdWx0ICsgYCR7c3RyaW5nfSR7aW50ZXJwb2xhdGVkW2ldID8gU3RyaW5nKGludGVycG9sYXRlZFtpXSkgOiAnJ31gLFxuICAgICcnXG4gICk7XG5cbiAgcmV0dXJuIFtCdWlsZGVyLkNvbW1lbnQsIHJlc3VsdF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmljb2RlKGNoYXJDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChjaGFyQ29kZSwgMTYpKTtcbn1cblxuZXhwb3J0IGNvbnN0IE5FV0xJTkUgPSAnXFxuJztcblxuZnVuY3Rpb24gYnVpbGRLZXl3b3JkKFxuICBub3JtYWxpemVkOiBOb3JtYWxpemVkS2V5d29yZFN0YXRlbWVudCxcbiAgc3ltYm9sczogU3ltYm9sc1xuKTogV2lyZUZvcm1hdC5TdGF0ZW1lbnQge1xuICBsZXQgeyBuYW1lIH0gPSBub3JtYWxpemVkO1xuICBsZXQgcGFyYW1zID0gYnVpbGRQYXJhbXMobm9ybWFsaXplZC5wYXJhbXMsIHN5bWJvbHMpO1xuICBsZXQgY2hpbGRTeW1ib2xzID0gc3ltYm9scy5jaGlsZChub3JtYWxpemVkLmJsb2NrUGFyYW1zIHx8IFtdKTtcblxuICBsZXQgYmxvY2sgPSBidWlsZEJsb2NrKG5vcm1hbGl6ZWQuYmxvY2tzLmRlZmF1bHQsIGNoaWxkU3ltYm9scywgY2hpbGRTeW1ib2xzLnBhcmFtU3ltYm9scyk7XG4gIGxldCBpbnZlcnNlID0gbm9ybWFsaXplZC5ibG9ja3MuZWxzZSA/IGJ1aWxkQmxvY2sobm9ybWFsaXplZC5ibG9ja3MuZWxzZSwgc3ltYm9scywgW10pIDogbnVsbDtcblxuICBzd2l0Y2ggKG5hbWUpIHtcbiAgICBjYXNlICd3aXRoJzpcbiAgICAgIHJldHVybiBbT3AuV2l0aCwgZXhwZWN0KHBhcmFtcywgJ3dpdGggcmVxdWlyZXMgcGFyYW1zJylbMF0sIGJsb2NrLCBpbnZlcnNlXTtcbiAgICBjYXNlICdpZic6XG4gICAgICByZXR1cm4gW09wLklmLCBleHBlY3QocGFyYW1zLCAnaWYgcmVxdWlyZXMgcGFyYW1zJylbMF0sIGJsb2NrLCBpbnZlcnNlXTtcbiAgICBjYXNlICdlYWNoJzpcbiAgICAgIGxldCBrZXlFeHByID0gbm9ybWFsaXplZC5oYXNoID8gbm9ybWFsaXplZC5oYXNoWydrZXknXSA6IG51bGw7XG4gICAgICBsZXQga2V5ID0ga2V5RXhwciA/IGJ1aWxkRXhwcmVzc2lvbihrZXlFeHByLCAnU3RyaWN0Jywgc3ltYm9scykgOiBudWxsO1xuXG4gICAgICByZXR1cm4gW09wLkVhY2gsIGV4cGVjdChwYXJhbXMsICdpZiByZXF1aXJlcyBwYXJhbXMnKVswXSwga2V5LCBibG9jaywgaW52ZXJzZV07XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5pbXBsZW1lbnRlZCBrZXl3b3JkJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYnVpbGRFbGVtZW50KFxuICB7IG5hbWUsIGF0dHJzLCBibG9jayB9OiBOb3JtYWxpemVkRWxlbWVudCxcbiAgc3ltYm9sczogU3ltYm9sc1xuKTogV2lyZUZvcm1hdC5TdGF0ZW1lbnRbXSB7XG4gIGxldCBvdXQ6IFdpcmVGb3JtYXQuU3RhdGVtZW50W10gPSBbXG4gICAgaGFzU3BsYXQoYXR0cnMpID8gW09wLk9wZW5FbGVtZW50V2l0aFNwbGF0LCBuYW1lXSA6IFtPcC5PcGVuRWxlbWVudCwgbmFtZV0sXG4gIF07XG4gIGlmIChhdHRycykge1xuICAgIGxldCB7IHBhcmFtcywgYXJncyB9ID0gYnVpbGRFbGVtZW50UGFyYW1zKGF0dHJzLCBzeW1ib2xzKTtcbiAgICBvdXQucHVzaCguLi5wYXJhbXMpO1xuICAgIGFzc2VydChhcmdzID09PSBudWxsLCBgQ2FuJ3QgcGFzcyBhcmdzIHRvIGEgc2ltcGxlIGVsZW1lbnRgKTtcbiAgfVxuICBvdXQucHVzaChbT3AuRmx1c2hFbGVtZW50XSk7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoYmxvY2spKSB7XG4gICAgYmxvY2suZm9yRWFjaCgocykgPT4gb3V0LnB1c2goLi4uYnVpbGRTdGF0ZW1lbnQocywgc3ltYm9scykpKTtcbiAgfSBlbHNlIGlmIChibG9jayA9PT0gbnVsbCkge1xuICAgIC8vIGRvIG5vdGhpbmdcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBhc3NlcnROZXZlcihibG9jayk7XG4gIH1cblxuICBvdXQucHVzaChbT3AuQ2xvc2VFbGVtZW50XSk7XG5cbiAgcmV0dXJuIG91dDtcbn1cblxuZnVuY3Rpb24gaGFzU3BsYXQoYXR0cnM6IE9wdGlvbjxOb3JtYWxpemVkQXR0cnM+KTogYm9vbGVhbiB7XG4gIGlmIChhdHRycyA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiBPYmplY3Qua2V5cyhhdHRycykuc29tZSgoYSkgPT4gYXR0cnNbYV0gPT09IEhlYWRLaW5kLlNwbGF0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQW5nbGVJbnZvY2F0aW9uKFxuICB7IGF0dHJzLCBibG9jaywgaGVhZCB9OiBOb3JtYWxpemVkQW5nbGVJbnZvY2F0aW9uLFxuICBzeW1ib2xzOiBTeW1ib2xzXG4pOiBXaXJlRm9ybWF0LlN0YXRlbWVudHMuQ29tcG9uZW50IHtcbiAgbGV0IHBhcmFtTGlzdDogV2lyZUZvcm1hdC5FbGVtZW50UGFyYW1ldGVyW10gPSBbXTtcbiAgbGV0IGFyZ3M6IFdpcmVGb3JtYXQuQ29yZS5IYXNoID0gbnVsbDtcbiAgbGV0IGJsb2NrTGlzdDogV2lyZUZvcm1hdC5TdGF0ZW1lbnRbXSA9IFtdO1xuXG4gIGlmIChhdHRycykge1xuICAgIGxldCBidWlsdCA9IGJ1aWxkRWxlbWVudFBhcmFtcyhhdHRycywgc3ltYm9scyk7XG4gICAgcGFyYW1MaXN0ID0gYnVpbHQucGFyYW1zO1xuICAgIGFyZ3MgPSBidWlsdC5hcmdzO1xuICB9XG5cbiAgaWYgKGJsb2NrKSBibG9ja0xpc3QgPSBidWlsZE5vcm1hbGl6ZWRTdGF0ZW1lbnRzKGJsb2NrLCBzeW1ib2xzKTtcblxuICByZXR1cm4gW1xuICAgIE9wLkNvbXBvbmVudCxcbiAgICBidWlsZEV4cHJlc3Npb24oaGVhZCwgVmFyaWFibGVSZXNvbHV0aW9uQ29udGV4dC5SZXNvbHZlQXNDb21wb25lbnRIZWFkLCBzeW1ib2xzKSxcbiAgICBpc1ByZXNlbnQocGFyYW1MaXN0KSA/IHBhcmFtTGlzdCA6IG51bGwsXG4gICAgYXJncyxcbiAgICBbWydkZWZhdWx0J10sIFtbYmxvY2tMaXN0LCBbXV1dXSxcbiAgXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRWxlbWVudFBhcmFtcyhcbiAgYXR0cnM6IE5vcm1hbGl6ZWRBdHRycyxcbiAgc3ltYm9sczogU3ltYm9sc1xuKTogeyBwYXJhbXM6IFdpcmVGb3JtYXQuRWxlbWVudFBhcmFtZXRlcltdOyBhcmdzOiBXaXJlRm9ybWF0LkNvcmUuSGFzaCB9IHtcbiAgbGV0IHBhcmFtczogV2lyZUZvcm1hdC5FbGVtZW50UGFyYW1ldGVyW10gPSBbXTtcbiAgbGV0IGtleXM6IHN0cmluZ1tdID0gW107XG4gIGxldCB2YWx1ZXM6IFdpcmVGb3JtYXQuRXhwcmVzc2lvbltdID0gW107XG5cbiAgT2JqZWN0LmtleXMoYXR0cnMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGxldCB2YWx1ZSA9IGF0dHJzW2tleV07XG5cbiAgICBpZiAodmFsdWUgPT09IEhlYWRLaW5kLlNwbGF0KSB7XG4gICAgICBwYXJhbXMucHVzaChbT3AuQXR0clNwbGF0LCBzeW1ib2xzLmJsb2NrKCcmYXR0cnMnKV0pO1xuICAgIH0gZWxzZSBpZiAoa2V5WzBdID09PSAnQCcpIHtcbiAgICAgIGtleXMucHVzaChrZXkpO1xuICAgICAgdmFsdWVzLnB1c2goYnVpbGRFeHByZXNzaW9uKHZhbHVlLCAnU3RyaWN0Jywgc3ltYm9scykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbXMucHVzaChcbiAgICAgICAgLi4uYnVpbGRBdHRyaWJ1dGVWYWx1ZShcbiAgICAgICAgICBrZXksXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgLy8gVE9ETzogZXh0cmFjdCBuYW1lc3BhY2UgZnJvbSBrZXlcbiAgICAgICAgICBleHRyYWN0TmFtZXNwYWNlKGtleSksXG4gICAgICAgICAgc3ltYm9sc1xuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHsgcGFyYW1zLCBhcmdzOiBpc1ByZXNlbnQoa2V5cykgJiYgaXNQcmVzZW50KHZhbHVlcykgPyBba2V5cywgdmFsdWVzXSA6IG51bGwgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3ROYW1lc3BhY2UobmFtZTogc3RyaW5nKTogT3B0aW9uPEF0dHJOYW1lc3BhY2U+IHtcbiAgaWYgKG5hbWUgPT09ICd4bWxucycpIHtcbiAgICByZXR1cm4gTmFtZXNwYWNlLlhNTE5TO1xuICB9XG5cbiAgbGV0IG1hdGNoID0gL14oW146XSopOihbXjpdKikkLy5leGVjKG5hbWUpO1xuXG4gIGlmIChtYXRjaCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgbGV0IG5hbWVzcGFjZSA9IG1hdGNoWzFdO1xuXG4gIHN3aXRjaCAobmFtZXNwYWNlKSB7XG4gICAgY2FzZSAneGxpbmsnOlxuICAgICAgcmV0dXJuIE5hbWVzcGFjZS5YTGluaztcbiAgICBjYXNlICd4bWwnOlxuICAgICAgcmV0dXJuIE5hbWVzcGFjZS5YTUw7XG4gICAgY2FzZSAneG1sbnMnOlxuICAgICAgcmV0dXJuIE5hbWVzcGFjZS5YTUxOUztcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRBdHRyaWJ1dGVWYWx1ZShcbiAgbmFtZTogc3RyaW5nLFxuICB2YWx1ZTogTm9ybWFsaXplZEV4cHJlc3Npb24sXG4gIG5hbWVzcGFjZTogT3B0aW9uPEF0dHJOYW1lc3BhY2U+LFxuICBzeW1ib2xzOiBTeW1ib2xzXG4pOiBXaXJlRm9ybWF0LkF0dHJpYnV0ZVtdIHtcbiAgc3dpdGNoICh2YWx1ZS50eXBlKSB7XG4gICAgY2FzZSBFeHByZXNzaW9uS2luZC5MaXRlcmFsOiB7XG4gICAgICBsZXQgdmFsID0gdmFsdWUudmFsdWU7XG5cbiAgICAgIGlmICh2YWwgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH0gZWxzZSBpZiAodmFsID09PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiBbW09wLlN0YXRpY0F0dHIsIG5hbWUsICcnLCBuYW1lc3BhY2UgPz8gdW5kZWZpbmVkXV07XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBbW09wLlN0YXRpY0F0dHIsIG5hbWUsIHZhbCwgbmFtZXNwYWNlID8/IHVuZGVmaW5lZF1dO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkL3VuaW1wbGVtZW50ZWQgbGl0ZXJhbCBhdHRyaWJ1dGUgJHtKU09OLnN0cmluZ2lmeSh2YWwpfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gW1xuICAgICAgICBbXG4gICAgICAgICAgT3AuRHluYW1pY0F0dHIsXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBidWlsZEV4cHJlc3Npb24odmFsdWUsICdBdHRyVmFsdWUnLCBzeW1ib2xzKSxcbiAgICAgICAgICBuYW1lc3BhY2UgPz8gdW5kZWZpbmVkLFxuICAgICAgICBdLFxuICAgICAgXTtcbiAgfVxufVxuXG50eXBlIEV4cHJSZXNvbHV0aW9uID1cbiAgfCBWYXJpYWJsZVJlc29sdXRpb25Db250ZXh0XG4gIHwgJ0FwcGVuZCdcbiAgfCAnVHJ1c3RlZEFwcGVuZCdcbiAgfCAnQXR0clZhbHVlJ1xuICB8ICdTdWJFeHByZXNzaW9uJ1xuICB8ICdTdHJpY3QnO1xuXG5mdW5jdGlvbiB2YXJDb250ZXh0KGNvbnRleHQ6IEV4cHJSZXNvbHV0aW9uLCBiYXJlOiBib29sZWFuKTogVmFyUmVzb2x1dGlvbiB7XG4gIHN3aXRjaCAoY29udGV4dCkge1xuICAgIGNhc2UgJ0FwcGVuZCc6XG4gICAgICByZXR1cm4gYmFyZSA/ICdBcHBlbmRCYXJlJyA6ICdBcHBlbmRJbnZva2UnO1xuICAgIGNhc2UgJ1RydXN0ZWRBcHBlbmQnOlxuICAgICAgcmV0dXJuIGJhcmUgPyAnVHJ1c3RlZEFwcGVuZEJhcmUnIDogJ1RydXN0ZWRBcHBlbmRJbnZva2UnO1xuICAgIGNhc2UgJ0F0dHJWYWx1ZSc6XG4gICAgICByZXR1cm4gYmFyZSA/ICdBdHRyVmFsdWVCYXJlJyA6ICdBdHRyVmFsdWVJbnZva2UnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gY29udGV4dDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRFeHByZXNzaW9uKFxuICBleHByOiBOb3JtYWxpemVkRXhwcmVzc2lvbixcbiAgY29udGV4dDogRXhwclJlc29sdXRpb24sXG4gIHN5bWJvbHM6IFN5bWJvbHNcbik6IFdpcmVGb3JtYXQuRXhwcmVzc2lvbiB7XG4gIHN3aXRjaCAoZXhwci50eXBlKSB7XG4gICAgY2FzZSBFeHByZXNzaW9uS2luZC5HZXRQYXRoOiB7XG4gICAgICByZXR1cm4gYnVpbGRHZXRQYXRoKGV4cHIsIHN5bWJvbHMpO1xuICAgIH1cblxuICAgIGNhc2UgRXhwcmVzc2lvbktpbmQuR2V0VmFyOiB7XG4gICAgICByZXR1cm4gYnVpbGRWYXIoZXhwci52YXJpYWJsZSwgdmFyQ29udGV4dChjb250ZXh0LCB0cnVlKSwgc3ltYm9scyk7XG4gICAgfVxuXG4gICAgY2FzZSBFeHByZXNzaW9uS2luZC5Db25jYXQ6IHtcbiAgICAgIHJldHVybiBbT3AuQ29uY2F0LCBidWlsZENvbmNhdChleHByLnBhcmFtcywgc3ltYm9scyldO1xuICAgIH1cblxuICAgIGNhc2UgRXhwcmVzc2lvbktpbmQuQ2FsbDoge1xuICAgICAgbGV0IGJ1aWx0UGFyYW1zID0gYnVpbGRQYXJhbXMoZXhwci5wYXJhbXMsIHN5bWJvbHMpO1xuICAgICAgbGV0IGJ1aWx0SGFzaCA9IGJ1aWxkSGFzaChleHByLmhhc2gsIHN5bWJvbHMpO1xuICAgICAgbGV0IGJ1aWx0RXhwciA9IGJ1aWxkQ2FsbEhlYWQoXG4gICAgICAgIGV4cHIuaGVhZCxcbiAgICAgICAgY29udGV4dCA9PT0gJ1N0cmljdCcgPyAnU3ViRXhwcmVzc2lvbicgOiB2YXJDb250ZXh0KGNvbnRleHQsIGZhbHNlKSxcbiAgICAgICAgc3ltYm9sc1xuICAgICAgKTtcblxuICAgICAgcmV0dXJuIFtPcC5DYWxsLCBidWlsdEV4cHIsIGJ1aWx0UGFyYW1zLCBidWlsdEhhc2hdO1xuICAgIH1cblxuICAgIGNhc2UgRXhwcmVzc2lvbktpbmQuSGFzQmxvY2s6IHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIE9wLkhhc0Jsb2NrLFxuICAgICAgICBidWlsZFZhcihcbiAgICAgICAgICB7IGtpbmQ6IFZhcmlhYmxlS2luZC5CbG9jaywgbmFtZTogZXhwci5uYW1lLCBtb2RlOiAnbG9vc2UnIH0sXG4gICAgICAgICAgVmFyaWFibGVSZXNvbHV0aW9uQ29udGV4dC5TdHJpY3QsXG4gICAgICAgICAgc3ltYm9sc1xuICAgICAgICApLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBjYXNlIEV4cHJlc3Npb25LaW5kLkhhc0Jsb2NrUGFyYW1zOiB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBPcC5IYXNCbG9ja1BhcmFtcyxcbiAgICAgICAgYnVpbGRWYXIoXG4gICAgICAgICAgeyBraW5kOiBWYXJpYWJsZUtpbmQuQmxvY2ssIG5hbWU6IGV4cHIubmFtZSwgbW9kZTogJ2xvb3NlJyB9LFxuICAgICAgICAgIFZhcmlhYmxlUmVzb2x1dGlvbkNvbnRleHQuU3RyaWN0LFxuICAgICAgICAgIHN5bWJvbHNcbiAgICAgICAgKSxcbiAgICAgIF07XG4gICAgfVxuXG4gICAgY2FzZSBFeHByZXNzaW9uS2luZC5MaXRlcmFsOiB7XG4gICAgICBpZiAoZXhwci52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBbT3AuVW5kZWZpbmVkXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBleHByLnZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICBhc3NlcnROZXZlcihleHByKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRDYWxsSGVhZChcbiAgY2FsbEhlYWQ6IE5vcm1hbGl6ZWRIZWFkLFxuICBjb250ZXh0OiBWYXJSZXNvbHV0aW9uLFxuICBzeW1ib2xzOiBTeW1ib2xzXG4pOiBFeHByZXNzaW9ucy5HZXRWYXIgfCBFeHByZXNzaW9ucy5HZXRQYXRoIHtcbiAgaWYgKGNhbGxIZWFkLnR5cGUgPT09IEV4cHJlc3Npb25LaW5kLkdldFZhcikge1xuICAgIHJldHVybiBidWlsZFZhcihjYWxsSGVhZC52YXJpYWJsZSwgY29udGV4dCwgc3ltYm9scyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGJ1aWxkR2V0UGF0aChjYWxsSGVhZCwgc3ltYm9scyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkR2V0UGF0aChoZWFkOiBOb3JtYWxpemVkUGF0aCwgc3ltYm9sczogU3ltYm9scyk6IEV4cHJlc3Npb25zLkdldFBhdGgge1xuICByZXR1cm4gYnVpbGRWYXIoaGVhZC5wYXRoLmhlYWQsIFZhcmlhYmxlUmVzb2x1dGlvbkNvbnRleHQuU3RyaWN0LCBzeW1ib2xzLCBoZWFkLnBhdGgudGFpbCk7XG59XG5cbnR5cGUgVmFyUmVzb2x1dGlvbiA9XG4gIHwgVmFyaWFibGVSZXNvbHV0aW9uQ29udGV4dFxuICB8ICdBcHBlbmRCYXJlJ1xuICB8ICdBcHBlbmRJbnZva2UnXG4gIHwgJ1RydXN0ZWRBcHBlbmRCYXJlJ1xuICB8ICdUcnVzdGVkQXBwZW5kSW52b2tlJ1xuICB8ICdBdHRyVmFsdWVCYXJlJ1xuICB8ICdBdHRyVmFsdWVJbnZva2UnXG4gIHwgJ1N1YkV4cHJlc3Npb24nXG4gIHwgJ1N0cmljdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFZhcihcbiAgaGVhZDogVmFyaWFibGUsXG4gIGNvbnRleHQ6IFZhclJlc29sdXRpb24sXG4gIHN5bWJvbHM6IFN5bWJvbHMsXG4gIHBhdGg6IFByZXNlbnRBcnJheTxzdHJpbmc+XG4pOiBFeHByZXNzaW9ucy5HZXRQYXRoO1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVmFyKFxuICBoZWFkOiBWYXJpYWJsZSxcbiAgY29udGV4dDogVmFyUmVzb2x1dGlvbixcbiAgc3ltYm9sczogU3ltYm9sc1xuKTogRXhwcmVzc2lvbnMuR2V0VmFyO1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVmFyKFxuICBoZWFkOiBWYXJpYWJsZSxcbiAgY29udGV4dDogVmFyUmVzb2x1dGlvbixcbiAgc3ltYm9sczogU3ltYm9scyxcbiAgcGF0aD86IFByZXNlbnRBcnJheTxzdHJpbmc+XG4pOiBFeHByZXNzaW9ucy5HZXRQYXRoIHwgRXhwcmVzc2lvbnMuR2V0VmFyIHtcbiAgbGV0IG9wOiBFeHByZXNzaW9ucy5HZXRWYXJbMF0gPSBPcC5HZXRTeW1ib2w7XG4gIGxldCBzeW06IG51bWJlcjtcbiAgc3dpdGNoIChoZWFkLmtpbmQpIHtcbiAgICBjYXNlIFZhcmlhYmxlS2luZC5GcmVlOlxuICAgICAgaWYgKGNvbnRleHQgPT09ICdTdHJpY3QnKSB7XG4gICAgICAgIG9wID0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZTtcbiAgICAgIH0gZWxzZSBpZiAoY29udGV4dCA9PT0gJ0FwcGVuZEJhcmUnKSB7XG4gICAgICAgIG9wID0gU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2s7XG4gICAgICB9IGVsc2UgaWYgKGNvbnRleHQgPT09ICdBcHBlbmRJbnZva2UnKSB7XG4gICAgICAgIG9wID0gU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkO1xuICAgICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSAnVHJ1c3RlZEFwcGVuZEJhcmUnKSB7XG4gICAgICAgIG9wID0gU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrO1xuICAgICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSAnVHJ1c3RlZEFwcGVuZEludm9rZScpIHtcbiAgICAgICAgb3AgPSBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkO1xuICAgICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSAnQXR0clZhbHVlQmFyZScpIHtcbiAgICAgICAgb3AgPSBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2s7XG4gICAgICB9IGVsc2UgaWYgKGNvbnRleHQgPT09ICdBdHRyVmFsdWVJbnZva2UnKSB7XG4gICAgICAgIG9wID0gU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZDtcbiAgICAgIH0gZWxzZSBpZiAoY29udGV4dCA9PT0gJ1N1YkV4cHJlc3Npb24nKSB7XG4gICAgICAgIG9wID0gU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9wID0gZXhwcmVzc2lvbkNvbnRleHRPcChjb250ZXh0KTtcbiAgICAgIH1cbiAgICAgIHN5bSA9IHN5bWJvbHMuZnJlZVZhcihoZWFkLm5hbWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIG9wID0gT3AuR2V0U3ltYm9sO1xuICAgICAgc3ltID0gZ2V0U3ltYm9sRm9yVmFyKGhlYWQua2luZCwgc3ltYm9scywgaGVhZC5uYW1lKTtcbiAgfVxuXG4gIGlmIChwYXRoID09PSB1bmRlZmluZWQgfHwgcGF0aC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW29wLCBzeW1dO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbb3AsIHN5bSwgcGF0aF07XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0U3ltYm9sRm9yVmFyKFxuICBraW5kOiBFeGNsdWRlPFZhcmlhYmxlS2luZCwgVmFyaWFibGVLaW5kLkZyZWU+LFxuICBzeW1ib2xzOiBTeW1ib2xzLFxuICBuYW1lOiBzdHJpbmdcbikge1xuICBzd2l0Y2ggKGtpbmQpIHtcbiAgICBjYXNlIFZhcmlhYmxlS2luZC5Bcmc6XG4gICAgICByZXR1cm4gc3ltYm9scy5hcmcobmFtZSk7XG4gICAgY2FzZSBWYXJpYWJsZUtpbmQuQmxvY2s6XG4gICAgICByZXR1cm4gc3ltYm9scy5ibG9jayhuYW1lKTtcbiAgICBjYXNlIFZhcmlhYmxlS2luZC5Mb2NhbDpcbiAgICAgIHJldHVybiBzeW1ib2xzLmxvY2FsKG5hbWUpO1xuICAgIGNhc2UgVmFyaWFibGVLaW5kLlRoaXM6XG4gICAgICByZXR1cm4gc3ltYm9scy50aGlzKCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBleGhhdXN0ZWQoa2luZCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cHJlc3Npb25Db250ZXh0T3AoY29udGV4dDogVmFyaWFibGVSZXNvbHV0aW9uQ29udGV4dCk6IEdldENvbnRleHR1YWxGcmVlT3Age1xuICBzd2l0Y2ggKGNvbnRleHQpIHtcbiAgICBjYXNlIFZhcmlhYmxlUmVzb2x1dGlvbkNvbnRleHQuU3RyaWN0OlxuICAgICAgcmV0dXJuIE9wLkdldFN0cmljdEZyZWU7XG4gICAgY2FzZSBWYXJpYWJsZVJlc29sdXRpb25Db250ZXh0LkFtYmlndW91c0FwcGVuZDpcbiAgICAgIHJldHVybiBPcC5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjaztcbiAgICBjYXNlIFZhcmlhYmxlUmVzb2x1dGlvbkNvbnRleHQuQW1iaWd1b3VzQXBwZW5kSW52b2tlOlxuICAgICAgcmV0dXJuIE9wLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZDtcbiAgICBjYXNlIFZhcmlhYmxlUmVzb2x1dGlvbkNvbnRleHQuQW1iaWd1b3VzSW52b2tlOlxuICAgICAgcmV0dXJuIE9wLkdldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFjaztcbiAgICBjYXNlIFZhcmlhYmxlUmVzb2x1dGlvbkNvbnRleHQuUmVzb2x2ZUFzQ2FsbEhlYWQ6XG4gICAgICByZXR1cm4gT3AuR2V0RnJlZUFzSGVscGVySGVhZDtcbiAgICBjYXNlIFZhcmlhYmxlUmVzb2x1dGlvbkNvbnRleHQuUmVzb2x2ZUFzTW9kaWZpZXJIZWFkOlxuICAgICAgcmV0dXJuIE9wLkdldEZyZWVBc01vZGlmaWVySGVhZDtcbiAgICBjYXNlIFZhcmlhYmxlUmVzb2x1dGlvbkNvbnRleHQuUmVzb2x2ZUFzQ29tcG9uZW50SGVhZDpcbiAgICAgIHJldHVybiBPcC5HZXRGcmVlQXNDb21wb25lbnRIZWFkO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZXhoYXVzdGVkKGNvbnRleHQpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFBhcmFtcyhcbiAgZXhwcnM6IE9wdGlvbjxOb3JtYWxpemVkUGFyYW1zPixcbiAgc3ltYm9sczogU3ltYm9sc1xuKTogT3B0aW9uPFdpcmVGb3JtYXQuQ29yZS5QYXJhbXM+IHtcbiAgaWYgKGV4cHJzID09PSBudWxsIHx8ICFpc1ByZXNlbnQoZXhwcnMpKSByZXR1cm4gbnVsbDtcblxuICByZXR1cm4gZXhwcnMubWFwKChlKSA9PiBidWlsZEV4cHJlc3Npb24oZSwgJ1N0cmljdCcsIHN5bWJvbHMpKSBhcyBXaXJlRm9ybWF0LkNvcmUuQ29uY2F0UGFyYW1zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRDb25jYXQoXG4gIGV4cHJzOiBbTm9ybWFsaXplZEV4cHJlc3Npb24sIC4uLk5vcm1hbGl6ZWRFeHByZXNzaW9uW11dLFxuICBzeW1ib2xzOiBTeW1ib2xzXG4pOiBXaXJlRm9ybWF0LkNvcmUuQ29uY2F0UGFyYW1zIHtcbiAgcmV0dXJuIGV4cHJzLm1hcCgoZSkgPT4gYnVpbGRFeHByZXNzaW9uKGUsICdBdHRyVmFsdWUnLCBzeW1ib2xzKSkgYXMgV2lyZUZvcm1hdC5Db3JlLkNvbmNhdFBhcmFtcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSGFzaChleHByczogT3B0aW9uPE5vcm1hbGl6ZWRIYXNoPiwgc3ltYm9sczogU3ltYm9scyk6IFdpcmVGb3JtYXQuQ29yZS5IYXNoIHtcbiAgaWYgKGV4cHJzID09PSBudWxsKSByZXR1cm4gbnVsbDtcblxuICBsZXQgb3V0OiBbc3RyaW5nW10sIFdpcmVGb3JtYXQuRXhwcmVzc2lvbltdXSA9IFtbXSwgW11dO1xuXG4gIE9iamVjdC5rZXlzKGV4cHJzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBvdXRbMF0ucHVzaChrZXkpO1xuICAgIG91dFsxXS5wdXNoKGJ1aWxkRXhwcmVzc2lvbihleHByc1trZXldLCAnU3RyaWN0Jywgc3ltYm9scykpO1xuICB9KTtcblxuICByZXR1cm4gb3V0IGFzIFdpcmVGb3JtYXQuQ29yZS5IYXNoO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRCbG9ja3MoXG4gIGJsb2NrczogTm9ybWFsaXplZEJsb2NrcyxcbiAgYmxvY2tQYXJhbXM6IE9wdGlvbjxzdHJpbmdbXT4sXG4gIHBhcmVudDogU3ltYm9sc1xuKTogV2lyZUZvcm1hdC5Db3JlLkJsb2NrcyB7XG4gIGxldCBrZXlzOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgdmFsdWVzOiBXaXJlRm9ybWF0LlNlcmlhbGl6ZWRJbmxpbmVCbG9ja1tdID0gW107XG5cbiAgT2JqZWN0LmtleXMoYmxvY2tzKS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAga2V5cy5wdXNoKG5hbWUpO1xuXG4gICAgaWYgKG5hbWUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgbGV0IHN5bWJvbHMgPSBwYXJlbnQuY2hpbGQoYmxvY2tQYXJhbXMgfHwgW10pO1xuXG4gICAgICB2YWx1ZXMucHVzaChidWlsZEJsb2NrKGJsb2Nrc1tuYW1lXSwgc3ltYm9scywgc3ltYm9scy5wYXJhbVN5bWJvbHMpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWVzLnB1c2goYnVpbGRCbG9jayhibG9ja3NbbmFtZV0sIHBhcmVudCwgW10pKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBba2V5cywgdmFsdWVzXTtcbn1cblxuZnVuY3Rpb24gYnVpbGRCbG9jayhcbiAgYmxvY2s6IE5vcm1hbGl6ZWRCbG9jayxcbiAgc3ltYm9sczogU3ltYm9scyxcbiAgbG9jYWxzOiBudW1iZXJbXSA9IFtdXG4pOiBXaXJlRm9ybWF0LlNlcmlhbGl6ZWRJbmxpbmVCbG9jayB7XG4gIHJldHVybiBbYnVpbGROb3JtYWxpemVkU3RhdGVtZW50cyhibG9jaywgc3ltYm9scyksIGxvY2Fsc107XG59XG4iXSwic291cmNlUm9vdCI6IiJ9

@@ -167,7 +167,2 @@ import { dict, exhausted } from '@glimmer/util';

case 33
/* GetFreeAsFallback */
:
return ['GetFreeAsFallback', this.upvars[opcode[1]], opcode[2]];
case 34

@@ -337,2 +332,2 @@ /* GetFreeAsComponentOrHelperHeadOrThisFallback */

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBpbGVyL2xpYi93aXJlLWZvcm1hdC1kZWJ1Zy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxTQUFTLElBQVQsRUFBZSxTQUFmLFFBQWdDLGVBQWhDO0FBRUEsU0FBUyxlQUFULEVBQTBCLGNBQTFCLFFBQWdELFNBQWhEO0FBRUEsZUFBYyxNQUFPLGtCQUFQLENBQXlCO0FBSXJDLEVBQUEsV0FBQSxDQUFZLENBQUMsV0FBRCxFQUFjLE9BQWQsRUFBdUIsUUFBdkIsRUFBaUMsTUFBakMsQ0FBWixFQUE2RTtBQUMzRSxTQUFLLE1BQUwsR0FBYyxNQUFkO0FBQ0EsU0FBSyxPQUFMLEdBQWUsT0FBZjtBQUNEOztBQUVELEVBQUEsTUFBTSxDQUFDLE9BQUQsRUFBaUM7QUFDckMsUUFBSSxHQUFHLEdBQUcsRUFBVjs7QUFFQSxTQUFLLElBQUksU0FBVCxJQUFzQixPQUFPLENBQUMsQ0FBRCxDQUE3QixFQUFrQztBQUNoQyxNQUFBLEdBQUcsQ0FBQyxJQUFKLENBQVMsS0FBSyxZQUFMLENBQWtCLFNBQWxCLENBQVQ7QUFDRDs7QUFFRCxXQUFPLEdBQVA7QUFDRDs7QUFFRCxFQUFBLFlBQVksQ0FBQyxNQUFELEVBQTBCO0FBQ3BDLFFBQUksS0FBSyxDQUFDLE9BQU4sQ0FBYyxNQUFkLENBQUosRUFBMkI7QUFDekIsY0FBUSxNQUFNLENBQUMsQ0FBRCxDQUFkO0FBQ0UsYUFBQTtBQUFBO0FBQUE7QUFDRSxpQkFBTyxDQUFDLFFBQUQsRUFBVyxLQUFLLFlBQUwsQ0FBa0IsTUFBTSxDQUFDLENBQUQsQ0FBeEIsQ0FBWCxDQUFQOztBQUNGLGFBQUE7QUFBQTtBQUFBO0FBQ0UsaUJBQU8sQ0FBQyxpQkFBRCxFQUFvQixLQUFLLFlBQUwsQ0FBa0IsTUFBTSxDQUFDLENBQUQsQ0FBeEIsQ0FBcEIsQ0FBUDs7QUFFRixhQUFBO0FBQUE7QUFBQTtBQUNFLGlCQUFPLENBQ0wsT0FESyxFQUVMLEtBQUssWUFB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QSxDQUFQO0FBSUQ7O0FBRU8sRUFBQSxZQUFZLENBQUMsTUFBRCxFQUErQjtBQUNqRCxRQUFJLE1BQU0sS0FBSyxJQUFmLEVBQXFCLE9BQU8sSUFBUDtBQUVyQixXQUFPLE1BQU0sQ0FBQyxDQUFELENBQU4sQ0FBVSxNQUFWLENBQWlCLENBQUMsS0FBRCxFQUFRLEdBQVIsRUFBYSxLQUFiLEtBQXNCO0FBQzVDLE1BQUEsS0FBSyxDQUFDLEdBQUQsQ0FBTCxHQUFhLEtBQUssV0FBTCxDQUFpQixNQUFNLENBQUMsQ0FBRCxDQUFOLENBQVUsS0FBVixDQUFqQixDQUFiO0FBQ0EsYUFBTyxLQUFQO0FBQ0QsS0FITSxFQUdKLElBQUksRUFIQSxDQUFQO0FBSUQ7O0FBRU8sRUFBQSxXQUFXLENBQUMsS0FBRCxFQUE2QjtBQUM5QyxXQUFPO0FBQ0wsTUFBQSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUQsQ0FBTCxDQUFTLEdBQVQsQ0FBYyxDQUFELElBQU8sS0FBSyxZQUFMLENBQWtCLENBQWxCLENBQXBCLENBRFA7QUFFTCxNQUFBLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBRDtBQUZaLEtBQVA7QUFJRDs7QUFoVG9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ3VycmllZFR5cGUsXG4gIE9wdGlvbixcbiAgU2VyaWFsaXplZElubGluZUJsb2NrLFxuICBTZXJpYWxpemVkVGVtcGxhdGVCbG9jayxcbiAgU2V4cE9wY29kZXMgYXMgT3AsXG4gIFdpcmVGb3JtYXQsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZGljdCwgZXhoYXVzdGVkIH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmltcG9ydCB7IGluZmxhdGVBdHRyTmFtZSwgaW5mbGF0ZVRhZ05hbWUgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2lyZUZvcm1hdERlYnVnZ2VyIHtcbiAgcHJpdmF0ZSB1cHZhcnM6IHN0cmluZ1tdO1xuICBwcml2YXRlIHN5bWJvbHM6IHN0cmluZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKFtfc3RhdGVtZW50cywgc3ltYm9scywgX2hhc0V2YWwsIHVwdmFyc106IFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrKSB7XG4gICAgdGhpcy51cHZhcnMgPSB1cHZhcnM7XG4gICAgdGhpcy5zeW1ib2xzID0gc3ltYm9scztcbiAgfVxuXG4gIGZvcm1hdChwcm9ncmFtOiBTZXJpYWxpemVkVGVtcGxhdGVCbG9jayk6IHVua25vd24ge1xuICAgIGxldCBvdXQgPSBbXTtcblxuICAgIGZvciAobGV0IHN0YXRlbWVudCBvZiBwcm9ncmFtWzBdKSB7XG4gICAgICBvdXQucHVzaCh0aGlzLmZvcm1hdE9wY29kZShzdGF0ZW1lbnQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3V0O1xuICB9XG5cbiAgZm9ybWF0T3Bjb2RlKG9wY29kZTogV2lyZUZvcm1hdC5TeW50YXgpOiB1bmtub3duIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvcGNvZGUpKSB7XG4gICAgICBzd2l0Y2ggKG9wY29kZVswXSkge1xuICAgICAgICBjYXNlIE9wLkFwcGVuZDpcbiAgICAgICAgICByZXR1cm4gWydhcHBlbmQnLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pXTtcbiAgICAgICAgY2FzZSBPcC5UcnVzdGluZ0FwcGVuZDpcbiAgICAgICAgICByZXR1cm4gWyd0cnVzdGluZy1hcHBlbmQnLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLkJsb2NrOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnYmxvY2snLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsyXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzNdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2tzKG9wY29kZVs0XSksXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkluRWxlbWVudDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2luLWVsZW1lbnQnLFxuICAgICAgICAgICAgb3Bjb2RlWzFdLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSA/IHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVszXSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLk9wZW5FbGVtZW50OlxuICAgICAgICAgIHJldHVybiBbJ29wZW4tZWxlbWVudCcsIGluZmxhdGVUYWdOYW1lKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuT3BlbkVsZW1lbnRXaXRoU3BsYXQ6XG4gICAgICAgICAgcmV0dXJuIFsnb3Blbi1lbGVtZW50LXdpdGgtc3BsYXQnLCBpbmZsYXRlVGFnTmFtZShvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLkNsb3NlRWxlbWVudDpcbiAgICAgICAgICByZXR1cm4gWydjbG9zZS1lbGVtZW50J107XG5cbiAgICAgICAgY2FzZSBPcC5GbHVzaEVsZW1lbnQ6XG4gICAgICAgICAgcmV0dXJuIFsnZmx1c2gtZWxlbWVudCddO1xuXG4gICAgICAgIGNhc2UgT3AuU3RhdGljQXR0cjpcbiAgICAgICAgICByZXR1cm4gWydzdGF0aWMtYXR0cicsIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLCBvcGNvZGVbMl0sIG9wY29kZVszXV07XG5cbiAgICAgICAgY2FzZSBPcC5TdGF0aWNDb21wb25lbnRBdHRyOlxuICAgICAgICAgIHJldHVybiBbJ3N0YXRpYy1jb21wb25lbnQtYXR0cicsIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLCBvcGNvZGVbMl0sIG9wY29kZVszXV07XG5cbiAgICAgICAgY2FzZSBPcC5EeW5hbWljQXR0cjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2R5bmFtaWMtYXR0cicsXG4gICAgICAgICAgICBpbmZsYXRlQXR0ck5hbWUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkNvbXBvbmVudEF0dHI6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdjb21wb25lbnQtYXR0cicsXG4gICAgICAgICAgICBpbmZsYXRlQXR0ck5hbWUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkF0dHJTcGxhdDpcbiAgICAgICAgICByZXR1cm4gWydhdHRyLXNwbGF0J107XG5cbiAgICAgICAgY2FzZSBPcC5ZaWVsZDpcbiAgICAgICAgICByZXR1cm4gWyd5aWVsZCcsIG9wY29kZVsxXSwgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzJdKV07XG5cbiAgICAgICAgY2FzZSBPcC5EeW5hbWljQXJnOlxuICAgICAgICAgIHJldHVybiBbJ2R5bmFtaWMtYXJnJywgb3Bjb2RlWzFdLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLlN0YXRpY0FyZzpcbiAgICAgICAgICByZXR1cm4gWydzdGF0aWMtYXJnJywgb3Bjb2RlWzFdLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLlRydXN0aW5nRHluYW1pY0F0dHI6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICd0cnVzdGluZy1keW5hbWljLWF0dHInLFxuICAgICAgICAgICAgaW5mbGF0ZUF0dHJOYW1lKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pLFxuICAgICAgICAgICAgb3Bjb2RlWzNdLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5UcnVzdGluZ0NvbXBvbmVudEF0dHI6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICd0cnVzdGluZy1jb21wb25lbnQtYXR0cicsXG4gICAgICAgICAgICBpbmZsYXRlQXR0ck5hbWUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkRlYnVnZ2VyOlxuICAgICAgICAgIHJldHVybiBbJ2RlYnVnZ2VyJywgb3Bjb2RlWzFdXTtcblxuICAgICAgICBjYXNlIE9wLkNvbW1lbnQ6XG4gICAgICAgICAgcmV0dXJuIFsnY29tbWVudCcsIG9wY29kZVsxXV07XG5cbiAgICAgICAgY2FzZSBPcC5Nb2RpZmllcjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ21vZGlmaWVyJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMl0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRIYXNoKG9wY29kZVszXSksXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkNvbXBvbmVudDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2NvbXBvbmVudCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRFbGVtZW50UGFyYW1zKG9wY29kZVsyXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzNdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2tzKG9wY29kZVs0XSksXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkhhc0Jsb2NrOlxuICAgICAgICAgIHJldHVybiBbJ2hhcy1ibG9jaycsIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuSGFzQmxvY2tQYXJhbXM6XG4gICAgICAgICAgcmV0dXJuIFsnaGFzLWJsb2NrLXBhcmFtcycsIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuQ3Vycnk6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdjdXJyeScsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRDdXJyeVR5cGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVszXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzRdKSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuVW5kZWZpbmVkOlxuICAgICAgICAgIHJldHVybiBbJ3VuZGVmaW5lZCddO1xuXG4gICAgICAgIGNhc2UgT3AuQ2FsbDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2NhbGwnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsyXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzNdKSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuQ29uY2F0OlxuICAgICAgICAgIHJldHVybiBbJ2NvbmNhdCcsIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsxXSBhcyBXaXJlRm9ybWF0LkNvcmUuUGFyYW1zKV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRTdHJpY3RGcmVlOlxuICAgICAgICAgIHJldHVybiBbJ2dldC1zdHJpY3QtZnJlZScsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNGYWxsYmFjazpcbiAgICAgICAgICByZXR1cm4gWydHZXRGcmVlQXNGYWxsYmFjaycsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjazpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ0dldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrJyxcbiAgICAgICAgICAgIHRoaXMudXB2YXJzW29wY29kZVsxXV0sXG4gICAgICAgICAgICBvcGNvZGVbMl0sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZDpcbiAgICAgICAgICByZXR1cm4gWydHZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWQnLCB0aGlzLnVwdmFyc1tvcGNvZGVbMV1dLCBvcGNvZGVbMl1dO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFjaycsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNEZXByZWNhdGVkSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2snLCB0aGlzLnVwdmFyc1tvcGNvZGVbMV1dXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0hlbHBlckhlYWQ6XG4gICAgICAgICAgcmV0dXJuIFsnR2V0RnJlZUFzSGVscGVySGVhZCcsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNDb21wb25lbnRIZWFkOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc0NvbXBvbmVudEhlYWQnLCB0aGlzLnVwdmFyc1tvcGNvZGVbMV1dLCBvcGNvZGVbMl1dO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RnJlZUFzTW9kaWZpZXJIZWFkOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc01vZGlmaWVySGVhZCcsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRTeW1ib2w6IHtcbiAgICAgICAgICBpZiAob3Bjb2RlWzFdID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gWydnZXQtc3ltYm9sJywgJ3RoaXMnLCBvcGNvZGVbMl1dO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gWydnZXQtc3ltYm9sJywgdGhpcy5zeW1ib2xzW29wY29kZVsxXSAtIDFdLCBvcGNvZGVbMl1dO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgT3AuR2V0VGVtcGxhdGVTeW1ib2w6IHtcbiAgICAgICAgICByZXR1cm4gWydnZXQtdGVtcGxhdGUtc3ltYm9sJywgb3Bjb2RlWzFdLCBvcGNvZGVbMl1dO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBPcC5JZjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2lmJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10gPyB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVszXSkgOiBudWxsLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5JZklubGluZTpcbiAgICAgICAgICByZXR1cm4gWydpZi1pbmxpbmUnXTtcblxuICAgICAgICBjYXNlIE9wLk5vdDpcbiAgICAgICAgICByZXR1cm4gWydub3QnXTtcblxuICAgICAgICBjYXNlIE9wLkVhY2g6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdlYWNoJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICBvcGNvZGVbMl0gPyB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pIDogbnVsbCxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzNdKSxcbiAgICAgICAgICAgIG9wY29kZVs0XSA/IHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzRdKSA6IG51bGwsXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLldpdGg6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICd3aXRoJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10gPyB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVszXSkgOiBudWxsLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5MZXQ6XG4gICAgICAgICAgcmV0dXJuIFsnbGV0JywgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzFdKSwgdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLkxvZzpcbiAgICAgICAgICByZXR1cm4gWydsb2cnLCB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLldpdGhEeW5hbWljVmFyczpcbiAgICAgICAgICByZXR1cm4gWyctd2l0aC1keW5hbWljLXZhcnMnLCB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzFdKSwgdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLkdldER5bmFtaWNWYXI6XG4gICAgICAgICAgcmV0dXJuIFsnLWdldC1keW5hbWljLXZhcnMnLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLkludm9rZUNvbXBvbmVudDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2NvbXBvbmVudCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbM10pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRCbG9ja3Mob3Bjb2RlWzRdKSxcbiAgICAgICAgICBdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3Bjb2RlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0Q3VycnlUeXBlKHZhbHVlOiBDdXJyaWVkVHlwZSkge1xuICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgIGNhc2UgQ3VycmllZFR5cGUuQ29tcG9uZW50OlxuICAgICAgICByZXR1cm4gJ2NvbXBvbmVudCc7XG4gICAgICBjYXNlIEN1cnJpZWRUeXBlLkhlbHBlcjpcbiAgICAgICAgcmV0dXJuICdoZWxwZXInO1xuICAgICAgY2FzZSBDdXJyaWVkVHlwZS5Nb2RpZmllcjpcbiAgICAgICAgcmV0dXJuICdtb2RpZmllcic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBleGhhdXN0ZWQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0RWxlbWVudFBhcmFtcyhvcGNvZGVzOiBPcHRpb248V2lyZUZvcm1hdC5FbGVtZW50UGFyYW1ldGVyW10+KTogT3B0aW9uPHVua25vd25bXT4ge1xuICAgIGlmIChvcGNvZGVzID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gb3Bjb2Rlcy5tYXAoKG8pID0+IHRoaXMuZm9ybWF0T3Bjb2RlKG8pKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0UGFyYW1zKG9wY29kZXM6IE9wdGlvbjxXaXJlRm9ybWF0LkV4cHJlc3Npb25bXT4pOiBPcHRpb248dW5rbm93bltdPiB7XG4gICAgaWYgKG9wY29kZXMgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBvcGNvZGVzLm1hcCgobykgPT4gdGhpcy5mb3JtYXRPcGNvZGUobykpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRIYXNoKGhhc2g6IFdpcmVGb3JtYXQuQ29yZS5IYXNoKTogT3B0aW9uPG9iamVjdD4ge1xuICAgIGlmIChoYXNoID09PSBudWxsKSByZXR1cm4gbnVsbDtcblxuICAgIHJldHVybiBoYXNoWzBdLnJlZHVjZSgoYWNjdW0sIGtleSwgaW5kZXgpID0+IHtcbiAgICAgIGFjY3VtW2tleV0gPSB0aGlzLmZvcm1hdE9wY29kZShoYXNoWzFdW2luZGV4XSk7XG4gICAgICByZXR1cm4gYWNjdW07XG4gICAgfSwgZGljdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0QmxvY2tzKGJsb2NrczogV2lyZUZvcm1hdC5Db3JlLkJsb2Nrcyk6IE9wdGlvbjxvYmplY3Q+IHtcbiAgICBpZiAoYmxvY2tzID09PSBudWxsKSByZXR1cm4gbnVsbDtcblxuICAgIHJldHVybiBibG9ja3NbMF0ucmVkdWNlKChhY2N1bSwga2V5LCBpbmRleCkgPT4ge1xuICAgICAgYWNjdW1ba2V5XSA9IHRoaXMuZm9ybWF0QmxvY2soYmxvY2tzWzFdW2luZGV4XSk7XG4gICAgICByZXR1cm4gYWNjdW07XG4gICAgfSwgZGljdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0QmxvY2soYmxvY2s6IFNlcmlhbGl6ZWRJbmxpbmVCbG9jayk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXRlbWVudHM6IGJsb2NrWzBdLm1hcCgocykgPT4gdGhpcy5mb3JtYXRPcGNvZGUocykpLFxuICAgICAgcGFyYW1ldGVyczogYmxvY2tbMV0sXG4gICAgfTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBpbGVyL2xpYi93aXJlLWZvcm1hdC1kZWJ1Zy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxTQUFTLElBQVQsRUFBZSxTQUFmLFFBQWdDLGVBQWhDO0FBRUEsU0FBUyxlQUFULEVBQTBCLGNBQTFCLFFBQWdELFNBQWhEO0FBRUEsZUFBYyxNQUFPLGtCQUFQLENBQXlCO0FBSXJDLEVBQUEsV0FBQSxDQUFZLENBQUMsV0FBRCxFQUFjLE9BQWQsRUFBdUIsUUFBdkIsRUFBaUMsTUFBakMsQ0FBWixFQUE2RTtBQUMzRSxTQUFLLE1BQUwsR0FBYyxNQUFkO0FBQ0EsU0FBSyxPQUFMLEdBQWUsT0FBZjtBQUNEOztBQUVELEVBQUEsTUFBTSxDQUFDLE9BQUQsRUFBaUM7QUFDckMsUUFBSSxHQUFHLEdBQUcsRUFBVjs7QUFFQSxTQUFLLElBQUksU0FBVCxJQUFzQixPQUFPLENBQUMsQ0FBRCxDQUE3QixFQUFrQztBQUNoQyxNQUFBLEdBQUcsQ0FBQyxJQUFKLENBQVMsS0FBSyxZQUFMLENBQWtCLFNBQWxCLENBQVQ7QUFDRDs7QUFFRCxXQUFPLEdBQVA7QUFDRDs7QUFFRCxFQUFBLFlBQVksQ0FBQyxNQUFELEVBQTBCO0FBQ3BDLFFBQUksS0FBSyxDQUFDLE9BQU4sQ0FBYyxNQUFkLENBQUosRUFBMkI7QUFDekIsY0FBUSxNQUFNLENBQUMsQ0FBRCxDQUFkO0FBQ0UsYUFBQTtBQUFBO0FBQUE7QUFDRSxpQkFBTyxDQUFDLFFBQUQsRUFBVyxLQUFLLFlBQUwsQ0FBa0IsTUFBTSxDQUFDLENBQUQsQ0FBeEIsQ0FBWCxDQUFQOztBQUNGLGFBQUE7QUFBQTtBQUFBO0FBQ0UsaUJBQU8sQ0FBQyxpQkFBRCxFQUFvQixLQUFLLFlBQUwsQ0FBa0IsTUFBTSxDQUFDLENBQUQsQ0FBeEIsQ0FBcEIsQ0FBUDs7QUFFRixhQUFBO0FBQUE7QUFBQTtBQUNFLGlCQUFPLENBQ0wsT0FESyxFQUVMLEtBQUssWUFB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QUFWLENBQWlCLENBQUMsS0FBRCxFQUFRLEdBQVIsRUFBYSxLQUFiLEtBQXNCO0FBQzVDLE1BQUEsS0FBSyxDQUFDLEdBQUQsQ0FBTCxHQUFhLEtBQUssV0FBTCxDQUFpQixNQUFNLENBQUMsQ0FBRCxDQUFOLENBQVUsS0FBVixDQUFqQixDQUFiO0FBQ0EsYUFBTyxLQUFQO0FBQ0QsS0FITSxFQUdKLElBQUksRUFIQSxDQUFQO0FBSUQ7O0FBRU8sRUFBQSxXQUFXLENBQUMsS0FBRCxFQUE2QjtBQUM5QyxXQUFPO0FBQ0wsTUFBQSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUQsQ0FBTCxDQUFTLEdBQVQsQ0FBYyxDQUFELElBQU8sS0FBSyxZQUFMLENBQWtCLENBQWxCLENBQXBCLENBRFA7QUFFTCxNQUFBLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBRDtBQUZaLEtBQVA7QUFJRDs7QUE3U29DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ3VycmllZFR5cGUsXG4gIE9wdGlvbixcbiAgU2VyaWFsaXplZElubGluZUJsb2NrLFxuICBTZXJpYWxpemVkVGVtcGxhdGVCbG9jayxcbiAgU2V4cE9wY29kZXMgYXMgT3AsXG4gIFdpcmVGb3JtYXQsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZGljdCwgZXhoYXVzdGVkIH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmltcG9ydCB7IGluZmxhdGVBdHRyTmFtZSwgaW5mbGF0ZVRhZ05hbWUgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2lyZUZvcm1hdERlYnVnZ2VyIHtcbiAgcHJpdmF0ZSB1cHZhcnM6IHN0cmluZ1tdO1xuICBwcml2YXRlIHN5bWJvbHM6IHN0cmluZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKFtfc3RhdGVtZW50cywgc3ltYm9scywgX2hhc0V2YWwsIHVwdmFyc106IFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrKSB7XG4gICAgdGhpcy51cHZhcnMgPSB1cHZhcnM7XG4gICAgdGhpcy5zeW1ib2xzID0gc3ltYm9scztcbiAgfVxuXG4gIGZvcm1hdChwcm9ncmFtOiBTZXJpYWxpemVkVGVtcGxhdGVCbG9jayk6IHVua25vd24ge1xuICAgIGxldCBvdXQgPSBbXTtcblxuICAgIGZvciAobGV0IHN0YXRlbWVudCBvZiBwcm9ncmFtWzBdKSB7XG4gICAgICBvdXQucHVzaCh0aGlzLmZvcm1hdE9wY29kZShzdGF0ZW1lbnQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3V0O1xuICB9XG5cbiAgZm9ybWF0T3Bjb2RlKG9wY29kZTogV2lyZUZvcm1hdC5TeW50YXgpOiB1bmtub3duIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvcGNvZGUpKSB7XG4gICAgICBzd2l0Y2ggKG9wY29kZVswXSkge1xuICAgICAgICBjYXNlIE9wLkFwcGVuZDpcbiAgICAgICAgICByZXR1cm4gWydhcHBlbmQnLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pXTtcbiAgICAgICAgY2FzZSBPcC5UcnVzdGluZ0FwcGVuZDpcbiAgICAgICAgICByZXR1cm4gWyd0cnVzdGluZy1hcHBlbmQnLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLkJsb2NrOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnYmxvY2snLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsyXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzNdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2tzKG9wY29kZVs0XSksXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkluRWxlbWVudDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2luLWVsZW1lbnQnLFxuICAgICAgICAgICAgb3Bjb2RlWzFdLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSA/IHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVszXSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLk9wZW5FbGVtZW50OlxuICAgICAgICAgIHJldHVybiBbJ29wZW4tZWxlbWVudCcsIGluZmxhdGVUYWdOYW1lKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuT3BlbkVsZW1lbnRXaXRoU3BsYXQ6XG4gICAgICAgICAgcmV0dXJuIFsnb3Blbi1lbGVtZW50LXdpdGgtc3BsYXQnLCBpbmZsYXRlVGFnTmFtZShvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLkNsb3NlRWxlbWVudDpcbiAgICAgICAgICByZXR1cm4gWydjbG9zZS1lbGVtZW50J107XG5cbiAgICAgICAgY2FzZSBPcC5GbHVzaEVsZW1lbnQ6XG4gICAgICAgICAgcmV0dXJuIFsnZmx1c2gtZWxlbWVudCddO1xuXG4gICAgICAgIGNhc2UgT3AuU3RhdGljQXR0cjpcbiAgICAgICAgICByZXR1cm4gWydzdGF0aWMtYXR0cicsIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLCBvcGNvZGVbMl0sIG9wY29kZVszXV07XG5cbiAgICAgICAgY2FzZSBPcC5TdGF0aWNDb21wb25lbnRBdHRyOlxuICAgICAgICAgIHJldHVybiBbJ3N0YXRpYy1jb21wb25lbnQtYXR0cicsIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLCBvcGNvZGVbMl0sIG9wY29kZVszXV07XG5cbiAgICAgICAgY2FzZSBPcC5EeW5hbWljQXR0cjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2R5bmFtaWMtYXR0cicsXG4gICAgICAgICAgICBpbmZsYXRlQXR0ck5hbWUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkNvbXBvbmVudEF0dHI6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdjb21wb25lbnQtYXR0cicsXG4gICAgICAgICAgICBpbmZsYXRlQXR0ck5hbWUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkF0dHJTcGxhdDpcbiAgICAgICAgICByZXR1cm4gWydhdHRyLXNwbGF0J107XG5cbiAgICAgICAgY2FzZSBPcC5ZaWVsZDpcbiAgICAgICAgICByZXR1cm4gWyd5aWVsZCcsIG9wY29kZVsxXSwgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzJdKV07XG5cbiAgICAgICAgY2FzZSBPcC5EeW5hbWljQXJnOlxuICAgICAgICAgIHJldHVybiBbJ2R5bmFtaWMtYXJnJywgb3Bjb2RlWzFdLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLlN0YXRpY0FyZzpcbiAgICAgICAgICByZXR1cm4gWydzdGF0aWMtYXJnJywgb3Bjb2RlWzFdLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLlRydXN0aW5nRHluYW1pY0F0dHI6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICd0cnVzdGluZy1keW5hbWljLWF0dHInLFxuICAgICAgICAgICAgaW5mbGF0ZUF0dHJOYW1lKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pLFxuICAgICAgICAgICAgb3Bjb2RlWzNdLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5UcnVzdGluZ0NvbXBvbmVudEF0dHI6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICd0cnVzdGluZy1jb21wb25lbnQtYXR0cicsXG4gICAgICAgICAgICBpbmZsYXRlQXR0ck5hbWUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkRlYnVnZ2VyOlxuICAgICAgICAgIHJldHVybiBbJ2RlYnVnZ2VyJywgb3Bjb2RlWzFdXTtcblxuICAgICAgICBjYXNlIE9wLkNvbW1lbnQ6XG4gICAgICAgICAgcmV0dXJuIFsnY29tbWVudCcsIG9wY29kZVsxXV07XG5cbiAgICAgICAgY2FzZSBPcC5Nb2RpZmllcjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ21vZGlmaWVyJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMl0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRIYXNoKG9wY29kZVszXSksXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkNvbXBvbmVudDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2NvbXBvbmVudCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRFbGVtZW50UGFyYW1zKG9wY29kZVsyXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzNdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2tzKG9wY29kZVs0XSksXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkhhc0Jsb2NrOlxuICAgICAgICAgIHJldHVybiBbJ2hhcy1ibG9jaycsIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuSGFzQmxvY2tQYXJhbXM6XG4gICAgICAgICAgcmV0dXJuIFsnaGFzLWJsb2NrLXBhcmFtcycsIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuQ3Vycnk6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdjdXJyeScsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRDdXJyeVR5cGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVszXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzRdKSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuVW5kZWZpbmVkOlxuICAgICAgICAgIHJldHVybiBbJ3VuZGVmaW5lZCddO1xuXG4gICAgICAgIGNhc2UgT3AuQ2FsbDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2NhbGwnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsyXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzNdKSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuQ29uY2F0OlxuICAgICAgICAgIHJldHVybiBbJ2NvbmNhdCcsIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsxXSBhcyBXaXJlRm9ybWF0LkNvcmUuUGFyYW1zKV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRTdHJpY3RGcmVlOlxuICAgICAgICAgIHJldHVybiBbJ2dldC1zdHJpY3QtZnJlZScsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjazpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ0dldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrJyxcbiAgICAgICAgICAgIHRoaXMudXB2YXJzW29wY29kZVsxXV0sXG4gICAgICAgICAgICBvcGNvZGVbMl0sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZDpcbiAgICAgICAgICByZXR1cm4gWydHZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWQnLCB0aGlzLnVwdmFyc1tvcGNvZGVbMV1dLCBvcGNvZGVbMl1dO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFjaycsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNEZXByZWNhdGVkSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2snLCB0aGlzLnVwdmFyc1tvcGNvZGVbMV1dXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0hlbHBlckhlYWQ6XG4gICAgICAgICAgcmV0dXJuIFsnR2V0RnJlZUFzSGVscGVySGVhZCcsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNDb21wb25lbnRIZWFkOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc0NvbXBvbmVudEhlYWQnLCB0aGlzLnVwdmFyc1tvcGNvZGVbMV1dLCBvcGNvZGVbMl1dO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RnJlZUFzTW9kaWZpZXJIZWFkOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc01vZGlmaWVySGVhZCcsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRTeW1ib2w6IHtcbiAgICAgICAgICBpZiAob3Bjb2RlWzFdID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gWydnZXQtc3ltYm9sJywgJ3RoaXMnLCBvcGNvZGVbMl1dO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gWydnZXQtc3ltYm9sJywgdGhpcy5zeW1ib2xzW29wY29kZVsxXSAtIDFdLCBvcGNvZGVbMl1dO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgT3AuR2V0VGVtcGxhdGVTeW1ib2w6IHtcbiAgICAgICAgICByZXR1cm4gWydnZXQtdGVtcGxhdGUtc3ltYm9sJywgb3Bjb2RlWzFdLCBvcGNvZGVbMl1dO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBPcC5JZjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2lmJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10gPyB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVszXSkgOiBudWxsLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5JZklubGluZTpcbiAgICAgICAgICByZXR1cm4gWydpZi1pbmxpbmUnXTtcblxuICAgICAgICBjYXNlIE9wLk5vdDpcbiAgICAgICAgICByZXR1cm4gWydub3QnXTtcblxuICAgICAgICBjYXNlIE9wLkVhY2g6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdlYWNoJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICBvcGNvZGVbMl0gPyB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pIDogbnVsbCxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzNdKSxcbiAgICAgICAgICAgIG9wY29kZVs0XSA/IHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzRdKSA6IG51bGwsXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLldpdGg6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICd3aXRoJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10gPyB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVszXSkgOiBudWxsLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5MZXQ6XG4gICAgICAgICAgcmV0dXJuIFsnbGV0JywgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzFdKSwgdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLkxvZzpcbiAgICAgICAgICByZXR1cm4gWydsb2cnLCB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLldpdGhEeW5hbWljVmFyczpcbiAgICAgICAgICByZXR1cm4gWyctd2l0aC1keW5hbWljLXZhcnMnLCB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzFdKSwgdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLkdldER5bmFtaWNWYXI6XG4gICAgICAgICAgcmV0dXJuIFsnLWdldC1keW5hbWljLXZhcnMnLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLkludm9rZUNvbXBvbmVudDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2NvbXBvbmVudCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbM10pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRCbG9ja3Mob3Bjb2RlWzRdKSxcbiAgICAgICAgICBdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3Bjb2RlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0Q3VycnlUeXBlKHZhbHVlOiBDdXJyaWVkVHlwZSkge1xuICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgIGNhc2UgQ3VycmllZFR5cGUuQ29tcG9uZW50OlxuICAgICAgICByZXR1cm4gJ2NvbXBvbmVudCc7XG4gICAgICBjYXNlIEN1cnJpZWRUeXBlLkhlbHBlcjpcbiAgICAgICAgcmV0dXJuICdoZWxwZXInO1xuICAgICAgY2FzZSBDdXJyaWVkVHlwZS5Nb2RpZmllcjpcbiAgICAgICAgcmV0dXJuICdtb2RpZmllcic7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBleGhhdXN0ZWQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0RWxlbWVudFBhcmFtcyhvcGNvZGVzOiBPcHRpb248V2lyZUZvcm1hdC5FbGVtZW50UGFyYW1ldGVyW10+KTogT3B0aW9uPHVua25vd25bXT4ge1xuICAgIGlmIChvcGNvZGVzID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gb3Bjb2Rlcy5tYXAoKG8pID0+IHRoaXMuZm9ybWF0T3Bjb2RlKG8pKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0UGFyYW1zKG9wY29kZXM6IE9wdGlvbjxXaXJlRm9ybWF0LkV4cHJlc3Npb25bXT4pOiBPcHRpb248dW5rbm93bltdPiB7XG4gICAgaWYgKG9wY29kZXMgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBvcGNvZGVzLm1hcCgobykgPT4gdGhpcy5mb3JtYXRPcGNvZGUobykpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRIYXNoKGhhc2g6IFdpcmVGb3JtYXQuQ29yZS5IYXNoKTogT3B0aW9uPG9iamVjdD4ge1xuICAgIGlmIChoYXNoID09PSBudWxsKSByZXR1cm4gbnVsbDtcblxuICAgIHJldHVybiBoYXNoWzBdLnJlZHVjZSgoYWNjdW0sIGtleSwgaW5kZXgpID0+IHtcbiAgICAgIGFjY3VtW2tleV0gPSB0aGlzLmZvcm1hdE9wY29kZShoYXNoWzFdW2luZGV4XSk7XG4gICAgICByZXR1cm4gYWNjdW07XG4gICAgfSwgZGljdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0QmxvY2tzKGJsb2NrczogV2lyZUZvcm1hdC5Db3JlLkJsb2Nrcyk6IE9wdGlvbjxvYmplY3Q+IHtcbiAgICBpZiAoYmxvY2tzID09PSBudWxsKSByZXR1cm4gbnVsbDtcblxuICAgIHJldHVybiBibG9ja3NbMF0ucmVkdWNlKChhY2N1bSwga2V5LCBpbmRleCkgPT4ge1xuICAgICAgYWNjdW1ba2V5XSA9IHRoaXMuZm9ybWF0QmxvY2soYmxvY2tzWzFdW2luZGV4XSk7XG4gICAgICByZXR1cm4gYWNjdW07XG4gICAgfSwgZGljdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0QmxvY2soYmxvY2s6IFNlcmlhbGl6ZWRJbmxpbmVCbG9jayk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXRlbWVudHM6IGJsb2NrWzBdLm1hcCgocykgPT4gdGhpcy5mb3JtYXRPcGNvZGUocykpLFxuICAgICAgcGFyYW1ldGVyczogYmxvY2tbMV0sXG4gICAgfTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -181,7 +181,2 @@ function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } it = o[Symbol.iterator](); return it.next.bind(it); }

case 33
/* GetFreeAsFallback */
:
return ['GetFreeAsFallback', this.upvars[opcode[1]], opcode[2]];
case 34

@@ -370,2 +365,2 @@ /* GetFreeAsComponentOrHelperHeadOrThisFallback */

export { WireFormatDebugger as default };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBpbGVyL2xpYi93aXJlLWZvcm1hdC1kZWJ1Zy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFRQSxTQUFBLElBQUEsRUFBQSxTQUFBLFFBQUEsZUFBQTtBQUVBLFNBQUEsZUFBQSxFQUFBLGNBQUEsUUFBQSxTQUFBOztJQUVjLGtCO0FBSVosb0NBQTZFO0FBQUEsUUFBakUsV0FBaUU7QUFBQSxRQUFqRSxPQUFpRTtBQUFBLFFBQWpFLFFBQWlFO0FBQUEsUUFBN0UsTUFBNkU7QUFDM0UsU0FBQSxNQUFBLEdBQUEsTUFBQTtBQUNBLFNBQUEsT0FBQSxHQUFBLE9BQUE7QUFDRDs7OztTQUVELE0sR0FBQSxnQkFBTSxPQUFOLEVBQXVDO0FBQ3JDLFFBQUksR0FBRyxHQUFQLEVBQUE7O0FBRUEseURBQXNCLE9BQU8sQ0FBN0IsQ0FBNkIsQ0FBN0Isd0NBQWtDO0FBQUEsVUFBbEMsU0FBa0M7QUFDaEMsTUFBQSxHQUFHLENBQUgsSUFBQSxDQUFTLEtBQUEsWUFBQSxDQUFULFNBQVMsQ0FBVDtBQUNEOztBQUVELFdBQUEsR0FBQTtBQUNELEc7O1NBRUQsWSxHQUFBLHNCQUFZLE1BQVosRUFBc0M7QUFDcEMsUUFBSSxLQUFLLENBQUwsT0FBQSxDQUFKLE1BQUksQ0FBSixFQUEyQjtBQUN6QixjQUFRLE1BQU0sQ0FBZCxDQUFjLENBQWQ7QUFDRSxhQUFBO0FBQUE7QUFBQTtBQUNFLGlCQUFPLENBQUEsUUFBQSxFQUFXLEtBQUEsWUFBQSxDQUFrQixNQUFNLENBQTFDLENBQTBDLENBQXhCLENBQVgsQ0FBUDs7QUFDRixhQUFBO0FBQUE7QUFBQTtBQUNFLGlCQUFPLENBQUEsaUJBQUEsRUFBb0IsS0FBQSxZQUFBLENBQWtCLE1BQU0sQ0FBbkQsQ0FBbUQsQ0FBeEIsQ0FBcEIsQ0FBUDs7QUFFRixhQUFBO0FBQUE7QUFBQTtBQUNFLGlCQUFPLENBQUEsT0FBQSxFQUVMLEtBQUEsWUFBQSxDQUFr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SUFBQTtBQUVuQixXQUFPLElBQUksQ0FBSixDQUFJLENBQUosQ0FBQSxNQUFBLENBQWUsVUFBQSxLQUFBLEVBQUEsR0FBQSxFQUFBLEtBQUEsRUFBc0I7QUFDMUMsTUFBQSxLQUFLLENBQUwsR0FBSyxDQUFMLEdBQWEsTUFBQSxDQUFBLFlBQUEsQ0FBa0IsSUFBSSxDQUFKLENBQUksQ0FBSixDQUEvQixLQUErQixDQUFsQixDQUFiO0FBQ0EsYUFBQSxLQUFBO0FBRkssS0FBQSxFQUdKLElBSEgsRUFBTyxDQUFQO0FBSUQsRzs7U0FFTyxZLEdBQUEsc0JBQVksTUFBWixFQUEyQztBQUFBOztBQUNqRCxRQUFJLE1BQU0sS0FBVixJQUFBLEVBQXFCLE9BQUEsSUFBQTtBQUVyQixXQUFPLE1BQU0sQ0FBTixDQUFNLENBQU4sQ0FBQSxNQUFBLENBQWlCLFVBQUEsS0FBQSxFQUFBLEdBQUEsRUFBQSxLQUFBLEVBQXNCO0FBQzVDLE1BQUEsS0FBSyxDQUFMLEdBQUssQ0FBTCxHQUFhLE1BQUEsQ0FBQSxXQUFBLENBQWlCLE1BQU0sQ0FBTixDQUFNLENBQU4sQ0FBOUIsS0FBOEIsQ0FBakIsQ0FBYjtBQUNBLGFBQUEsS0FBQTtBQUZLLEtBQUEsRUFHSixJQUhILEVBQU8sQ0FBUDtBQUlELEc7O1NBRU8sVyxHQUFBLHFCQUFXLEtBQVgsRUFBd0M7QUFBQTs7QUFDOUMsV0FBTztBQUNMLE1BQUEsVUFBVSxFQUFFLEtBQUssQ0FBTCxDQUFLLENBQUwsQ0FBQSxHQUFBLENBQWMsVUFBQSxDQUFEO0FBQUEsZUFBTyxNQUFBLENBQUEsWUFBQSxDQUQzQixDQUMyQixDQUFQO0FBQUEsT0FBYixDQURQO0FBRUwsTUFBQSxVQUFVLEVBQUUsS0FBSyxDQUFBLENBQUE7QUFGWixLQUFQO0FBSUQsRzs7Ozs7U0FoVFcsa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDdXJyaWVkVHlwZSxcbiAgT3B0aW9uLFxuICBTZXJpYWxpemVkSW5saW5lQmxvY2ssXG4gIFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrLFxuICBTZXhwT3Bjb2RlcyBhcyBPcCxcbiAgV2lyZUZvcm1hdCxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBkaWN0LCBleGhhdXN0ZWQgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuaW1wb3J0IHsgaW5mbGF0ZUF0dHJOYW1lLCBpbmZsYXRlVGFnTmFtZSB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBXaXJlRm9ybWF0RGVidWdnZXIge1xuICBwcml2YXRlIHVwdmFyczogc3RyaW5nW107XG4gIHByaXZhdGUgc3ltYm9sczogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IoW19zdGF0ZW1lbnRzLCBzeW1ib2xzLCBfaGFzRXZhbCwgdXB2YXJzXTogU2VyaWFsaXplZFRlbXBsYXRlQmxvY2spIHtcbiAgICB0aGlzLnVwdmFycyA9IHVwdmFycztcbiAgICB0aGlzLnN5bWJvbHMgPSBzeW1ib2xzO1xuICB9XG5cbiAgZm9ybWF0KHByb2dyYW06IFNlcmlhbGl6ZWRUZW1wbGF0ZUJsb2NrKTogdW5rbm93biB7XG4gICAgbGV0IG91dCA9IFtdO1xuXG4gICAgZm9yIChsZXQgc3RhdGVtZW50IG9mIHByb2dyYW1bMF0pIHtcbiAgICAgIG91dC5wdXNoKHRoaXMuZm9ybWF0T3Bjb2RlKHN0YXRlbWVudCkpO1xuICAgIH1cblxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICBmb3JtYXRPcGNvZGUob3Bjb2RlOiBXaXJlRm9ybWF0LlN5bnRheCk6IHVua25vd24ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9wY29kZSkpIHtcbiAgICAgIHN3aXRjaCAob3Bjb2RlWzBdKSB7XG4gICAgICAgIGNhc2UgT3AuQXBwZW5kOlxuICAgICAgICAgIHJldHVybiBbJ2FwcGVuZCcsIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSldO1xuICAgICAgICBjYXNlIE9wLlRydXN0aW5nQXBwZW5kOlxuICAgICAgICAgIHJldHVybiBbJ3RydXN0aW5nLWFwcGVuZCcsIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuQmxvY2s6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdibG9jaycsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbM10pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRCbG9ja3Mob3Bjb2RlWzRdKSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuSW5FbGVtZW50OlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnaW4tZWxlbWVudCcsXG4gICAgICAgICAgICBvcGNvZGVbMV0sXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pLFxuICAgICAgICAgICAgb3Bjb2RlWzNdID8gdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzNdKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuT3BlbkVsZW1lbnQ6XG4gICAgICAgICAgcmV0dXJuIFsnb3Blbi1lbGVtZW50JywgaW5mbGF0ZVRhZ05hbWUob3Bjb2RlWzFdKV07XG5cbiAgICAgICAgY2FzZSBPcC5PcGVuRWxlbWVudFdpdGhTcGxhdDpcbiAgICAgICAgICByZXR1cm4gWydvcGVuLWVsZW1lbnQtd2l0aC1zcGxhdCcsIGluZmxhdGVUYWdOYW1lKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuQ2xvc2VFbGVtZW50OlxuICAgICAgICAgIHJldHVybiBbJ2Nsb3NlLWVsZW1lbnQnXTtcblxuICAgICAgICBjYXNlIE9wLkZsdXNoRWxlbWVudDpcbiAgICAgICAgICByZXR1cm4gWydmbHVzaC1lbGVtZW50J107XG5cbiAgICAgICAgY2FzZSBPcC5TdGF0aWNBdHRyOlxuICAgICAgICAgIHJldHVybiBbJ3N0YXRpYy1hdHRyJywgaW5mbGF0ZUF0dHJOYW1lKG9wY29kZVsxXSksIG9wY29kZVsyXSwgb3Bjb2RlWzNdXTtcblxuICAgICAgICBjYXNlIE9wLlN0YXRpY0NvbXBvbmVudEF0dHI6XG4gICAgICAgICAgcmV0dXJuIFsnc3RhdGljLWNvbXBvbmVudC1hdHRyJywgaW5mbGF0ZUF0dHJOYW1lKG9wY29kZVsxXSksIG9wY29kZVsyXSwgb3Bjb2RlWzNdXTtcblxuICAgICAgICBjYXNlIE9wLkR5bmFtaWNBdHRyOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnZHluYW1pYy1hdHRyJyxcbiAgICAgICAgICAgIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuQ29tcG9uZW50QXR0cjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2NvbXBvbmVudC1hdHRyJyxcbiAgICAgICAgICAgIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuQXR0clNwbGF0OlxuICAgICAgICAgIHJldHVybiBbJ2F0dHItc3BsYXQnXTtcblxuICAgICAgICBjYXNlIE9wLllpZWxkOlxuICAgICAgICAgIHJldHVybiBbJ3lpZWxkJywgb3Bjb2RlWzFdLCB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMl0pXTtcblxuICAgICAgICBjYXNlIE9wLkR5bmFtaWNBcmc6XG4gICAgICAgICAgcmV0dXJuIFsnZHluYW1pYy1hcmcnLCBvcGNvZGVbMV0sIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSldO1xuXG4gICAgICAgIGNhc2UgT3AuU3RhdGljQXJnOlxuICAgICAgICAgIHJldHVybiBbJ3N0YXRpYy1hcmcnLCBvcGNvZGVbMV0sIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSldO1xuXG4gICAgICAgIGNhc2UgT3AuVHJ1c3RpbmdEeW5hbWljQXR0cjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ3RydXN0aW5nLWR5bmFtaWMtYXR0cicsXG4gICAgICAgICAgICBpbmZsYXRlQXR0ck5hbWUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10sXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLlRydXN0aW5nQ29tcG9uZW50QXR0cjpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ3RydXN0aW5nLWNvbXBvbmVudC1hdHRyJyxcbiAgICAgICAgICAgIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuRGVidWdnZXI6XG4gICAgICAgICAgcmV0dXJuIFsnZGVidWdnZXInLCBvcGNvZGVbMV1dO1xuXG4gICAgICAgIGNhc2UgT3AuQ29tbWVudDpcbiAgICAgICAgICByZXR1cm4gWydjb21tZW50Jywgb3Bjb2RlWzFdXTtcblxuICAgICAgICBjYXNlIE9wLk1vZGlmaWVyOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnbW9kaWZpZXInLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsyXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzNdKSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuQ29tcG9uZW50OlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnY29tcG9uZW50JyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEVsZW1lbnRQYXJhbXMob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbM10pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRCbG9ja3Mob3Bjb2RlWzRdKSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuSGFzQmxvY2s6XG4gICAgICAgICAgcmV0dXJuIFsnaGFzLWJsb2NrJywgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKV07XG5cbiAgICAgICAgY2FzZSBPcC5IYXNCbG9ja1BhcmFtczpcbiAgICAgICAgICByZXR1cm4gWydoYXMtYmxvY2stcGFyYW1zJywgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKV07XG5cbiAgICAgICAgY2FzZSBPcC5DdXJyeTpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2N1cnJ5JyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEN1cnJ5VHlwZShvcGNvZGVbMl0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzNdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbNF0pLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5VbmRlZmluZWQ6XG4gICAgICAgICAgcmV0dXJuIFsndW5kZWZpbmVkJ107XG5cbiAgICAgICAgY2FzZSBPcC5DYWxsOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnY2FsbCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbM10pLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5Db25jYXQ6XG4gICAgICAgICAgcmV0dXJuIFsnY29uY2F0JywgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzFdIGFzIFdpcmVGb3JtYXQuQ29yZS5QYXJhbXMpXTtcblxuICAgICAgICBjYXNlIE9wLkdldFN0cmljdEZyZWU6XG4gICAgICAgICAgcmV0dXJuIFsnZ2V0LXN0cmljdC1mcmVlJywgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSwgb3Bjb2RlWzJdXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0ZhbGxiYWNrOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc0ZhbGxiYWNrJywgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSwgb3Bjb2RlWzJdXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2snLFxuICAgICAgICAgICAgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSxcbiAgICAgICAgICAgIG9wY29kZVsyXSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZCcsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2s6XG4gICAgICAgICAgcmV0dXJuIFsnR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrJywgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSwgb3Bjb2RlWzJdXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2s6XG4gICAgICAgICAgcmV0dXJuIFsnR2V0RnJlZUFzRGVwcmVjYXRlZEhlbHBlckhlYWRPclRoaXNGYWxsYmFjaycsIHRoaXMudXB2YXJzW29wY29kZVsxXV1dO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RnJlZUFzSGVscGVySGVhZDpcbiAgICAgICAgICByZXR1cm4gWydHZXRGcmVlQXNIZWxwZXJIZWFkJywgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSwgb3Bjb2RlWzJdXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0NvbXBvbmVudEhlYWQ6XG4gICAgICAgICAgcmV0dXJuIFsnR2V0RnJlZUFzQ29tcG9uZW50SGVhZCcsIHRoaXMudXB2YXJzW29wY29kZVsxXV0sIG9wY29kZVsyXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNNb2RpZmllckhlYWQ6XG4gICAgICAgICAgcmV0dXJuIFsnR2V0RnJlZUFzTW9kaWZpZXJIZWFkJywgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSwgb3Bjb2RlWzJdXTtcblxuICAgICAgICBjYXNlIE9wLkdldFN5bWJvbDoge1xuICAgICAgICAgIGlmIChvcGNvZGVbMV0gPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBbJ2dldC1zeW1ib2wnLCAndGhpcycsIG9wY29kZVsyXV07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbJ2dldC1zeW1ib2wnLCB0aGlzLnN5bWJvbHNbb3Bjb2RlWzFdIC0gMV0sIG9wY29kZVsyXV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBPcC5HZXRUZW1wbGF0ZVN5bWJvbDoge1xuICAgICAgICAgIHJldHVybiBbJ2dldC10ZW1wbGF0ZS1zeW1ib2wnLCBvcGNvZGVbMV0sIG9wY29kZVsyXV07XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIE9wLklmOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnaWYnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSA/IHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzNdKSA6IG51bGwsXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLklmSW5saW5lOlxuICAgICAgICAgIHJldHVybiBbJ2lmLWlubGluZSddO1xuXG4gICAgICAgIGNhc2UgT3AuTm90OlxuICAgICAgICAgIHJldHVybiBbJ25vdCddO1xuXG4gICAgICAgIGNhc2UgT3AuRWFjaDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2VhY2gnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIG9wY29kZVsyXSA/IHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSkgOiBudWxsLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbM10pLFxuICAgICAgICAgICAgb3Bjb2RlWzRdID8gdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbNF0pIDogbnVsbCxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuV2l0aDpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ3dpdGgnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSA/IHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzNdKSA6IG51bGwsXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkxldDpcbiAgICAgICAgICByZXR1cm4gWydsZXQnLCB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMV0pLCB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVsyXSldO1xuXG4gICAgICAgIGNhc2UgT3AuTG9nOlxuICAgICAgICAgIHJldHVybiBbJ2xvZycsIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuV2l0aER5bmFtaWNWYXJzOlxuICAgICAgICAgIHJldHVybiBbJy13aXRoLWR5bmFtaWMtdmFycycsIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbMV0pLCB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVsyXSldO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RHluYW1pY1ZhcjpcbiAgICAgICAgICByZXR1cm4gWyctZ2V0LWR5bmFtaWMtdmFycycsIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSldO1xuXG4gICAgICAgIGNhc2UgT3AuSW52b2tlQ29tcG9uZW50OlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnY29tcG9uZW50JyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMl0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRIYXNoKG9wY29kZVszXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEJsb2NrcyhvcGNvZGVbNF0pLFxuICAgICAgICAgIF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvcGNvZGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRDdXJyeVR5cGUodmFsdWU6IEN1cnJpZWRUeXBlKSB7XG4gICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgY2FzZSBDdXJyaWVkVHlwZS5Db21wb25lbnQ6XG4gICAgICAgIHJldHVybiAnY29tcG9uZW50JztcbiAgICAgIGNhc2UgQ3VycmllZFR5cGUuSGVscGVyOlxuICAgICAgICByZXR1cm4gJ2hlbHBlcic7XG4gICAgICBjYXNlIEN1cnJpZWRUeXBlLk1vZGlmaWVyOlxuICAgICAgICByZXR1cm4gJ21vZGlmaWVyJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IGV4aGF1c3RlZCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRFbGVtZW50UGFyYW1zKG9wY29kZXM6IE9wdGlvbjxXaXJlRm9ybWF0LkVsZW1lbnRQYXJhbWV0ZXJbXT4pOiBPcHRpb248dW5rbm93bltdPiB7XG4gICAgaWYgKG9wY29kZXMgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBvcGNvZGVzLm1hcCgobykgPT4gdGhpcy5mb3JtYXRPcGNvZGUobykpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRQYXJhbXMob3Bjb2RlczogT3B0aW9uPFdpcmVGb3JtYXQuRXhwcmVzc2lvbltdPik6IE9wdGlvbjx1bmtub3duW10+IHtcbiAgICBpZiAob3Bjb2RlcyA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIG9wY29kZXMubWFwKChvKSA9PiB0aGlzLmZvcm1hdE9wY29kZShvKSk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEhhc2goaGFzaDogV2lyZUZvcm1hdC5Db3JlLkhhc2gpOiBPcHRpb248b2JqZWN0PiB7XG4gICAgaWYgKGhhc2ggPT09IG51bGwpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIGhhc2hbMF0ucmVkdWNlKChhY2N1bSwga2V5LCBpbmRleCkgPT4ge1xuICAgICAgYWNjdW1ba2V5XSA9IHRoaXMuZm9ybWF0T3Bjb2RlKGhhc2hbMV1baW5kZXhdKTtcbiAgICAgIHJldHVybiBhY2N1bTtcbiAgICB9LCBkaWN0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRCbG9ja3MoYmxvY2tzOiBXaXJlRm9ybWF0LkNvcmUuQmxvY2tzKTogT3B0aW9uPG9iamVjdD4ge1xuICAgIGlmIChibG9ja3MgPT09IG51bGwpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIGJsb2Nrc1swXS5yZWR1Y2UoKGFjY3VtLCBrZXksIGluZGV4KSA9PiB7XG4gICAgICBhY2N1bVtrZXldID0gdGhpcy5mb3JtYXRCbG9jayhibG9ja3NbMV1baW5kZXhdKTtcbiAgICAgIHJldHVybiBhY2N1bTtcbiAgICB9LCBkaWN0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRCbG9jayhibG9jazogU2VyaWFsaXplZElubGluZUJsb2NrKTogb2JqZWN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhdGVtZW50czogYmxvY2tbMF0ubWFwKChzKSA9PiB0aGlzLmZvcm1hdE9wY29kZShzKSksXG4gICAgICBwYXJhbWV0ZXJzOiBibG9ja1sxXSxcbiAgICB9O1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBpbGVyL2xpYi93aXJlLWZvcm1hdC1kZWJ1Zy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFRQSxTQUFBLElBQUEsRUFBQSxTQUFBLFFBQUEsZUFBQTtBQUVBLFNBQUEsZUFBQSxFQUFBLGNBQUEsUUFBQSxTQUFBOztJQUVjLGtCO0FBSVosb0NBQTZFO0FBQUEsUUFBakUsV0FBaUU7QUFBQSxRQUFqRSxPQUFpRTtBQUFBLFFBQWpFLFFBQWlFO0FBQUEsUUFBN0UsTUFBNkU7QUFDM0UsU0FBQSxNQUFBLEdBQUEsTUFBQTtBQUNBLFNBQUEsT0FBQSxHQUFBLE9BQUE7QUFDRDs7OztTQUVELE0sR0FBQSxnQkFBTSxPQUFOLEVBQXVDO0FBQ3JDLFFBQUksR0FBRyxHQUFQLEVBQUE7O0FBRUEseURBQXNCLE9BQU8sQ0FBN0IsQ0FBNkIsQ0FBN0Isd0NBQWtDO0FBQUEsVUFBbEMsU0FBa0M7QUFDaEMsTUFBQSxHQUFHLENBQUgsSUFBQSxDQUFTLEtBQUEsWUFBQSxDQUFULFNBQVMsQ0FBVDtBQUNEOztBQUVELFdBQUEsR0FBQTtBQUNELEc7O1NBRUQsWSxHQUFBLHNCQUFZLE1BQVosRUFBc0M7QUFDcEMsUUFBSSxLQUFLLENBQUwsT0FBQSxDQUFKLE1BQUksQ0FBSixFQUEyQjtBQUN6QixjQUFRLE1BQU0sQ0FBZCxDQUFjLENBQWQ7QUFDRSxhQUFBO0FBQUE7QUFBQTtBQUNFLGlCQUFPLENBQUEsUUFBQSxFQUFXLEtBQUEsWUFBQSxDQUFrQixNQUFNLENBQTFDLENBQTBDLENBQXhCLENBQVgsQ0FBUDs7QUFDRixhQUFBO0FBQUE7QUFBQTtBQUNFLGlCQUFPLENBQUEsaUJBQUEsRUFBb0IsS0FBQSxZQUFBLENBQWtCLE1BQU0sQ0FBbkQsQ0FBbUQsQ0FBeEIsQ0FBcEIsQ0FBUDs7QUFFRixhQUFBO0FBQUE7QUFBQTtBQUNFLGlCQUFPLENBQUEsT0FBQSxFQUVMLEtBQUEsWUFBQSxDQUFr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LENBQUEsWUFBQSxDQUFrQixJQUFJLENBQUosQ0FBSSxDQUFKLENBQS9CLEtBQStCLENBQWxCLENBQWI7QUFDQSxhQUFBLEtBQUE7QUFGSyxLQUFBLEVBR0osSUFISCxFQUFPLENBQVA7QUFJRCxHOztTQUVPLFksR0FBQSxzQkFBWSxNQUFaLEVBQTJDO0FBQUE7O0FBQ2pELFFBQUksTUFBTSxLQUFWLElBQUEsRUFBcUIsT0FBQSxJQUFBO0FBRXJCLFdBQU8sTUFBTSxDQUFOLENBQU0sQ0FBTixDQUFBLE1BQUEsQ0FBaUIsVUFBQSxLQUFBLEVBQUEsR0FBQSxFQUFBLEtBQUEsRUFBc0I7QUFDNUMsTUFBQSxLQUFLLENBQUwsR0FBSyxDQUFMLEdBQWEsTUFBQSxDQUFBLFdBQUEsQ0FBaUIsTUFBTSxDQUFOLENBQU0sQ0FBTixDQUE5QixLQUE4QixDQUFqQixDQUFiO0FBQ0EsYUFBQSxLQUFBO0FBRkssS0FBQSxFQUdKLElBSEgsRUFBTyxDQUFQO0FBSUQsRzs7U0FFTyxXLEdBQUEscUJBQVcsS0FBWCxFQUF3QztBQUFBOztBQUM5QyxXQUFPO0FBQ0wsTUFBQSxVQUFVLEVBQUUsS0FBSyxDQUFMLENBQUssQ0FBTCxDQUFBLEdBQUEsQ0FBYyxVQUFBLENBQUQ7QUFBQSxlQUFPLE1BQUEsQ0FBQSxZQUFBLENBRDNCLENBQzJCLENBQVA7QUFBQSxPQUFiLENBRFA7QUFFTCxNQUFBLFVBQVUsRUFBRSxLQUFLLENBQUEsQ0FBQTtBQUZaLEtBQVA7QUFJRCxHOzs7OztTQTdTVyxrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEN1cnJpZWRUeXBlLFxuICBPcHRpb24sXG4gIFNlcmlhbGl6ZWRJbmxpbmVCbG9jayxcbiAgU2VyaWFsaXplZFRlbXBsYXRlQmxvY2ssXG4gIFNleHBPcGNvZGVzIGFzIE9wLFxuICBXaXJlRm9ybWF0LFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGRpY3QsIGV4aGF1c3RlZCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5pbXBvcnQgeyBpbmZsYXRlQXR0ck5hbWUsIGluZmxhdGVUYWdOYW1lIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFdpcmVGb3JtYXREZWJ1Z2dlciB7XG4gIHByaXZhdGUgdXB2YXJzOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSBzeW1ib2xzOiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3RvcihbX3N0YXRlbWVudHMsIHN5bWJvbHMsIF9oYXNFdmFsLCB1cHZhcnNdOiBTZXJpYWxpemVkVGVtcGxhdGVCbG9jaykge1xuICAgIHRoaXMudXB2YXJzID0gdXB2YXJzO1xuICAgIHRoaXMuc3ltYm9scyA9IHN5bWJvbHM7XG4gIH1cblxuICBmb3JtYXQocHJvZ3JhbTogU2VyaWFsaXplZFRlbXBsYXRlQmxvY2spOiB1bmtub3duIHtcbiAgICBsZXQgb3V0ID0gW107XG5cbiAgICBmb3IgKGxldCBzdGF0ZW1lbnQgb2YgcHJvZ3JhbVswXSkge1xuICAgICAgb3V0LnB1c2godGhpcy5mb3JtYXRPcGNvZGUoc3RhdGVtZW50KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dDtcbiAgfVxuXG4gIGZvcm1hdE9wY29kZShvcGNvZGU6IFdpcmVGb3JtYXQuU3ludGF4KTogdW5rbm93biB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkob3Bjb2RlKSkge1xuICAgICAgc3dpdGNoIChvcGNvZGVbMF0pIHtcbiAgICAgICAgY2FzZSBPcC5BcHBlbmQ6XG4gICAgICAgICAgcmV0dXJuIFsnYXBwZW5kJywgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKV07XG4gICAgICAgIGNhc2UgT3AuVHJ1c3RpbmdBcHBlbmQ6XG4gICAgICAgICAgcmV0dXJuIFsndHJ1c3RpbmctYXBwZW5kJywgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKV07XG5cbiAgICAgICAgY2FzZSBPcC5CbG9jazpcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2Jsb2NrJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMl0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRIYXNoKG9wY29kZVszXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEJsb2NrcyhvcGNvZGVbNF0pLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5JbkVsZW1lbnQ6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdpbi1lbGVtZW50JyxcbiAgICAgICAgICAgIG9wY29kZVsxXSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsyXSksXG4gICAgICAgICAgICBvcGNvZGVbM10gPyB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbM10pIDogdW5kZWZpbmVkLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5PcGVuRWxlbWVudDpcbiAgICAgICAgICByZXR1cm4gWydvcGVuLWVsZW1lbnQnLCBpbmZsYXRlVGFnTmFtZShvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLk9wZW5FbGVtZW50V2l0aFNwbGF0OlxuICAgICAgICAgIHJldHVybiBbJ29wZW4tZWxlbWVudC13aXRoLXNwbGF0JywgaW5mbGF0ZVRhZ05hbWUob3Bjb2RlWzFdKV07XG5cbiAgICAgICAgY2FzZSBPcC5DbG9zZUVsZW1lbnQ6XG4gICAgICAgICAgcmV0dXJuIFsnY2xvc2UtZWxlbWVudCddO1xuXG4gICAgICAgIGNhc2UgT3AuRmx1c2hFbGVtZW50OlxuICAgICAgICAgIHJldHVybiBbJ2ZsdXNoLWVsZW1lbnQnXTtcblxuICAgICAgICBjYXNlIE9wLlN0YXRpY0F0dHI6XG4gICAgICAgICAgcmV0dXJuIFsnc3RhdGljLWF0dHInLCBpbmZsYXRlQXR0ck5hbWUob3Bjb2RlWzFdKSwgb3Bjb2RlWzJdLCBvcGNvZGVbM11dO1xuXG4gICAgICAgIGNhc2UgT3AuU3RhdGljQ29tcG9uZW50QXR0cjpcbiAgICAgICAgICByZXR1cm4gWydzdGF0aWMtY29tcG9uZW50LWF0dHInLCBpbmZsYXRlQXR0ck5hbWUob3Bjb2RlWzFdKSwgb3Bjb2RlWzJdLCBvcGNvZGVbM11dO1xuXG4gICAgICAgIGNhc2UgT3AuRHluYW1pY0F0dHI6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdkeW5hbWljLWF0dHInLFxuICAgICAgICAgICAgaW5mbGF0ZUF0dHJOYW1lKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pLFxuICAgICAgICAgICAgb3Bjb2RlWzNdLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5Db21wb25lbnRBdHRyOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnY29tcG9uZW50LWF0dHInLFxuICAgICAgICAgICAgaW5mbGF0ZUF0dHJOYW1lKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pLFxuICAgICAgICAgICAgb3Bjb2RlWzNdLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5BdHRyU3BsYXQ6XG4gICAgICAgICAgcmV0dXJuIFsnYXR0ci1zcGxhdCddO1xuXG4gICAgICAgIGNhc2UgT3AuWWllbGQ6XG4gICAgICAgICAgcmV0dXJuIFsneWllbGQnLCBvcGNvZGVbMV0sIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsyXSldO1xuXG4gICAgICAgIGNhc2UgT3AuRHluYW1pY0FyZzpcbiAgICAgICAgICByZXR1cm4gWydkeW5hbWljLWFyZycsIG9wY29kZVsxXSwgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzJdKV07XG5cbiAgICAgICAgY2FzZSBPcC5TdGF0aWNBcmc6XG4gICAgICAgICAgcmV0dXJuIFsnc3RhdGljLWFyZycsIG9wY29kZVsxXSwgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzJdKV07XG5cbiAgICAgICAgY2FzZSBPcC5UcnVzdGluZ0R5bmFtaWNBdHRyOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAndHJ1c3RpbmctZHluYW1pYy1hdHRyJyxcbiAgICAgICAgICAgIGluZmxhdGVBdHRyTmFtZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIG9wY29kZVszXSxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuVHJ1c3RpbmdDb21wb25lbnRBdHRyOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAndHJ1c3RpbmctY29tcG9uZW50LWF0dHInLFxuICAgICAgICAgICAgaW5mbGF0ZUF0dHJOYW1lKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMl0pLFxuICAgICAgICAgICAgb3Bjb2RlWzNdLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5EZWJ1Z2dlcjpcbiAgICAgICAgICByZXR1cm4gWydkZWJ1Z2dlcicsIG9wY29kZVsxXV07XG5cbiAgICAgICAgY2FzZSBPcC5Db21tZW50OlxuICAgICAgICAgIHJldHVybiBbJ2NvbW1lbnQnLCBvcGNvZGVbMV1dO1xuXG4gICAgICAgIGNhc2UgT3AuTW9kaWZpZXI6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdtb2RpZmllcicsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzJdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0SGFzaChvcGNvZGVbM10pLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5Db21wb25lbnQ6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdjb21wb25lbnQnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0RWxlbWVudFBhcmFtcyhvcGNvZGVbMl0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRIYXNoKG9wY29kZVszXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEJsb2NrcyhvcGNvZGVbNF0pLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5IYXNCbG9jazpcbiAgICAgICAgICByZXR1cm4gWydoYXMtYmxvY2snLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLkhhc0Jsb2NrUGFyYW1zOlxuICAgICAgICAgIHJldHVybiBbJ2hhcy1ibG9jay1wYXJhbXMnLCB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pXTtcblxuICAgICAgICBjYXNlIE9wLkN1cnJ5OlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnY3VycnknLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0Q3VycnlUeXBlKG9wY29kZVsyXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbM10pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRIYXNoKG9wY29kZVs0XSksXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLlVuZGVmaW5lZDpcbiAgICAgICAgICByZXR1cm4gWyd1bmRlZmluZWQnXTtcblxuICAgICAgICBjYXNlIE9wLkNhbGw6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdjYWxsJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0T3Bjb2RlKG9wY29kZVsxXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMl0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRIYXNoKG9wY29kZVszXSksXG4gICAgICAgICAgXTtcblxuICAgICAgICBjYXNlIE9wLkNvbmNhdDpcbiAgICAgICAgICByZXR1cm4gWydjb25jYXQnLCB0aGlzLmZvcm1hdFBhcmFtcyhvcGNvZGVbMV0gYXMgV2lyZUZvcm1hdC5Db3JlLlBhcmFtcyldO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0U3RyaWN0RnJlZTpcbiAgICAgICAgICByZXR1cm4gWydnZXQtc3RyaWN0LWZyZWUnLCB0aGlzLnVwdmFyc1tvcGNvZGVbMV1dLCBvcGNvZGVbMl1dO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2s6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdHZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjaycsXG4gICAgICAgICAgICB0aGlzLnVwdmFyc1tvcGNvZGVbMV1dLFxuICAgICAgICAgICAgb3Bjb2RlWzJdLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWQ6XG4gICAgICAgICAgcmV0dXJuIFsnR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkJywgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSwgb3Bjb2RlWzJdXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFjazpcbiAgICAgICAgICByZXR1cm4gWydHZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2snLCB0aGlzLnVwdmFyc1tvcGNvZGVbMV1dLCBvcGNvZGVbMl1dO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RnJlZUFzRGVwcmVjYXRlZEhlbHBlckhlYWRPclRoaXNGYWxsYmFjazpcbiAgICAgICAgICByZXR1cm4gWydHZXRGcmVlQXNEZXByZWNhdGVkSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrJywgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXRGcmVlQXNIZWxwZXJIZWFkOlxuICAgICAgICAgIHJldHVybiBbJ0dldEZyZWVBc0hlbHBlckhlYWQnLCB0aGlzLnVwdmFyc1tvcGNvZGVbMV1dLCBvcGNvZGVbMl1dO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0RnJlZUFzQ29tcG9uZW50SGVhZDpcbiAgICAgICAgICByZXR1cm4gWydHZXRGcmVlQXNDb21wb25lbnRIZWFkJywgdGhpcy51cHZhcnNbb3Bjb2RlWzFdXSwgb3Bjb2RlWzJdXTtcblxuICAgICAgICBjYXNlIE9wLkdldEZyZWVBc01vZGlmaWVySGVhZDpcbiAgICAgICAgICByZXR1cm4gWydHZXRGcmVlQXNNb2RpZmllckhlYWQnLCB0aGlzLnVwdmFyc1tvcGNvZGVbMV1dLCBvcGNvZGVbMl1dO1xuXG4gICAgICAgIGNhc2UgT3AuR2V0U3ltYm9sOiB7XG4gICAgICAgICAgaWYgKG9wY29kZVsxXSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFsnZ2V0LXN5bWJvbCcsICd0aGlzJywgb3Bjb2RlWzJdXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFsnZ2V0LXN5bWJvbCcsIHRoaXMuc3ltYm9sc1tvcGNvZGVbMV0gLSAxXSwgb3Bjb2RlWzJdXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIE9wLkdldFRlbXBsYXRlU3ltYm9sOiB7XG4gICAgICAgICAgcmV0dXJuIFsnZ2V0LXRlbXBsYXRlLXN5bWJvbCcsIG9wY29kZVsxXSwgb3Bjb2RlWzJdXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgT3AuSWY6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdpZicsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbMl0pLFxuICAgICAgICAgICAgb3Bjb2RlWzNdID8gdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbM10pIDogbnVsbCxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuSWZJbmxpbmU6XG4gICAgICAgICAgcmV0dXJuIFsnaWYtaW5saW5lJ107XG5cbiAgICAgICAgY2FzZSBPcC5Ob3Q6XG4gICAgICAgICAgcmV0dXJuIFsnbm90J107XG5cbiAgICAgICAgY2FzZSBPcC5FYWNoOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnZWFjaCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgb3Bjb2RlWzJdID8gdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzJdKSA6IG51bGwsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVszXSksXG4gICAgICAgICAgICBvcGNvZGVbNF0gPyB0aGlzLmZvcm1hdEJsb2NrKG9wY29kZVs0XSkgOiBudWxsLFxuICAgICAgICAgIF07XG5cbiAgICAgICAgY2FzZSBPcC5XaXRoOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnd2l0aCcsXG4gICAgICAgICAgICB0aGlzLmZvcm1hdE9wY29kZShvcGNvZGVbMV0pLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbMl0pLFxuICAgICAgICAgICAgb3Bjb2RlWzNdID8gdGhpcy5mb3JtYXRCbG9jayhvcGNvZGVbM10pIDogbnVsbCxcbiAgICAgICAgICBdO1xuXG4gICAgICAgIGNhc2UgT3AuTGV0OlxuICAgICAgICAgIHJldHVybiBbJ2xldCcsIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsxXSksIHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzJdKV07XG5cbiAgICAgICAgY2FzZSBPcC5Mb2c6XG4gICAgICAgICAgcmV0dXJuIFsnbG9nJywgdGhpcy5mb3JtYXRQYXJhbXMob3Bjb2RlWzFdKV07XG5cbiAgICAgICAgY2FzZSBPcC5XaXRoRHluYW1pY1ZhcnM6XG4gICAgICAgICAgcmV0dXJuIFsnLXdpdGgtZHluYW1pYy12YXJzJywgdGhpcy5mb3JtYXRIYXNoKG9wY29kZVsxXSksIHRoaXMuZm9ybWF0QmxvY2sob3Bjb2RlWzJdKV07XG5cbiAgICAgICAgY2FzZSBPcC5HZXREeW5hbWljVmFyOlxuICAgICAgICAgIHJldHVybiBbJy1nZXQtZHluYW1pYy12YXJzJywgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKV07XG5cbiAgICAgICAgY2FzZSBPcC5JbnZva2VDb21wb25lbnQ6XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdjb21wb25lbnQnLFxuICAgICAgICAgICAgdGhpcy5mb3JtYXRPcGNvZGUob3Bjb2RlWzFdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGFyYW1zKG9wY29kZVsyXSksXG4gICAgICAgICAgICB0aGlzLmZvcm1hdEhhc2gob3Bjb2RlWzNdKSxcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0QmxvY2tzKG9wY29kZVs0XSksXG4gICAgICAgICAgXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9wY29kZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEN1cnJ5VHlwZSh2YWx1ZTogQ3VycmllZFR5cGUpIHtcbiAgICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgICBjYXNlIEN1cnJpZWRUeXBlLkNvbXBvbmVudDpcbiAgICAgICAgcmV0dXJuICdjb21wb25lbnQnO1xuICAgICAgY2FzZSBDdXJyaWVkVHlwZS5IZWxwZXI6XG4gICAgICAgIHJldHVybiAnaGVscGVyJztcbiAgICAgIGNhc2UgQ3VycmllZFR5cGUuTW9kaWZpZXI6XG4gICAgICAgIHJldHVybiAnbW9kaWZpZXInO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgZXhoYXVzdGVkKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEVsZW1lbnRQYXJhbXMob3Bjb2RlczogT3B0aW9uPFdpcmVGb3JtYXQuRWxlbWVudFBhcmFtZXRlcltdPik6IE9wdGlvbjx1bmtub3duW10+IHtcbiAgICBpZiAob3Bjb2RlcyA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIG9wY29kZXMubWFwKChvKSA9PiB0aGlzLmZvcm1hdE9wY29kZShvKSk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFBhcmFtcyhvcGNvZGVzOiBPcHRpb248V2lyZUZvcm1hdC5FeHByZXNzaW9uW10+KTogT3B0aW9uPHVua25vd25bXT4ge1xuICAgIGlmIChvcGNvZGVzID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gb3Bjb2Rlcy5tYXAoKG8pID0+IHRoaXMuZm9ybWF0T3Bjb2RlKG8pKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0SGFzaChoYXNoOiBXaXJlRm9ybWF0LkNvcmUuSGFzaCk6IE9wdGlvbjxvYmplY3Q+IHtcbiAgICBpZiAoaGFzaCA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gaGFzaFswXS5yZWR1Y2UoKGFjY3VtLCBrZXksIGluZGV4KSA9PiB7XG4gICAgICBhY2N1bVtrZXldID0gdGhpcy5mb3JtYXRPcGNvZGUoaGFzaFsxXVtpbmRleF0pO1xuICAgICAgcmV0dXJuIGFjY3VtO1xuICAgIH0sIGRpY3QoKSk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEJsb2NrcyhibG9ja3M6IFdpcmVGb3JtYXQuQ29yZS5CbG9ja3MpOiBPcHRpb248b2JqZWN0PiB7XG4gICAgaWYgKGJsb2NrcyA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gYmxvY2tzWzBdLnJlZHVjZSgoYWNjdW0sIGtleSwgaW5kZXgpID0+IHtcbiAgICAgIGFjY3VtW2tleV0gPSB0aGlzLmZvcm1hdEJsb2NrKGJsb2Nrc1sxXVtpbmRleF0pO1xuICAgICAgcmV0dXJuIGFjY3VtO1xuICAgIH0sIGRpY3QoKSk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEJsb2NrKGJsb2NrOiBTZXJpYWxpemVkSW5saW5lQmxvY2spOiBvYmplY3Qge1xuICAgIHJldHVybiB7XG4gICAgICBzdGF0ZW1lbnRzOiBibG9ja1swXS5tYXAoKHMpID0+IHRoaXMuZm9ybWF0T3Bjb2RlKHMpKSxcbiAgICAgIHBhcmFtZXRlcnM6IGJsb2NrWzFdLFxuICAgIH07XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -62,7 +62,7 @@ import { Expressions, GetContextualFreeOp, Option, PresentArray, VariableResolutionContext, WireFormat } from '@glimmer/interfaces';

export declare function buildAttributeValue(name: string, value: NormalizedExpression, namespace: Option<AttrNamespace>, symbols: Symbols): WireFormat.Attribute[];
declare type ExprResolution = VariableResolutionContext | 'Append' | 'TrustedAppend' | 'AttrValue' | 'SubExpression' | 'Generic' | 'Strict';
declare type ExprResolution = VariableResolutionContext | 'Append' | 'TrustedAppend' | 'AttrValue' | 'SubExpression' | 'Strict';
export declare function buildExpression(expr: NormalizedExpression, context: ExprResolution, symbols: Symbols): WireFormat.Expression;
export declare function buildCallHead(callHead: NormalizedHead, context: VarResolution, symbols: Symbols): Expressions.GetVar | Expressions.GetPath;
export declare function buildGetPath(head: NormalizedPath, symbols: Symbols): Expressions.GetPath;
declare type VarResolution = VariableResolutionContext | 'AppendBare' | 'AppendInvoke' | 'TrustedAppendBare' | 'TrustedAppendInvoke' | 'AttrValueBare' | 'AttrValueInvoke' | 'SubExpression' | 'Generic' | 'Strict';
declare type VarResolution = VariableResolutionContext | 'AppendBare' | 'AppendInvoke' | 'TrustedAppendBare' | 'TrustedAppendInvoke' | 'AttrValueBare' | 'AttrValueInvoke' | 'SubExpression' | 'Strict';
export declare function buildVar(head: Variable, context: VarResolution, symbols: Symbols, path: PresentArray<string>): Expressions.GetPath;

@@ -69,0 +69,0 @@ export declare function buildVar(head: Variable, context: VarResolution, symbols: Symbols): Expressions.GetVar;

{
"name": "@glimmer/compiler",
"version": "0.83.0",
"version": "0.83.1",
"repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/compiler",
"dependencies": {
"@glimmer/syntax": "0.83.0",
"@glimmer/util": "0.83.0",
"@glimmer/wire-format": "0.83.0",
"@glimmer/interfaces": "0.83.0",
"@glimmer/syntax": "0.83.1",
"@glimmer/util": "0.83.1",
"@glimmer/wire-format": "0.83.1",
"@glimmer/interfaces": "0.83.1",
"@simple-dom/interface": "^1.4.0"
},
"devDependencies": {
"@glimmer/local-debug-flags": "0.83.0"
"@glimmer/local-debug-flags": "0.83.1"
},

@@ -15,0 +15,0 @@ "main": "dist/commonjs/es2017/index.js",

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

Sorry, the diff of this file is not supported yet

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

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc