Socket
Socket
Sign inDemoInstall

@glimmer/opcode-compiler

Package Overview
Dependencies
Maintainers
12
Versions
243
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@glimmer/opcode-compiler - npm Package Compare versions

Comparing version 0.81.0 to 0.82.0

11

dist/commonjs/es2017/index.js

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

StdLib: true,
PartialDefinitionImpl: true,
templateFactory: true,

@@ -70,8 +69,2 @@ templateCacheCounters: true,

});
Object.defineProperty(exports, "PartialDefinitionImpl", {
enumerable: true,
get: function () {
return _partialTemplate.PartialDefinitionImpl;
}
});
Object.defineProperty(exports, "templateFactory", {

@@ -153,4 +146,2 @@ enumerable: true,

var _partialTemplate = require("./lib/partial-template");
var _template = _interopRequireWildcard(require("./lib/template"));

@@ -165,2 +156,2 @@

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFFQTs7QUFJQTs7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFPQTs7QUFFQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3Byb2dyYW0tY29udGV4dCc7XG5cbmV4cG9ydCB7IGRlYnVnQ29tcGlsZXIgfSBmcm9tICcuL2xpYi9jb21waWxlcic7XG5cbmV4cG9ydCB7IGNvbXBpbGVTdGF0ZW1lbnRzLCBjb21waWxhYmxlIH0gZnJvbSAnLi9saWIvY29tcGlsYWJsZS10ZW1wbGF0ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyL2NvbnRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXIvZGVsZWdhdGUnO1xuXG5leHBvcnQge1xuICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayBhcyBpbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayxcbiAgSW52b2tlU3RhdGljQmxvY2sgYXMgaW52b2tlU3RhdGljQmxvY2ssXG59IGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyL2hlbHBlcnMvYmxvY2tzJztcbmV4cG9ydCB7IGNvbXBpbGVTdGQgfSBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3N0ZGxpYic7XG5leHBvcnQgeyBtZXRhIH0gZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9zaGFyZWQnO1xuXG5leHBvcnQgeyBTdGRMaWIgfSBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlci9zdGRsaWInO1xuXG5leHBvcnQgeyBQYXJ0aWFsRGVmaW5pdGlvbkltcGwgfSBmcm9tICcuL2xpYi9wYXJ0aWFsLXRlbXBsYXRlJztcblxuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyB0ZW1wbGF0ZUZhY3RvcnksXG4gIHRlbXBsYXRlQ2FjaGVDb3VudGVycyxcbiAgVGVtcGxhdGVGYWN0b3J5V2l0aElkQW5kTWV0YSxcbiAgVGVtcGxhdGVXaXRoSWRBbmRSZWZlcnJlcixcbn0gZnJvbSAnLi9saWIvdGVtcGxhdGUnO1xuXG5leHBvcnQgeyBXcmFwcGVkQnVpbGRlciB9IGZyb20gJy4vbGliL3dyYXBwZWQtY29tcG9uZW50JztcblxuZXhwb3J0IHsgRU1QVFlfQkxPQ0tTIH0gZnJvbSAnLi9saWIvdXRpbHMnO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUVBOztBQUVBOztBQUVBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUVBOztBQUlBOztBQUNBOztBQUVBOztBQUVBOztBQU9BOztBQUVBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvZ3JhbS1jb250ZXh0JztcblxuZXhwb3J0IHsgZGVidWdDb21waWxlciB9IGZyb20gJy4vbGliL2NvbXBpbGVyJztcblxuZXhwb3J0IHsgY29tcGlsZVN0YXRlbWVudHMsIGNvbXBpbGFibGUgfSBmcm9tICcuL2xpYi9jb21waWxhYmxlLXRlbXBsYXRlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXIvY29udGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlci9kZWxlZ2F0ZSc7XG5cbmV4cG9ydCB7XG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrIGFzIGludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrLFxuICBJbnZva2VTdGF0aWNCbG9jayBhcyBpbnZva2VTdGF0aWNCbG9jayxcbn0gZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9ibG9ja3MnO1xuZXhwb3J0IHsgY29tcGlsZVN0ZCB9IGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc3RkbGliJztcbmV4cG9ydCB7IG1ldGEgfSBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3NoYXJlZCc7XG5cbmV4cG9ydCB7IFN0ZExpYiB9IGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyL3N0ZGxpYic7XG5cbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgdGVtcGxhdGVGYWN0b3J5LFxuICB0ZW1wbGF0ZUNhY2hlQ291bnRlcnMsXG4gIFRlbXBsYXRlRmFjdG9yeVdpdGhJZEFuZE1ldGEsXG4gIFRlbXBsYXRlV2l0aElkQW5kUmVmZXJyZXIsXG59IGZyb20gJy4vbGliL3RlbXBsYXRlJztcblxuZXhwb3J0IHsgV3JhcHBlZEJ1aWxkZXIgfSBmcm9tICcuL2xpYi93cmFwcGVkLWNvbXBvbmVudCc7XG5cbmV4cG9ydCB7IEVNUFRZX0JMT0NLUyB9IGZyb20gJy4vbGliL3V0aWxzJztcbiJdLCJzb3VyY2VSb290IjoiIn0=

2

dist/commonjs/es2017/lib/opcode-builder/delegate.js

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

exports.MINIMAL_CAPABILITIES = MINIMAL_CAPABILITIES;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvZGVsZWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRU8sTUFBTSxvQkFBb0IsR0FBa0M7QUFDakUsRUFBQSxhQUFhLEVBRG9ELElBQUE7QUFFakUsRUFBQSxVQUFVLEVBRnVELElBQUE7QUFHakUsRUFBQSxXQUFXLEVBSHNELElBQUE7QUFJakUsRUFBQSxVQUFVLEVBSnVELElBQUE7QUFLakUsRUFBQSxhQUFhLEVBTG9ELEtBQUE7QUFNakUsRUFBQSxXQUFXLEVBTnNELEtBQUE7QUFPakUsRUFBQSxZQUFZLEVBUHFELElBQUE7QUFRakUsRUFBQSxZQUFZLEVBUnFELEtBQUE7QUFTakUsRUFBQSxVQUFVLEVBVHVELElBQUE7QUFVakUsRUFBQSxjQUFjLEVBVm1ELElBQUE7QUFXakUsRUFBQSxPQUFPLEVBWDBELEtBQUE7QUFZakUsRUFBQSxXQUFXLEVBWnNELEtBQUE7QUFhakUsRUFBQSxXQUFXLEVBQUU7QUFib0QsQ0FBNUQ7O0FBZ0JBLE1BQU0sb0JBQW9CLEdBQWtDO0FBQ2pFLEVBQUEsYUFBYSxFQURvRCxLQUFBO0FBRWpFLEVBQUEsVUFBVSxFQUZ1RCxLQUFBO0FBR2pFLEVBQUEsV0FBVyxFQUhzRCxLQUFBO0FBSWpFLEVBQUEsVUFBVSxFQUp1RCxLQUFBO0FBS2pFLEVBQUEsYUFBYSxFQUxvRCxLQUFBO0FBTWpFLEVBQUEsV0FBVyxFQU5zRCxLQUFBO0FBT2pFLEVBQUEsWUFBWSxFQVBxRCxLQUFBO0FBUWpFLEVBQUEsWUFBWSxFQVJxRCxLQUFBO0FBU2pFLEVBQUEsVUFBVSxFQVR1RCxLQUFBO0FBVWpFLEVBQUEsY0FBYyxFQVZtRCxLQUFBO0FBV2pFLEVBQUEsT0FBTyxFQVgwRCxLQUFBO0FBWWpFLEVBQUEsV0FBVyxFQVpzRCxLQUFBO0FBYWpFLEVBQUEsV0FBVyxFQUFFO0FBYm9ELENBQTVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMsIE9wdGlvbiwgQ29tcGlsZVRpbWVDb21wb25lbnQgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ0FQQUJJTElUSUVTOiBJbnRlcm5hbENvbXBvbmVudENhcGFiaWxpdGllcyA9IHtcbiAgZHluYW1pY0xheW91dDogdHJ1ZSxcbiAgZHluYW1pY1RhZzogdHJ1ZSxcbiAgcHJlcGFyZUFyZ3M6IHRydWUsXG4gIGNyZWF0ZUFyZ3M6IHRydWUsXG4gIGF0dHJpYnV0ZUhvb2s6IGZhbHNlLFxuICBlbGVtZW50SG9vazogZmFsc2UsXG4gIGR5bmFtaWNTY29wZTogdHJ1ZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgdXBkYXRlSG9vazogdHJ1ZSxcbiAgY3JlYXRlSW5zdGFuY2U6IHRydWUsXG4gIHdyYXBwZWQ6IGZhbHNlLFxuICB3aWxsRGVzdHJveTogZmFsc2UsXG4gIGhhc1N1Yk93bmVyOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBjb25zdCBNSU5JTUFMX0NBUEFCSUxJVElFUzogSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMgPSB7XG4gIGR5bmFtaWNMYXlvdXQ6IGZhbHNlLFxuICBkeW5hbWljVGFnOiBmYWxzZSxcbiAgcHJlcGFyZUFyZ3M6IGZhbHNlLFxuICBjcmVhdGVBcmdzOiBmYWxzZSxcbiAgYXR0cmlidXRlSG9vazogZmFsc2UsXG4gIGVsZW1lbnRIb29rOiBmYWxzZSxcbiAgZHluYW1pY1Njb3BlOiBmYWxzZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgdXBkYXRlSG9vazogZmFsc2UsXG4gIGNyZWF0ZUluc3RhbmNlOiBmYWxzZSxcbiAgd3JhcHBlZDogZmFsc2UsXG4gIHdpbGxEZXN0cm95OiBmYWxzZSxcbiAgaGFzU3ViT3duZXI6IGZhbHNlLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlckRlbGVnYXRlPFIgPSB1bmtub3duPiB7XG4gIGxvb2t1cEhlbHBlcj8obmFtZTogc3RyaW5nLCByZWZlcnJlcjogUik6IE9wdGlvbjxudW1iZXI+IHwgdm9pZDtcbiAgbG9va3VwTW9kaWZpZXI/KG5hbWU6IHN0cmluZywgcmVmZXJyZXI6IFIpOiBPcHRpb248bnVtYmVyPiB8IHZvaWQ7XG4gIGxvb2t1cENvbXBvbmVudD8obmFtZTogc3RyaW5nLCByZWZlcnJlcjogUik6IE9wdGlvbjxDb21waWxlVGltZUNvbXBvbmVudD4gfCB2b2lkO1xuICBsb29rdXBQYXJ0aWFsPyhuYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBSKTogT3B0aW9uPG51bWJlcj4gfCB2b2lkO1xuXG4gIC8vIEZvciBkZWJ1Z2dpbmdcbiAgcmVzb2x2ZT8oaGFuZGxlOiBudW1iZXIpOiBSO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvZGVsZWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRU8sTUFBTSxvQkFBb0IsR0FBa0M7QUFDakUsRUFBQSxhQUFhLEVBRG9ELElBQUE7QUFFakUsRUFBQSxVQUFVLEVBRnVELElBQUE7QUFHakUsRUFBQSxXQUFXLEVBSHNELElBQUE7QUFJakUsRUFBQSxVQUFVLEVBSnVELElBQUE7QUFLakUsRUFBQSxhQUFhLEVBTG9ELEtBQUE7QUFNakUsRUFBQSxXQUFXLEVBTnNELEtBQUE7QUFPakUsRUFBQSxZQUFZLEVBUHFELElBQUE7QUFRakUsRUFBQSxZQUFZLEVBUnFELEtBQUE7QUFTakUsRUFBQSxVQUFVLEVBVHVELElBQUE7QUFVakUsRUFBQSxjQUFjLEVBVm1ELElBQUE7QUFXakUsRUFBQSxPQUFPLEVBWDBELEtBQUE7QUFZakUsRUFBQSxXQUFXLEVBWnNELEtBQUE7QUFhakUsRUFBQSxXQUFXLEVBQUU7QUFib0QsQ0FBNUQ7O0FBZ0JBLE1BQU0sb0JBQW9CLEdBQWtDO0FBQ2pFLEVBQUEsYUFBYSxFQURvRCxLQUFBO0FBRWpFLEVBQUEsVUFBVSxFQUZ1RCxLQUFBO0FBR2pFLEVBQUEsV0FBVyxFQUhzRCxLQUFBO0FBSWpFLEVBQUEsVUFBVSxFQUp1RCxLQUFBO0FBS2pFLEVBQUEsYUFBYSxFQUxvRCxLQUFBO0FBTWpFLEVBQUEsV0FBVyxFQU5zRCxLQUFBO0FBT2pFLEVBQUEsWUFBWSxFQVBxRCxLQUFBO0FBUWpFLEVBQUEsWUFBWSxFQVJxRCxLQUFBO0FBU2pFLEVBQUEsVUFBVSxFQVR1RCxLQUFBO0FBVWpFLEVBQUEsY0FBYyxFQVZtRCxLQUFBO0FBV2pFLEVBQUEsT0FBTyxFQVgwRCxLQUFBO0FBWWpFLEVBQUEsV0FBVyxFQVpzRCxLQUFBO0FBYWpFLEVBQUEsV0FBVyxFQUFFO0FBYm9ELENBQTVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMsIE9wdGlvbiwgQ29tcGlsZVRpbWVDb21wb25lbnQgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ0FQQUJJTElUSUVTOiBJbnRlcm5hbENvbXBvbmVudENhcGFiaWxpdGllcyA9IHtcbiAgZHluYW1pY0xheW91dDogdHJ1ZSxcbiAgZHluYW1pY1RhZzogdHJ1ZSxcbiAgcHJlcGFyZUFyZ3M6IHRydWUsXG4gIGNyZWF0ZUFyZ3M6IHRydWUsXG4gIGF0dHJpYnV0ZUhvb2s6IGZhbHNlLFxuICBlbGVtZW50SG9vazogZmFsc2UsXG4gIGR5bmFtaWNTY29wZTogdHJ1ZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgdXBkYXRlSG9vazogdHJ1ZSxcbiAgY3JlYXRlSW5zdGFuY2U6IHRydWUsXG4gIHdyYXBwZWQ6IGZhbHNlLFxuICB3aWxsRGVzdHJveTogZmFsc2UsXG4gIGhhc1N1Yk93bmVyOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBjb25zdCBNSU5JTUFMX0NBUEFCSUxJVElFUzogSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMgPSB7XG4gIGR5bmFtaWNMYXlvdXQ6IGZhbHNlLFxuICBkeW5hbWljVGFnOiBmYWxzZSxcbiAgcHJlcGFyZUFyZ3M6IGZhbHNlLFxuICBjcmVhdGVBcmdzOiBmYWxzZSxcbiAgYXR0cmlidXRlSG9vazogZmFsc2UsXG4gIGVsZW1lbnRIb29rOiBmYWxzZSxcbiAgZHluYW1pY1Njb3BlOiBmYWxzZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgdXBkYXRlSG9vazogZmFsc2UsXG4gIGNyZWF0ZUluc3RhbmNlOiBmYWxzZSxcbiAgd3JhcHBlZDogZmFsc2UsXG4gIHdpbGxEZXN0cm95OiBmYWxzZSxcbiAgaGFzU3ViT3duZXI6IGZhbHNlLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlckRlbGVnYXRlPFIgPSB1bmtub3duPiB7XG4gIGxvb2t1cEhlbHBlcj8obmFtZTogc3RyaW5nLCByZWZlcnJlcjogUik6IE9wdGlvbjxudW1iZXI+IHwgdm9pZDtcbiAgbG9va3VwTW9kaWZpZXI/KG5hbWU6IHN0cmluZywgcmVmZXJyZXI6IFIpOiBPcHRpb248bnVtYmVyPiB8IHZvaWQ7XG4gIGxvb2t1cENvbXBvbmVudD8obmFtZTogc3RyaW5nLCByZWZlcnJlcjogUik6IE9wdGlvbjxDb21waWxlVGltZUNvbXBvbmVudD4gfCB2b2lkO1xuXG4gIC8vIEZvciBkZWJ1Z2dpbmdcbiAgcmVzb2x2ZT8oaGFuZGxlOiBudW1iZXIpOiBSO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -271,4 +271,3 @@ "use strict";

function resolveOptionalHelper(resolver, constants, meta, [, expr, {
ifHelper,
ifFallback
ifHelper
}]) {

@@ -283,5 +282,3 @@ false && (0, _util.assert)(isGetFreeOptionalHelper(expr) || isGetFreeDeprecatedHelper(expr), 'Attempted to resolve a helper with incorrect opcode');

if (helper === null) {
ifFallback(name, meta.moduleName);
} else {
if (helper) {
ifHelper(constants.helper(helper, name), name, meta.moduleName);

@@ -298,4 +295,3 @@ }

ifHelper,
ifValue,
ifFallback
ifValue
}]) {

@@ -356,6 +352,3 @@ false && (0, _util.assert)(isGetFreeOptionalComponentOrHelper(expr), 'Attempted to resolve an optional component or helper with incorrect opcode');

ifHelper(constants.helper(helper, name));
return;
}
ifFallback(name);
}

@@ -379,2 +372,2 @@ }

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBZ0JBOztBQUVBLFNBQUEsY0FBQSxDQUFBLE1BQUEsRUFBc0Q7QUFDcEQsU0FBTyxLQUFLLENBQUwsT0FBQSxDQUFBLE1BQUEsS0FBeUIsTUFBTSxDQUFOLE1BQUEsS0FBaEMsQ0FBQTtBQUNEOztBQUVELFNBQUEsMEJBQUEsQ0FBQSxZQUFBLEVBQTZEO0FBQzNELFNBQ0UsTUFESyxJQUU0RDtBQUNqRSxRQUFJLENBQUMsY0FBYyxDQUFuQixNQUFtQixDQUFuQixFQUE2QixPQUFBLEtBQUE7QUFFN0IsUUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFqQixDQUFpQixDQUFqQjtBQUVBLFdBQ0UsSUFBSSxLQUFBO0FBQUE7QUFBSixPQUNBLElBQUksS0FBQTtBQUFBO0FBREosT0FFQSxJQUFJLEtBSE4sWUFBQTtBQVBGLEdBQUE7QUFhRDs7QUFFTSxNQUFNLGtCQUFrQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFyRDs7QUFFQSxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFwRDs7QUFFQSxNQUFNLGVBQWUsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBbEQ7O0FBRUEsTUFBTSwwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBN0Q7O0FBSUEsTUFBTSx1QkFBdUIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBMUQ7OztBQUlELFNBQUEseUJBQUEsQ0FBQSxNQUFBLEVBQzBCO0FBRTlCLFNBQ0UsS0FBSyxDQUFMLE9BQUEsQ0FBQSxNQUFBLEtBQXlCLE1BQU0sQ0FBTixDQUFNLENBQU4sS0FBUztBQUFBO0FBRHBDO0FBR0Q7O0FBRU0sTUFBTSxr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LENBQWpCLENBRkosRUFBTSxDQUFOO0FBS0Q7O0FBRUQsU0FBTyxTQUFTLENBQVQsTUFBQSxDQUFBLE1BQUEsRUFBUCxJQUFPLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29uc3RhbnRzLFxuICBDb21waWxlVGltZVJlc29sdmVyLFxuICBDb250YWluaW5nTWV0YWRhdGEsXG4gIEV4cHJlc3Npb25zLFxuICBPd25lcixcbiAgUmVzb2x2ZUNvbXBvbmVudE9wLFxuICBSZXNvbHZlQ29tcG9uZW50T3JIZWxwZXJPcCxcbiAgUmVzb2x2ZUhlbHBlck9wLFxuICBSZXNvbHZlTW9kaWZpZXJPcCxcbiAgUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXJPcCxcbiAgUmVzb2x2ZU9wdGlvbmFsSGVscGVyT3AsXG4gIFNleHBPcGNvZGVzLFxuICBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBhc3NlcnQsIGRlYnVnVG9TdHJpbmcsIGV4cGVjdCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5mdW5jdGlvbiBpc0dldExpa2VUdXBsZShvcGNvZGU6IEV4cHJlc3Npb25zLkV4cHJlc3Npb24pOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuVHVwbGVFeHByZXNzaW9uIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkob3Bjb2RlKSAmJiBvcGNvZGUubGVuZ3RoID09PSAyO1xufVxuXG5mdW5jdGlvbiBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcih0eXBlVG9WZXJpZnk6IFNleHBPcGNvZGVzKSB7XG4gIHJldHVybiAoXG4gICAgb3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uXG4gICk6IG9wY29kZSBpcyBFeHByZXNzaW9ucy5HZXRGcmVlIHwgRXhwcmVzc2lvbnMuR2V0VGVtcGxhdGVTeW1ib2wgPT4ge1xuICAgIGlmICghaXNHZXRMaWtlVHVwbGUob3Bjb2RlKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgbGV0IHR5cGUgPSBvcGNvZGVbMF07XG5cbiAgICByZXR1cm4gKFxuICAgICAgdHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSB8fFxuICAgICAgdHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wgfHxcbiAgICAgIHR5cGUgPT09IHR5cGVUb1ZlcmlmeVxuICAgICk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVDb21wb25lbnQgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU1vZGlmaWVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzTW9kaWZpZXJIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkXG4pO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlT3B0aW9uYWxIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHZXRGcmVlRGVwcmVjYXRlZEhlbHBlcihcbiAgb3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uXG4pOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuR2V0UGF0aEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2sge1xuICByZXR1cm4gKFxuICAgIEFycmF5LmlzQXJyYXkob3Bjb2RlKSAmJiBvcGNvZGVbMF0gPT09IFNleHBPcGNvZGVzLkdldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2tcbiAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2tcbik7XG5cbmludGVyZmFjZSBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YSBleHRlbmRzIENvbnRhaW5pbmdNZXRhZGF0YSB7XG4gIG93bmVyOiBPd25lcjtcbiAgdXB2YXJzOiBzdHJpbmdbXTtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSk6IFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhIHtcbiAgaWYgKERFQlVHKSB7XG4gICAgaWYgKCFtZXRhLnVwdmFycykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQsIGhlbHBlciwgb3IgbW9kaWZpZXIsIGJ1dCBubyBmcmVlIHZhcnMgd2VyZSBmb3VuZCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFtZXRhLm93bmVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCwgaGVscGVyLCBvciBtb2RpZmllciwgYnV0IG5vIG93bmVyIHdhcyBhc3NvY2lhdGVkIHdpdGggdGhlIHRlbXBsYXRlIGl0IHdhcyBiZWluZyByZXNvbHZlZCBmcm9tJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKG1ldGEgYXMgdW5rbm93bikgYXMgUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGE7XG59XG5cbi8qKlxuICogPEZvby8+XG4gKiA8Rm9vPjwvRm9vPlxuICogPEZvbyBAYXJnPXt7dHJ1ZX19IC8+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29tcG9uZW50KFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlQ29tcG9uZW50T3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmIChERUJVRyAmJiBleHByWzBdID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCB0aGF0IHZhbHVlIHdhcyBub3QgaW4gc2NvcGU6ICR7XG4gICAgICAgIG1ldGEudXB2YXJzIVtleHByWzFdXVxuICAgICAgfWBcbiAgICApO1xuICB9XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMsIG93bmVyIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oXG4gICAgICBjb25zdGFudHMuY29tcG9uZW50KFxuICAgICAgICBkZWZpbml0aW9uIGFzIG9iamVjdCxcbiAgICAgICAgZXhwZWN0KG93bmVyLCAnQlVHOiBleHBlY3RlZCBvd25lciB3aGVuIHJlc29sdmluZyBjb21wb25lbnQgZGVmaW5pdGlvbicpXG4gICAgICApXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcikhO1xuXG4gICAgaWYgKERFQlVHICYmICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGNvbXBvbmVudCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICogKGhlbHBlcilcbiAqIChoZWxwZXIgYXJnKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZUhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZUhlbHBlcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgdGhlbihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLCByZXNvbHZlciwgbWV0YSwgY29uc3RhbnRzLCAnaGVscGVyJylcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIhKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBoZWxwZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIDxkaXYge3ttb2RpZmllcn19Lz5cbiAqIDxkaXYge3ttb2RpZmllciBhcmd9fS8+XG4gKiA8Rm9vIHt7bW9kaWZpZXJ9fS8+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTW9kaWZpZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVNb2RpZmllck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZU1vZGlmaWVyKGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBtb2RpZmllciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgbGV0IHsgdXB2YXJzIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IG1vZGlmaWVyID0gcmVzb2x2ZXIubG9va3VwQnVpbHRJbk1vZGlmaWVyKG5hbWUpO1xuXG4gICAgaWYgKERFQlVHICYmIG1vZGlmaWVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIG1vZGlmaWVyIGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCBpdCB3YXMgbm90IGluIHNjb3BlOiAke25hbWV9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihtb2RpZmllciEsIG5hbWUpKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IG1vZGlmaWVyID0gcmVzb2x2ZXIubG9va3VwTW9kaWZpZXIobmFtZSwgb3duZXIpITtcblxuICAgIGlmIChERUJVRyAmJiBtb2RpZmllciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgbW9kaWZpZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKG1vZGlmaWVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiB7e2NvbXBvbmVudC1vci1oZWxwZXIgYXJnfX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnRPckhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmQ29tcG9uZW50LCBpZkhlbHBlciB9XTogUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwciksXG4gICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IG9yIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzLCBvd25lciB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICBsZXQgY29tcG9uZW50ID0gY29uc3RhbnRzLmNvbXBvbmVudChcbiAgICAgIGRlZmluaXRpb24gYXMgb2JqZWN0LFxuICAgICAgZXhwZWN0KG93bmVyLCAnQlVHOiBleHBlY3RlZCBvd25lciB3aGVuIHJlc29sdmluZyBjb21wb25lbnQgZGVmaW5pdGlvbicpLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICBpZiAoY29tcG9uZW50ICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSBjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24gYXMgb2JqZWN0LCBudWxsLCB0cnVlKTtcblxuICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byB1c2UgYSB2YWx1ZSBhcyBlaXRoZXIgYSBjb21wb25lbnQgb3IgaGVscGVyLCBidXQgaXQgZGlkIG5vdCBoYXZlIGEgY29tcG9uZW50IG1hbmFnZXIgb3IgaGVscGVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIGl0LiBUaGUgdmFsdWUgd2FzOiAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICAgIGRlZmluaXRpb25cbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmSGVscGVyKGV4cGVjdChoZWxwZXIsICdCVUc6IGhlbHBlciBtdXN0IGV4aXN0JykpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBpZkhlbHBlcihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoXG4gICAgICAgIGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSxcbiAgICAgICAgcmVzb2x2ZXIsXG4gICAgICAgIG1ldGEsXG4gICAgICAgIGNvbnN0YW50cyxcbiAgICAgICAgJ2NvbXBvbmVudCBvciBoZWxwZXInXG4gICAgICApXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoZGVmaW5pdGlvbiAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBjb21wb25lbnQgb3IgaGVscGVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciEsIG5hbWUpKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiA8Rm9vIEBhcmc9e3toZWxwZXJ9fT5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVPcHRpb25hbEhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmSGVscGVyLCBpZkZhbGxiYWNrIH1dOiBSZXNvbHZlT3B0aW9uYWxIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChcbiAgICBpc0dldEZyZWVPcHRpb25hbEhlbHBlcihleHByKSB8fCBpc0dldEZyZWVEZXByZWNhdGVkSGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG4gIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgaWYgKGhlbHBlciA9PT0gbnVsbCkge1xuICAgIGlmRmFsbGJhY2sobmFtZSwgbWV0YS5tb2R1bGVOYW1lKTtcbiAgfSBlbHNlIHtcbiAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSksIG5hbWUsIG1ldGEubW9kdWxlTmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiB7e21heWJlSGVscGVyT3JDb21wb25lbnR9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkNvbXBvbmVudCwgaWZIZWxwZXIsIGlmVmFsdWUsIGlmRmFsbGJhY2sgfV06IFJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihleHByKSxcbiAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYW4gb3B0aW9uYWwgY29tcG9uZW50IG9yIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzLCBvd25lciB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKVxuICAgICkge1xuICAgICAgLy8gVGhlIHZhbHVlIGlzIG5vdCBhbiBvYmplY3QsIHNvIGl0IGNhbid0IGJlIGEgY29tcG9uZW50IG9yIGhlbHBlci5cbiAgICAgIGlmVmFsdWUoY29uc3RhbnRzLnZhbHVlKGRlZmluaXRpb24pKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY29tcG9uZW50ID0gY29uc3RhbnRzLmNvbXBvbmVudChcbiAgICAgIGRlZmluaXRpb24sXG4gICAgICBleHBlY3Qob3duZXIsICdCVUc6IGV4cGVjdGVkIG93bmVyIHdoZW4gcmVzb2x2aW5nIGNvbXBvbmVudCBkZWZpbml0aW9uJyksXG4gICAgICB0cnVlXG4gICAgKTtcblxuICAgIGlmIChjb21wb25lbnQgIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiwgbnVsbCwgdHJ1ZSk7XG5cbiAgICBpZiAoaGVscGVyICE9PSBudWxsKSB7XG4gICAgICBpZkhlbHBlcihoZWxwZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmVmFsdWUoY29uc3RhbnRzLnZhbHVlKGRlZmluaXRpb24pKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgaWZIZWxwZXIoXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSwgcmVzb2x2ZXIsIG1ldGEsIGNvbnN0YW50cywgJ3ZhbHVlJylcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBkZWZpbml0aW9uID0gcmVzb2x2ZXIubG9va3VwQ29tcG9uZW50KG5hbWUsIG93bmVyKTtcblxuICAgIGlmIChkZWZpbml0aW9uICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGhlbHBlciAhPT0gbnVsbCkge1xuICAgICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZkZhbGxiYWNrKG5hbWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGxvb2t1cEJ1aWx0SW5IZWxwZXIoXG4gIGV4cHI6IEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIGNvbnN0YW50czogUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIHR5cGU6IHN0cmluZ1xuKTogbnVtYmVyIHtcbiAgbGV0IHsgdXB2YXJzIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBCdWlsdEluSGVscGVyKG5hbWUpO1xuXG4gIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAvLyBLZXl3b3JkIGhlbHBlciBkaWQgbm90IGV4aXN0LCB3aGljaCBtZWFucyB0aGF0IHdlJ3JlIGF0dGVtcHRpbmcgdG8gdXNlIGFcbiAgICAvLyB2YWx1ZSBvZiBzb21lIGtpbmQgdGhhdCBpcyBub3QgaW4gc2NvcGVcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSAke3R5cGV9IGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCB0aGF0IHZhbHVlIHdhcyBub3QgaW4gc2NvcGU6ICR7XG4gICAgICAgIG1ldGEudXB2YXJzIVtleHByWzFdXVxuICAgICAgfWBcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGNvbnN0YW50cy5oZWxwZXIoaGVscGVyISwgbmFtZSk7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBZ0JBOztBQUVBLFNBQUEsY0FBQSxDQUFBLE1BQUEsRUFBc0Q7QUFDcEQsU0FBTyxLQUFLLENBQUwsT0FBQSxDQUFBLE1BQUEsS0FBeUIsTUFBTSxDQUFOLE1BQUEsS0FBaEMsQ0FBQTtBQUNEOztBQUVELFNBQUEsMEJBQUEsQ0FBQSxZQUFBLEVBQTZEO0FBQzNELFNBQ0UsTUFESyxJQUU0RDtBQUNqRSxRQUFJLENBQUMsY0FBYyxDQUFuQixNQUFtQixDQUFuQixFQUE2QixPQUFBLEtBQUE7QUFFN0IsUUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFqQixDQUFpQixDQUFqQjtBQUVBLFdBQ0UsSUFBSSxLQUFBO0FBQUE7QUFBSixPQUNBLElBQUksS0FBQTtBQUFBO0FBREosT0FFQSxJQUFJLEtBSE4sWUFBQTtBQVBGLEdBQUE7QUFhRDs7QUFFTSxNQUFNLGtCQUFrQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFyRDs7QUFFQSxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFwRDs7QUFFQSxNQUFNLGVBQWUsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBbEQ7O0FBRUEsTUFBTSwwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBN0Q7O0FBSUEsTUFBTSx1QkFBdUIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBMUQ7OztBQUlELFNBQUEseUJBQUEsQ0FBQSxNQUFBLEVBQzBCO0FBRTlCLFNBQ0UsS0FBSyxDQUFMLE9BQUEsQ0FBQSxNQUFBLEtBQXlCLE1BQU0sQ0FBTixDQUFNLENBQU4sS0FBUztBQUFBO0FBRHBDO0FBR0Q7O0FBRU0sTUFBTSxr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cG9ydCB7XG4gIENvbXBpbGVUaW1lQ29uc3RhbnRzLFxuICBDb21waWxlVGltZVJlc29sdmVyLFxuICBDb250YWluaW5nTWV0YWRhdGEsXG4gIEV4cHJlc3Npb25zLFxuICBPd25lcixcbiAgUmVzb2x2ZUNvbXBvbmVudE9wLFxuICBSZXNvbHZlQ29tcG9uZW50T3JIZWxwZXJPcCxcbiAgUmVzb2x2ZUhlbHBlck9wLFxuICBSZXNvbHZlTW9kaWZpZXJPcCxcbiAgUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXJPcCxcbiAgUmVzb2x2ZU9wdGlvbmFsSGVscGVyT3AsXG4gIFNleHBPcGNvZGVzLFxuICBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBhc3NlcnQsIGRlYnVnVG9TdHJpbmcsIGV4cGVjdCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5mdW5jdGlvbiBpc0dldExpa2VUdXBsZShvcGNvZGU6IEV4cHJlc3Npb25zLkV4cHJlc3Npb24pOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuVHVwbGVFeHByZXNzaW9uIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkob3Bjb2RlKSAmJiBvcGNvZGUubGVuZ3RoID09PSAyO1xufVxuXG5mdW5jdGlvbiBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcih0eXBlVG9WZXJpZnk6IFNleHBPcGNvZGVzKSB7XG4gIHJldHVybiAoXG4gICAgb3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uXG4gICk6IG9wY29kZSBpcyBFeHByZXNzaW9ucy5HZXRGcmVlIHwgRXhwcmVzc2lvbnMuR2V0VGVtcGxhdGVTeW1ib2wgPT4ge1xuICAgIGlmICghaXNHZXRMaWtlVHVwbGUob3Bjb2RlKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgbGV0IHR5cGUgPSBvcGNvZGVbMF07XG5cbiAgICByZXR1cm4gKFxuICAgICAgdHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSB8fFxuICAgICAgdHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wgfHxcbiAgICAgIHR5cGUgPT09IHR5cGVUb1ZlcmlmeVxuICAgICk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVDb21wb25lbnQgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU1vZGlmaWVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzTW9kaWZpZXJIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkXG4pO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlT3B0aW9uYWxIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHZXRGcmVlRGVwcmVjYXRlZEhlbHBlcihcbiAgb3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uXG4pOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuR2V0UGF0aEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2sge1xuICByZXR1cm4gKFxuICAgIEFycmF5LmlzQXJyYXkob3Bjb2RlKSAmJiBvcGNvZGVbMF0gPT09IFNleHBPcGNvZGVzLkdldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2tcbiAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2tcbik7XG5cbmludGVyZmFjZSBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YSBleHRlbmRzIENvbnRhaW5pbmdNZXRhZGF0YSB7XG4gIG93bmVyOiBPd25lcjtcbiAgdXB2YXJzOiBzdHJpbmdbXTtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSk6IFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhIHtcbiAgaWYgKERFQlVHKSB7XG4gICAgaWYgKCFtZXRhLnVwdmFycykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQsIGhlbHBlciwgb3IgbW9kaWZpZXIsIGJ1dCBubyBmcmVlIHZhcnMgd2VyZSBmb3VuZCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFtZXRhLm93bmVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCwgaGVscGVyLCBvciBtb2RpZmllciwgYnV0IG5vIG93bmVyIHdhcyBhc3NvY2lhdGVkIHdpdGggdGhlIHRlbXBsYXRlIGl0IHdhcyBiZWluZyByZXNvbHZlZCBmcm9tJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKG1ldGEgYXMgdW5rbm93bikgYXMgUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGE7XG59XG5cbi8qKlxuICogPEZvby8+XG4gKiA8Rm9vPjwvRm9vPlxuICogPEZvbyBAYXJnPXt7dHJ1ZX19IC8+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29tcG9uZW50KFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlQ29tcG9uZW50T3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmIChERUJVRyAmJiBleHByWzBdID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCB0aGF0IHZhbHVlIHdhcyBub3QgaW4gc2NvcGU6ICR7XG4gICAgICAgIG1ldGEudXB2YXJzIVtleHByWzFdXVxuICAgICAgfWBcbiAgICApO1xuICB9XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMsIG93bmVyIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oXG4gICAgICBjb25zdGFudHMuY29tcG9uZW50KFxuICAgICAgICBkZWZpbml0aW9uIGFzIG9iamVjdCxcbiAgICAgICAgZXhwZWN0KG93bmVyLCAnQlVHOiBleHBlY3RlZCBvd25lciB3aGVuIHJlc29sdmluZyBjb21wb25lbnQgZGVmaW5pdGlvbicpXG4gICAgICApXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcikhO1xuXG4gICAgaWYgKERFQlVHICYmICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGNvbXBvbmVudCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICogKGhlbHBlcilcbiAqIChoZWxwZXIgYXJnKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZUhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZUhlbHBlcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgdGhlbihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLCByZXNvbHZlciwgbWV0YSwgY29uc3RhbnRzLCAnaGVscGVyJylcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIhKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBoZWxwZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIDxkaXYge3ttb2RpZmllcn19Lz5cbiAqIDxkaXYge3ttb2RpZmllciBhcmd9fS8+XG4gKiA8Rm9vIHt7bW9kaWZpZXJ9fS8+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTW9kaWZpZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVNb2RpZmllck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZU1vZGlmaWVyKGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBtb2RpZmllciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgbGV0IHsgdXB2YXJzIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IG1vZGlmaWVyID0gcmVzb2x2ZXIubG9va3VwQnVpbHRJbk1vZGlmaWVyKG5hbWUpO1xuXG4gICAgaWYgKERFQlVHICYmIG1vZGlmaWVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIG1vZGlmaWVyIGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCBpdCB3YXMgbm90IGluIHNjb3BlOiAke25hbWV9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihtb2RpZmllciEsIG5hbWUpKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IG1vZGlmaWVyID0gcmVzb2x2ZXIubG9va3VwTW9kaWZpZXIobmFtZSwgb3duZXIpITtcblxuICAgIGlmIChERUJVRyAmJiBtb2RpZmllciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgbW9kaWZpZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKG1vZGlmaWVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiB7e2NvbXBvbmVudC1vci1oZWxwZXIgYXJnfX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnRPckhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmQ29tcG9uZW50LCBpZkhlbHBlciB9XTogUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwciksXG4gICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IG9yIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzLCBvd25lciB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICBsZXQgY29tcG9uZW50ID0gY29uc3RhbnRzLmNvbXBvbmVudChcbiAgICAgIGRlZmluaXRpb24gYXMgb2JqZWN0LFxuICAgICAgZXhwZWN0KG93bmVyLCAnQlVHOiBleHBlY3RlZCBvd25lciB3aGVuIHJlc29sdmluZyBjb21wb25lbnQgZGVmaW5pdGlvbicpLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICBpZiAoY29tcG9uZW50ICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSBjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24gYXMgb2JqZWN0LCBudWxsLCB0cnVlKTtcblxuICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byB1c2UgYSB2YWx1ZSBhcyBlaXRoZXIgYSBjb21wb25lbnQgb3IgaGVscGVyLCBidXQgaXQgZGlkIG5vdCBoYXZlIGEgY29tcG9uZW50IG1hbmFnZXIgb3IgaGVscGVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIGl0LiBUaGUgdmFsdWUgd2FzOiAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICAgIGRlZmluaXRpb25cbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmSGVscGVyKGV4cGVjdChoZWxwZXIsICdCVUc6IGhlbHBlciBtdXN0IGV4aXN0JykpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBpZkhlbHBlcihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoXG4gICAgICAgIGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSxcbiAgICAgICAgcmVzb2x2ZXIsXG4gICAgICAgIG1ldGEsXG4gICAgICAgIGNvbnN0YW50cyxcbiAgICAgICAgJ2NvbXBvbmVudCBvciBoZWxwZXInXG4gICAgICApXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoZGVmaW5pdGlvbiAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBjb21wb25lbnQgb3IgaGVscGVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciEsIG5hbWUpKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiA8Rm9vIEBhcmc9e3toZWxwZXJ9fT5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVPcHRpb25hbEhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmSGVscGVyIH1dOiBSZXNvbHZlT3B0aW9uYWxIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChcbiAgICBpc0dldEZyZWVPcHRpb25hbEhlbHBlcihleHByKSB8fCBpc0dldEZyZWVEZXByZWNhdGVkSGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG4gIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgaWYgKGhlbHBlcikge1xuICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSwgbmFtZSwgbWV0YS5tb2R1bGVOYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIHt7bWF5YmVIZWxwZXJPckNvbXBvbmVudH19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmQ29tcG9uZW50LCBpZkhlbHBlciwgaWZWYWx1ZSB9XTogUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChcbiAgICBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhbiBvcHRpb25hbCBjb21wb25lbnQgb3IgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZSdcbiAgKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMsIG93bmVyIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICAgKSB7XG4gICAgICAvLyBUaGUgdmFsdWUgaXMgbm90IGFuIG9iamVjdCwgc28gaXQgY2FuJ3QgYmUgYSBjb21wb25lbnQgb3IgaGVscGVyLlxuICAgICAgaWZWYWx1ZShjb25zdGFudHMudmFsdWUoZGVmaW5pdGlvbikpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjb21wb25lbnQgPSBjb25zdGFudHMuY29tcG9uZW50KFxuICAgICAgZGVmaW5pdGlvbixcbiAgICAgIGV4cGVjdChvd25lciwgJ0JVRzogZXhwZWN0ZWQgb3duZXIgd2hlbiByZXNvbHZpbmcgY29tcG9uZW50IGRlZmluaXRpb24nKSxcbiAgICAgIHRydWVcbiAgICApO1xuXG4gICAgaWYgKGNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uLCBudWxsLCB0cnVlKTtcblxuICAgIGlmIChoZWxwZXIgIT09IG51bGwpIHtcbiAgICAgIGlmSGVscGVyKGhlbHBlcik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWZWYWx1ZShjb25zdGFudHMudmFsdWUoZGVmaW5pdGlvbikpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBpZkhlbHBlcihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLCByZXNvbHZlciwgbWV0YSwgY29uc3RhbnRzLCAndmFsdWUnKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGRlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoaGVscGVyICE9PSBudWxsKSB7XG4gICAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSkpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBsb29rdXBCdWlsdEluSGVscGVyKFxuICBleHByOiBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBjb25zdGFudHM6IFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICB0eXBlOiBzdHJpbmdcbik6IG51bWJlciB7XG4gIGxldCB7IHVwdmFycyB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwQnVpbHRJbkhlbHBlcihuYW1lKTtcblxuICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgLy8gS2V5d29yZCBoZWxwZXIgZGlkIG5vdCBleGlzdCwgd2hpY2ggbWVhbnMgdGhhdCB3ZSdyZSBhdHRlbXB0aW5nIHRvIHVzZSBhXG4gICAgLy8gdmFsdWUgb2Ygc29tZSBraW5kIHRoYXQgaXMgbm90IGluIHNjb3BlXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgJHt0eXBlfSBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke1xuICAgICAgICBtZXRhLnVwdmFycyFbZXhwclsxXV1cbiAgICAgIH1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBjb25zdGFudHMuaGVscGVyKGhlbHBlciEsIG5hbWUpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

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

var _env = require("@glimmer/env");
const EXPRESSIONS = new _compilers.Compilers();

@@ -87,20 +85,3 @@ exports.EXPRESSIONS = EXPRESSIONS;

/* GetFreeAsFallback */
, (op, [, freeVar, path]) => {
op(1010
/* ResolveLocal */
, freeVar, (name, moduleName) => {
if (_env.DEBUG) {
let propertyPath = path ? [name, ...path].join('.') : name;
(0, _globalContext.deprecate)(`The \`${propertyPath}\` property path was used in the \`${moduleName}\` template without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${propertyPath}}}`, false, {
id: 'this-property-fallback'
});
}
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
});
, (op, [,, path]) => {
withPath(op, path);

@@ -129,13 +110,2 @@ });

(0, _vm2.Call)(op, handle, null, null);
},
ifFallback: (name, moduleName) => {
(0, _globalContext.deprecate)(`The \`${name}\` property was used in the \`${moduleName}\` template without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, {
id: 'this-property-fallback'
});
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
}

@@ -162,13 +132,2 @@ });

(0, _vm2.Call)(op, handle, null, null);
},
ifFallback: (name, moduleName) => {
(0, _globalContext.deprecate)(`The \`${name}\` property was used in the \`${moduleName}\` template without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, {
id: 'this-property-fallback'
});
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
}

@@ -258,2 +217,2 @@ });

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFPQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFTyxNQUFNLFdBQVcsR0FBRyxJQUFwQixvQkFBb0IsRUFBcEI7O0FBRVAsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBb0MsQ0FBQSxFQUFBLEVBQUssR0FBTCxLQUFLLENBQUwsS0FBa0I7QUFDcEQsT0FBSyxJQUFMLElBQUEsSUFBQSxLQUFBLEVBQXdCO0FBQ3RCLG9CQUFJLEVBQUosRUFBQSxJQUFBO0FBQ0Q7O0FBRUQsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQVksS0FBSyxDQUFuQixNQUFFLENBQUY7QUFMRixDQUFBO0FBUUEsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBa0MsQ0FBQSxFQUFBLEVBQUssR0FBQSxVQUFBLEVBQUEsVUFBQSxFQUFMLEtBQUssQ0FBTCxLQUEwQztBQUMxRSxNQUFJLGlDQUFKLFVBQUksQ0FBSixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxVQUFBLEVBQXVELE1BQUQsSUFBbUI7QUFDekUscUJBQUksRUFBSixFQUFJLE1BQUosRUFBSSxVQUFKLEVBQUEsS0FBQTtBQURGLEtBQUUsQ0FBRjtBQURGLEdBQUEsTUFJTztBQUNMLG9CQUFJLEVBQUosRUFBQSxVQUFBO0FBQ0EsMEJBQVcsRUFBWCxFQUFXLFVBQVgsRUFBQSxLQUFBO0FBQ0Q7QUFSSCxDQUFBO0FBV0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBbUMsQ0FBQSxFQUFBLEVBQUssR0FBQSxJQUFBLEVBQUEsSUFBQSxFQUFBLFVBQUEsRUFBTCxLQUFLLENBQUwsS0FBMEM7QUFDM0Usa0JBQUssRUFBTCxFQUFLLElBQUwsRUFBSyxJQUFMLEVBQUssVUFBTCxFQUFBLEtBQUE7QUFERixDQUFBO0FBSUEsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBdUMsQ0FBQSxFQUFBLEVBQUssR0FBQSxHQUFBLEVBQUwsSUFBSyxDQUFMLEtBQXNCO0FBQzNELEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFGLEdBQUUsQ0FBRjtBQUNBLEVBQUEsUUFBUSxDQUFBLEVBQUEsRUFBUixJQUFRLENBQVI7QUFGRixDQUFBO0FBS0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBK0MsQ0FBQSxFQUFBLEVBQUssR0FBQSxHQUFBLEVBQUwsSUFBSyxDQUFMLEtBQXNCO0FBQ25FLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFBLEdBQUEsRUFBdUQsTUFBRCxJQUFtQjtBQUN6RSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBRixNQUFFLENBQUY7QUFDQSxJQUFBLFFBQVEsQ0FBQSxFQUFBLEVBQVIsSUFBUSxDQUFSO0FBRkYsR0FBRSxDQUFGO0FBREYsQ0FBQTtBQU9BLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQTJDLENBQUEsRUFBQSxFQUFLLEdBQUEsR0FBQSxFQUFMLEtBQUssQ0FBTCxLQUF1QjtBQUNoRSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBQSxHQUFBLEVBQThDLE9BQUQsSUFBcUIsQ0FDbEU7QUFERixHQUFFLENBQUY7QUFERixDQUFBO0FBTUEsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBK0MsQ0FBQSxFQUFBLEVBQUssR0FBQSxPQUFBLEVBQUwsSUFBSyxDQUFMLEtBQTBCO0FBQ3ZFLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFBLE9BQUEsRUFBa0QsQ0FBQSxJQUFBLEVBQUEsVUFBQSxLQUFxQztBQUN2RixRQUFBLFVBQUEsRUFBVztBQUNULFVBQUksWUFBWSxHQUFHLElBQUksR0FBRyxDQUFBLElBQUEsRUFBTyxHQUFQLElBQUEsRUFBQSxJQUFBLENBQUgsR0FBRyxDQUFILEdBQXZCLElBQUE7QUFFQSxvQ0FDRSxTQUFTLFlBQVksc0NBQXNDLFVBQVUsa0tBQWtLLFlBRGhPLElBQVQsRUFBUyxLQUFULEVBR0U7QUFDRSxRQUFBLEVBQUUsRUFBRTtBQUROLE9BSEY7QUFPRDs7QUFFRCxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBRixDQUFFLENBQUY7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBRixJQUFFLENBQUY7QUFkRixHQUFFLENBQUY7QUFnQkEsRUFBQSxRQUFRLENBQUEsRUFBQSxFQUFSLElBQVEsQ0FBUjtBQWpCRixDQUFBO0FBb0JBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQTBFLE1BQUs7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFNLElBQUEsS0FBQSxDQUFOLHNCQUFNLENBQU47QUFMRixDQUFBO0FBUUEsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBK0QsQ0FBQSxFQUFBLEVBQUEsSUFBQSxLQUFhO0FBQzFFO0FBRUEsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQXlDLElBQUksQ0FBN0MsQ0FBNkMsQ0FBN0MsRUFBbUQsS0FBRCxJQUFrQjtBQUNwRSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxJQUFBLEVBQXdEO0FBQ3hELE1BQUEsUUFBUSxFQUFHLE1BQUQsSUFBbUI7QUFDM0IsdUJBQUksRUFBSixFQUFJLE1BQUosRUFBSSxJQUFKLEVBQUEsSUFBQTtBQUZzRCxPQUFBO0FBS3hELE1BQUEsVUFBVSxFQUFFLENBQUEsSUFBQSxFQUFBLFVBQUEsS0FBcUM7QUFDL0Msc0NBQ0UsU0FBUyxJQUFJLGlDQUFpQyxVQUFVLGtLQUFrSyxJQURuTixJQUFULEVBQVMsS0FBVCxFQUdFO0FBQ0UsVUFBQSxFQUFFLEVBQUU7QUFETixTQUhGO0FBUUEsUUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLFVBQUYsQ0FBRSxDQUFGO0FBQ0EsUUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLFVBQUYsSUFBRSxDQUFGO0FBQ0Q7QUFoQnVELEtBQXhELENBQUY7QUFERixHQUFFLENBQUY7QUFIRixDQUFBO0FBeUJBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQXlFLENBQUEsRUFBQSxFQUFBLElBQUEsS0FBYTtBQUNwRjtBQUVBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUF5QyxJQUFJLENBQTdDLENBQTZDLENBQTdDLEVBQW1ELEtBQUQsSUFBa0I7QUFDcEUsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQUEsSUFBQSxFQUF3RDtBQUN4RCxNQUFBLFFBQVEsRUFBRSxDQUFBLE1BQUEsRUFBQSxJQUFBLEVBQUEsVUFBQSxLQUFxRDtBQUM3RCxtQ0FBTyxJQUFJLENBQUosQ0FBSSxDQUFKLElBQVcsSUFBSSxDQUFKLENBQUksQ0FBSixDQUFBLE1BQUEsS0FBWixDQUFOLEVBQUEsNkJBQUE7QUFFQSxZQUFJLEdBQUcsR0FBRyxJQUFJLENBQUosQ0FBSSxDQUFKLENBQVYsQ0FBVSxDQUFWO0FBRUEsc0NBQ0UsU0FBUyxJQUFJLCtCQUErQixVQUFVLG9CQUFvQixHQUFHLE1BQU0sSUFBbkYsUUFBQSxHQUNFLDJDQUEyQyxHQUFHLDJCQUEyQixJQUQzRSxvQkFBQSxHQUVFLG1DQUFtQyxJQUZyQyxnQ0FBQSxHQUFBLDREQUFBLEdBSUUseUVBQXlFLEdBQUcsT0FBTyxJQUpyRixZQUFBLEdBQUEsdUdBQUEsR0FNRSxLQUFLLElBTlAsc0VBQUEsR0FPRSxTQUFTLElBUFgsd0RBQUEsR0FBQSx5RUFBQSxHQUFBLDhGQUFBLEdBRE8sb0dBQVQsRUFBUyxLQUFULEVBYUU7QUFDRSxVQUFBLEVBQUUsRUFBRTtBQUROLFNBYkY7QUFrQkEsdUJBQUksRUFBSixFQUFJLE1BQUosRUFBSSxJQUFKLEVBQUEsSUFBQTtBQXhCc0QsT0FBQTtBQTJCeEQsTUFBQSxVQUFVLEVBQUUsQ0FBQSxJQUFBLEVBQUEsVUFBQSxLQUFxQztBQUMvQyxzQ0FDRSxTQUFTLElBQUksaUNBQWlDLFVBQVUsa0tBQWtLLElBRG5OLElBQVQsRUFBUyxLQUFULEVBR0U7QUFDRSxVQUFBLEVBQUUsRUFBRTtBQUROLFNBSEY7QUFRQSxRQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsVUFBRixDQUFFLENBQUY7QUFDQSxRQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsVUFBRixJQUFFLENBQUY7QUFDRDtBQXRDdUQsS0FBeEQsQ0FBRjtBQURGLEdBQUUsQ0FBRjtBQUhGLENBQUE7O0FBK0NBLFNBQUEsUUFBQSxDQUFBLEVBQUEsRUFBQSxJQUFBLEVBQXVEO0FBQ3JELE1BQUksSUFBSSxLQUFKLFNBQUEsSUFBc0IsSUFBSSxDQUFKLE1BQUEsS0FBMUIsQ0FBQSxFQUE2Qzs7QUFFN0MsT0FBSyxJQUFJLENBQUMsR0FBVixDQUFBLEVBQWdCLENBQUMsR0FBRyxJQUFJLENBQXhCLE1BQUEsRUFBaUMsQ0FBakMsRUFBQSxFQUFzQztBQUNwQyxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBaUIsSUFBSSxDQUF2QixDQUF1QixDQUFyQixDQUFGO0FBQ0Q7QUFDRjs7QUFFRCxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUF3QyxFQUFELElBQVEsaUNBQXNCLEVBQXRCLEVBQS9DLFNBQStDLENBQS9DO0FBQ0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBc0MsQ0FBQSxFQUFBLEVBQUssR0FBTCxLQUFLLENBQUwsS0FBa0I7QUFDdEQsa0JBQUksRUFBSixFQUFBLEtBQUE7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUZGLENBQUE7QUFLQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUE0QyxDQUFBLEVBQUEsRUFBSyxHQUFMLEtBQUssQ0FBTCxLQUFrQjtBQUM1RCxrQkFBSSxFQUFKLEVBQUEsS0FBQTtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUpGLENBQUE7QUFPQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFzQyxDQUFBLEVBQUEsRUFBSyxHQUFBLFNBQUEsRUFBQSxNQUFBLEVBQUwsS0FBSyxDQUFMLEtBQXFDO0FBQ3pFO0FBQ0Esa0JBQUksRUFBSixFQUFBLEtBQUE7QUFDQSxrQkFBSSxFQUFKLEVBQUEsTUFBQTtBQUNBLGtCQUFJLEVBQUosRUFBQSxTQUFBO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFMRixDQUFBO0FBUUEsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBaUMsQ0FBQSxFQUFBLEVBQUssR0FBTCxLQUFLLENBQUwsS0FBa0I7QUFDakQsa0JBQUksRUFBSixFQUFBLEtBQUE7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUZGLENBQUE7QUFLQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUEyQyxDQUFBLEVBQUEsRUFBSyxHQUFMLFVBQUssQ0FBTCxLQUF1QjtBQUNoRSxrQkFBSSxFQUFKLEVBQUEsVUFBQTtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBRkYsQ0FBQTtBQUtBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQWlDLENBQUEsRUFBQSxFQUFLLEdBQUwsVUFBSyxDQUFMLEtBQXVCO0FBQ3RELEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsMEJBQVUsRUFBVixFQUFVLFVBQVYsRUFBVSxJQUFWLEVBQUEsS0FBQTtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBRixPQUFFLENBQUY7QUFMRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRXhwcmVzc2lvblNleHBPcGNvZGUsXG4gIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUsXG4gIE1hY2hpbmVPcCxcbiAgT3AsXG4gIFNleHBPcGNvZGVzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICR2MCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IGFzc2VydCwgZGVwcmVjYXRlIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvZXhwcic7XG5pbXBvcnQgeyBpc0dldEZyZWVIZWxwZXIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgU2ltcGxlQXJncyB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcbmltcG9ydCB7IENhbGwsIENhbGxEeW5hbWljLCBDdXJyeSwgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZSB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvdm0nO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoRXhwcmVzc2lvbk9wIH0gZnJvbSAnLi9jb21waWxlcnMnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuXG5leHBvcnQgY29uc3QgRVhQUkVTU0lPTlMgPSBuZXcgQ29tcGlsZXJzPFB1c2hFeHByZXNzaW9uT3AsIEV4cHJlc3Npb25TZXhwT3Bjb2RlPigpO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ29uY2F0LCAob3AsIFssIHBhcnRzXSkgPT4ge1xuICBmb3IgKGxldCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgZXhwcihvcCwgcGFydCk7XG4gIH1cblxuICBvcChPcC5Db25jYXQsIHBhcnRzLmxlbmd0aCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkNhbGwsIChvcCwgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVIZWxwZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgQ2FsbChvcCwgaGFuZGxlLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgQ2FsbER5bmFtaWMob3AsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgfVxufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5DdXJyeSwgKG9wLCBbLCBleHByLCB0eXBlLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgQ3Vycnkob3AsIHR5cGUsIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3ltYm9sLCAob3AsIFssIHN5bSwgcGF0aF0pID0+IHtcbiAgb3AoT3AuR2V0VmFyaWFibGUsIHN5bSk7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVUZW1wbGF0ZUxvY2FsLCBzeW0sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgIG9wKE9wLkNvbnN0YW50UmVmZXJlbmNlLCBoYW5kbGUpO1xuICAgIHdpdGhQYXRoKG9wLCBwYXRoKTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUsIChvcCwgWywgc3ltLCBfcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlRnJlZSwgc3ltLCAoX2hhbmRsZTogdW5rbm93bikgPT4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBzdHJpY3QgbW9kZVxuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzRmFsbGJhY2ssIChvcCwgWywgZnJlZVZhciwgcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGZyZWVWYXIsIChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgIGlmIChERUJVRykge1xuICAgICAgbGV0IHByb3BlcnR5UGF0aCA9IHBhdGggPyBbbmFtZSwgLi4ucGF0aF0uam9pbignLicpIDogbmFtZTtcblxuICAgICAgZGVwcmVjYXRlKFxuICAgICAgICBgVGhlIFxcYCR7cHJvcGVydHlQYXRofVxcYCBwcm9wZXJ0eSBwYXRoIHdhcyB1c2VkIGluIHRoZSBcXGAke21vZHVsZU5hbWV9XFxgIHRlbXBsYXRlIHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke3Byb3BlcnR5UGF0aH19fWAsXG4gICAgICAgIGZhbHNlLFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICB9KTtcbiAgd2l0aFBhdGgob3AsIHBhdGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjaywgKCkgPT4ge1xuICAvLyBUT0RPOiBUaGUgbG9naWMgZm9yIHRoaXMgb3Bjb2RlIGN1cnJlbnRseSBleGlzdHMgaW4gU1RBVEVNRU5UUy5BcHBlbmQsIHNpbmNlXG4gIC8vIHdlIHdhbnQgZGlmZmVyZW50IHdyYXBwaW5nIGxvZ2ljIGRlcGVuZGluZyBvbiBpZiB3ZSBhcmUgaW52b2tpbmcgYSBjb21wb25lbnQsXG4gIC8vIGhlbHBlciwgb3Ige3t0aGlzfX0gZmFsbGJhY2suIEV2ZW50dWFsbHkgd2UgZml4IHRoZSBvcGNvZGVzIHNvIHRoYXQgd2UgY2FuXG4gIC8vIHRyYXZlcnNlIHRoZSBzdWJleHByZXNzaW9uIHRyZWUgbGlrZSBub3JtYWwgaW4gdGhpcyBsb2NhdGlvbi5cbiAgdGhyb3cgbmV3IEVycm9yKCd1bmltcGxlbWVudGVkIG9wY29kZScpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8ZGl2IGlkPXt7YmF6fX0+XG5cbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGV4cHJbMV0sIChfbmFtZTogc3RyaW5nKSA9PiB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxIZWxwZXIsIGV4cHIsIHtcbiAgICAgIGlmSGVscGVyOiAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2s6IChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgYFRoZSBcXGAke25hbWV9XFxgIHByb3BlcnR5IHdhcyB1c2VkIGluIHRoZSBcXGAke21vZHVsZU5hbWV9XFxgIHRlbXBsYXRlIHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke25hbWV9fX1gLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndGhpcy1wcm9wZXJ0eS1mYWxsYmFjaycsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIG9wKE9wLkdldFZhcmlhYmxlLCAwKTtcbiAgICAgICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8Rm9vIEBiYXI9e3tiYXp9fT5cblxuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZXhwclsxXSwgKF9uYW1lOiBzdHJpbmcpID0+IHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbEhlbHBlciwgZXhwciwge1xuICAgICAgaWZIZWxwZXI6IChoYW5kbGU6IG51bWJlciwgbmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgYXNzZXJ0KGV4cHJbMl0gJiYgZXhwclsyXS5sZW5ndGggPT09IDEsICdbQlVHXSBNaXNzaW5nIGFyZ3VtZW50IG5hbWUnKTtcblxuICAgICAgICBsZXQgYXJnID0gZXhwclsyXVswXTtcblxuICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgYFRoZSBcXGAke25hbWV9XFxgIGhlbHBlciB3YXMgdXNlZCBpbiB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCB0ZW1wbGF0ZSBhcyBcXGAke2FyZ309e3ske25hbWV9fX1cXGAuIGAgK1xuICAgICAgICAgICAgYFRoaXMgaXMgYW1iaWdpb3VzIGJldHdlZW4gd2FudGluZyB0aGUgXFxgJHthcmd9XFxgIGFyZ3VtZW50IHRvIGJlIHRoZSBcXGAke25hbWV9XFxgIGhlbHBlciBpdHNlbGYsIGAgK1xuICAgICAgICAgICAgYG9yIHRoZSByZXN1bHQgb2YgaW52b2tpbmcgdGhlIFxcYCR7bmFtZX1cXGAgaGVscGVyIChjdXJyZW50IGJlaGF2aW9yKS4gYCArXG4gICAgICAgICAgICBgVGhpcyBpbXBsaWNpdCBpbnZvY2F0aW9uIGJlaGF2aW9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQuXFxuXFxuYCArXG4gICAgICAgICAgICBgSW5zdGVhZCwgcGxlYXNlIGV4cGxpY2l0bHkgaW52b2tlIHRoZSBoZWxwZXIgd2l0aCBwYXJlbnRoZXNpcywgaS5lLiBcXGAke2FyZ309e3soJHtuYW1lfSl9fVxcYC5cXG5cXG5gICtcbiAgICAgICAgICAgIGBOb3RlOiB0aGUgcGFyZW50aGVzaXMgYXJlIG9ubHkgcmVxdWlyZWQgaW4gdGhpcyBleGFjdCBzY2VuYXJpbyB3aGVyZSBhbiBhbWJpZ3VpdHkgaXMgcHJlc2VudCDigJMgd2hlcmUgYCArXG4gICAgICAgICAgICBgXFxgJHtuYW1lfVxcYCByZWZlcmVzIHRvIGEgZ2xvYmFsIGhlbHBlciAoYXMgb3Bwb3NlZCB0byBhIGxvY2FsIHZhcmlhYmxlKSwgQU5EIGAgK1xuICAgICAgICAgICAgYHRoZSBcXGAke25hbWV9XFxgIGhlbHBlciBpbnZvY2F0aW9uIGRvZXMgbm90IHRha2UgYW55IGFyZ3VtZW50cywgQU5EIGAgK1xuICAgICAgICAgICAgYHRoaXMgb2NjdXJzIGluIGEgbmFtZWQgYXJndW1lbnQgcG9zaXRpb24gb2YgYSBjb21wb25lbnQgaW52b2NhdGlvbi5cXG5cXG5gICtcbiAgICAgICAgICAgIGBXZSBleHBlY3QgdGhpcyBjb21iaW5hdGlvbiB0byBiZSBxdWl0ZSByYXJlLCBhcyBtb3N0IGhlbHBlcnMgcmVxdWlyZSBhdCBsZWFzdCBvbmUgYXJndW1lbnQuIGAgK1xuICAgICAgICAgICAgYFRoZXJlIGlzIG5vIG5lZWQgdG8gcmVmYWN0b3IgaGVscGVyIGludm9jYXRpb25zIGluIGNhc2VzIHdoZXJlIHRoaXMgZGVwcmVjYXRpb24gd2FzIG5vdCB0cmlnZ2VyZWQuYCxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2FyZ3VtZW50LWxlc3MtaGVscGVyLXBhcmVuLWxlc3MtaW52b2NhdGlvbicsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIENhbGwob3AsIGhhbmRsZSwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkZhbGxiYWNrOiAobmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgZGVwcmVjYXRlKFxuICAgICAgICAgIGBUaGUgXFxgJHtuYW1lfVxcYCBwcm9wZXJ0eSB3YXMgdXNlZCBpbiB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCB0ZW1wbGF0ZSB3aXRob3V0IHVzaW5nIFxcYHRoaXNcXGAuIFRoaXMgZmFsbGJhY2sgYmVoYXZpb3IgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYWxsIHByb3BlcnRpZXMgbXVzdCBiZSBsb29rZWQgdXAgb24gXFxgdGhpc1xcYCB3aGVuIHVzZWQgaW4gdGhlIHRlbXBsYXRlOiB7e3RoaXMuJHtuYW1lfX19YCxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ3RoaXMtcHJvcGVydHktZmFsbGJhY2snLFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmZ1bmN0aW9uIHdpdGhQYXRoKG9wOiBQdXNoRXhwcmVzc2lvbk9wLCBwYXRoPzogc3RyaW5nW10pIHtcbiAgaWYgKHBhdGggPT09IHVuZGVmaW5lZCB8fCBwYXRoLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aC5sZW5ndGg7IGkrKykge1xuICAgIG9wKE9wLkdldFByb3BlcnR5LCBwYXRoW2ldKTtcbiAgfVxufVxuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuVW5kZWZpbmVkLCAob3ApID0+IFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCkpO1xuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkhhc0Jsb2NrLCAob3AsIFssIGJsb2NrXSkgPT4ge1xuICBleHByKG9wLCBibG9jayk7XG4gIG9wKE9wLkhhc0Jsb2NrKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuSGFzQmxvY2tQYXJhbXMsIChvcCwgWywgYmxvY2tdKSA9PiB7XG4gIGV4cHIob3AsIGJsb2NrKTtcbiAgb3AoT3AuU3ByZWFkQmxvY2spO1xuICBvcChPcC5Db21waWxlQmxvY2spO1xuICBvcChPcC5IYXNCbG9ja1BhcmFtcyk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLklmSW5saW5lLCAob3AsIFssIGNvbmRpdGlvbiwgdHJ1dGh5LCBmYWxzeV0pID0+IHtcbiAgLy8gUHVzaCBpbiByZXZlcnNlIG9yZGVyXG4gIGV4cHIob3AsIGZhbHN5KTtcbiAgZXhwcihvcCwgdHJ1dGh5KTtcbiAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgb3AoT3AuSWZJbmxpbmUpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Ob3QsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuTm90KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RHluYW1pY1ZhciwgKG9wLCBbLCBleHByZXNzaW9uXSkgPT4ge1xuICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgb3AoT3AuR2V0RHluYW1pY1Zhcik7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkxvZywgKG9wLCBbLCBwb3NpdGlvbmFsXSkgPT4ge1xuICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbnVsbCwgZmFsc2UpO1xuICBvcChPcC5Mb2cpO1xuICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICBvcChPcC5GZXRjaCwgJHYwKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFPQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFTyxNQUFNLFdBQVcsR0FBRyxJQUFwQixvQkFBb0IsRUFBcEI7O0FBRVAsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBb0MsQ0FBQSxFQUFBLEVBQUssR0FBTCxLQUFLLENBQUwsS0FBa0I7QUFDcEQsT0FBSyxJQUFMLElBQUEsSUFBQSxLQUFBLEVBQXdCO0FBQ3RCLG9CQUFJLEVBQUosRUFBQSxJQUFBO0FBQ0Q7O0FBRUQsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQVksS0FBSyxDQUFuQixNQUFFLENBQUY7QUFMRixDQUFBO0FBUUEsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBa0MsQ0FBQSxFQUFBLEVBQUssR0FBQSxVQUFBLEVBQUEsVUFBQSxFQUFMLEtBQUssQ0FBTCxLQUEwQztBQUMxRSxNQUFJLGlDQUFKLFVBQUksQ0FBSixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxVQUFBLEVBQXVELE1BQUQsSUFBbUI7QUFDekUscUJBQUksRUFBSixFQUFJLE1BQUosRUFBSSxVQUFKLEVBQUEsS0FBQTtBQURGLEtBQUUsQ0FBRjtBQURGLEdBQUEsTUFJTztBQUNMLG9CQUFJLEVBQUosRUFBQSxVQUFBO0FBQ0EsMEJBQVcsRUFBWCxFQUFXLFVBQVgsRUFBQSxLQUFBO0FBQ0Q7QUFSSCxDQUFBO0FBV0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBbUMsQ0FBQSxFQUFBLEVBQUssR0FBQSxJQUFBLEVBQUEsSUFBQSxFQUFBLFVBQUEsRUFBTCxLQUFLLENBQUwsS0FBMEM7QUFDM0Usa0JBQUssRUFBTCxFQUFLLElB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UmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgJHYwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgYXNzZXJ0LCBkZXByZWNhdGUgfSBmcm9tICdAZ2xpbW1lci9nbG9iYWwtY29udGV4dCc7XG5pbXBvcnQgeyBleHByIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9leHByJztcbmltcG9ydCB7IGlzR2V0RnJlZUhlbHBlciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvcmVzb2x1dGlvbic7XG5pbXBvcnQgeyBTaW1wbGVBcmdzIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9zaGFyZWQnO1xuaW1wb3J0IHsgQ2FsbCwgQ2FsbER5bmFtaWMsIEN1cnJ5LCBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy92bSc7XG5pbXBvcnQgeyBDb21waWxlcnMsIFB1c2hFeHByZXNzaW9uT3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5cbmV4cG9ydCBjb25zdCBFWFBSRVNTSU9OUyA9IG5ldyBDb21waWxlcnM8UHVzaEV4cHJlc3Npb25PcCwgRXhwcmVzc2lvblNleHBPcGNvZGU+KCk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Db25jYXQsIChvcCwgWywgcGFydHNdKSA9PiB7XG4gIGZvciAobGV0IHBhcnQgb2YgcGFydHMpIHtcbiAgICBleHByKG9wLCBwYXJ0KTtcbiAgfVxuXG4gIG9wKE9wLkNvbmNhdCwgcGFydHMubGVuZ3RoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ2FsbCwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUhlbHBlcihleHByZXNzaW9uKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUhlbHBlciwgZXhwcmVzc2lvbiwgKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgICBDYWxsKG9wLCBoYW5kbGUsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgICBDYWxsRHluYW1pYyhvcCwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICB9XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkN1cnJ5LCAob3AsIFssIGV4cHIsIHR5cGUsIHBvc2l0aW9uYWwsIG5hbWVkXSkgPT4ge1xuICBDdXJyeShvcCwgdHlwZSwgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChPcC5HZXRWYXJpYWJsZSwgc3ltKTtcbiAgd2l0aFBhdGgob3AsIHBhdGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCwgKG9wLCBbLCBzeW0sIHBhdGhdKSA9PiB7XG4gIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZVRlbXBsYXRlTG9jYWwsIHN5bSwgKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgd2l0aFBhdGgob3AsIHBhdGgpO1xuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSwgKG9wLCBbLCBzeW0sIF9wYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVGcmVlLCBzeW0sIChfaGFuZGxlOiB1bmtub3duKSA9PiB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IGluIHN0cmljdCBtb2RlXG4gIH0pO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNGYWxsYmFjaywgKG9wLCBbLCAsIHBhdGhdKSA9PiB7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssICgpID0+IHtcbiAgLy8gVE9ETzogVGhlIGxvZ2ljIGZvciB0aGlzIG9wY29kZSBjdXJyZW50bHkgZXhpc3RzIGluIFNUQVRFTUVOVFMuQXBwZW5kLCBzaW5jZVxuICAvLyB3ZSB3YW50IGRpZmZlcmVudCB3cmFwcGluZyBsb2dpYyBkZXBlbmRpbmcgb24gaWYgd2UgYXJlIGludm9raW5nIGEgY29tcG9uZW50LFxuICAvLyBoZWxwZXIsIG9yIHt7dGhpc319IGZhbGxiYWNrLiBFdmVudHVhbGx5IHdlIGZpeCB0aGUgb3Bjb2RlcyBzbyB0aGF0IHdlIGNhblxuICAvLyB0cmF2ZXJzZSB0aGUgc3ViZXhwcmVzc2lvbiB0cmVlIGxpa2Ugbm9ybWFsIGluIHRoaXMgbG9jYXRpb24uXG4gIHRocm93IG5ldyBFcnJvcigndW5pbXBsZW1lbnRlZCBvcGNvZGUnKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrLCAob3AsIGV4cHIpID0+IHtcbiAgLy8gPGRpdiBpZD17e2Jhen19PlxuXG4gIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUxvY2FsLCBleHByWzFdLCAoX25hbWU6IHN0cmluZykgPT4ge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU9wdGlvbmFsSGVscGVyLCBleHByLCB7XG4gICAgICBpZkhlbHBlcjogKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgICAgIENhbGwob3AsIGhhbmRsZSwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzRGVwcmVjYXRlZEhlbHBlckhlYWRPclRoaXNGYWxsYmFjaywgKG9wLCBleHByKSA9PiB7XG4gIC8vIDxGb28gQGJhcj17e2Jhen19PlxuXG4gIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUxvY2FsLCBleHByWzFdLCAoX25hbWU6IHN0cmluZykgPT4ge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU9wdGlvbmFsSGVscGVyLCBleHByLCB7XG4gICAgICBpZkhlbHBlcjogKGhhbmRsZTogbnVtYmVyLCBuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBhc3NlcnQoZXhwclsyXSAmJiBleHByWzJdLmxlbmd0aCA9PT0gMSwgJ1tCVUddIE1pc3NpbmcgYXJndW1lbnQgbmFtZScpO1xuXG4gICAgICAgIGxldCBhcmcgPSBleHByWzJdWzBdO1xuXG4gICAgICAgIGRlcHJlY2F0ZShcbiAgICAgICAgICBgVGhlIFxcYCR7bmFtZX1cXGAgaGVscGVyIHdhcyB1c2VkIGluIHRoZSBcXGAke21vZHVsZU5hbWV9XFxgIHRlbXBsYXRlIGFzIFxcYCR7YXJnfT17eyR7bmFtZX19fVxcYC4gYCArXG4gICAgICAgICAgICBgVGhpcyBpcyBhbWJpZ2lvdXMgYmV0d2VlbiB3YW50aW5nIHRoZSBcXGAke2FyZ31cXGAgYXJndW1lbnQgdG8gYmUgdGhlIFxcYCR7bmFtZX1cXGAgaGVscGVyIGl0c2VsZiwgYCArXG4gICAgICAgICAgICBgb3IgdGhlIHJlc3VsdCBvZiBpbnZva2luZyB0aGUgXFxgJHtuYW1lfVxcYCBoZWxwZXIgKGN1cnJlbnQgYmVoYXZpb3IpLiBgICtcbiAgICAgICAgICAgIGBUaGlzIGltcGxpY2l0IGludm9jYXRpb24gYmVoYXZpb3IgaGFzIGJlZW4gZGVwcmVjYXRlZC5cXG5cXG5gICtcbiAgICAgICAgICAgIGBJbnN0ZWFkLCBwbGVhc2UgZXhwbGljaXRseSBpbnZva2UgdGhlIGhlbHBlciB3aXRoIHBhcmVudGhlc2lzLCBpLmUuIFxcYCR7YXJnfT17eygke25hbWV9KX19XFxgLlxcblxcbmAgK1xuICAgICAgICAgICAgYE5vdGU6IHRoZSBwYXJlbnRoZXNpcyBhcmUgb25seSByZXF1aXJlZCBpbiB0aGlzIGV4YWN0IHNjZW5hcmlvIHdoZXJlIGFuIGFtYmlndWl0eSBpcyBwcmVzZW50IOKAkyB3aGVyZSBgICtcbiAgICAgICAgICAgIGBcXGAke25hbWV9XFxgIHJlZmVyZXMgdG8gYSBnbG9iYWwgaGVscGVyIChhcyBvcHBvc2VkIHRvIGEgbG9jYWwgdmFyaWFibGUpLCBBTkQgYCArXG4gICAgICAgICAgICBgdGhlIFxcYCR7bmFtZX1cXGAgaGVscGVyIGludm9jYXRpb24gZG9lcyBub3QgdGFrZSBhbnkgYXJndW1lbnRzLCBBTkQgYCArXG4gICAgICAgICAgICBgdGhpcyBvY2N1cnMgaW4gYSBuYW1lZCBhcmd1bWVudCBwb3NpdGlvbiBvZiBhIGNvbXBvbmVudCBpbnZvY2F0aW9uLlxcblxcbmAgK1xuICAgICAgICAgICAgYFdlIGV4cGVjdCB0aGlzIGNvbWJpbmF0aW9uIHRvIGJlIHF1aXRlIHJhcmUsIGFzIG1vc3QgaGVscGVycyByZXF1aXJlIGF0IGxlYXN0IG9uZSBhcmd1bWVudC4gYCArXG4gICAgICAgICAgICBgVGhlcmUgaXMgbm8gbmVlZCB0byByZWZhY3RvciBoZWxwZXIgaW52b2NhdGlvbnMgaW4gY2FzZXMgd2hlcmUgdGhpcyBkZXByZWNhdGlvbiB3YXMgbm90IHRyaWdnZXJlZC5gLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnYXJndW1lbnQtbGVzcy1oZWxwZXItcGFyZW4tbGVzcy1pbnZvY2F0aW9uJyxcbiAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmZ1bmN0aW9uIHdpdGhQYXRoKG9wOiBQdXNoRXhwcmVzc2lvbk9wLCBwYXRoPzogc3RyaW5nW10pIHtcbiAgaWYgKHBhdGggPT09IHVuZGVmaW5lZCB8fCBwYXRoLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aC5sZW5ndGg7IGkrKykge1xuICAgIG9wKE9wLkdldFByb3BlcnR5LCBwYXRoW2ldKTtcbiAgfVxufVxuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuVW5kZWZpbmVkLCAob3ApID0+IFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCkpO1xuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkhhc0Jsb2NrLCAob3AsIFssIGJsb2NrXSkgPT4ge1xuICBleHByKG9wLCBibG9jayk7XG4gIG9wKE9wLkhhc0Jsb2NrKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuSGFzQmxvY2tQYXJhbXMsIChvcCwgWywgYmxvY2tdKSA9PiB7XG4gIGV4cHIob3AsIGJsb2NrKTtcbiAgb3AoT3AuU3ByZWFkQmxvY2spO1xuICBvcChPcC5Db21waWxlQmxvY2spO1xuICBvcChPcC5IYXNCbG9ja1BhcmFtcyk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLklmSW5saW5lLCAob3AsIFssIGNvbmRpdGlvbiwgdHJ1dGh5LCBmYWxzeV0pID0+IHtcbiAgLy8gUHVzaCBpbiByZXZlcnNlIG9yZGVyXG4gIGV4cHIob3AsIGZhbHN5KTtcbiAgZXhwcihvcCwgdHJ1dGh5KTtcbiAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgb3AoT3AuSWZJbmxpbmUpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Ob3QsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuTm90KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RHluYW1pY1ZhciwgKG9wLCBbLCBleHByZXNzaW9uXSkgPT4ge1xuICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgb3AoT3AuR2V0RHluYW1pY1Zhcik7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkxvZywgKG9wLCBbLCBwb3NpdGlvbmFsXSkgPT4ge1xuICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbnVsbCwgZmFsc2UpO1xuICBvcChPcC5Mb2cpO1xuICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICBvcChPcC5GZXRjaCwgJHYwKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==

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

var _globalContext = require("@glimmer/global-context");
var _vm = require("@glimmer/vm");

@@ -176,23 +174,2 @@

});
STATEMENTS.add(19
/* Partial */
, (op, [, name, evalInfo]) => {
(0, _conditional.ReplayableIf)(op, () => {
(0, _expr.expr)(op, name);
op(33
/* Dup */
, _vm.$sp, 0);
return 2;
}, () => {
op(101
/* InvokePartial */
, (0, _operands.evalSymbolsOperand)(), evalInfo);
op(40
/* PopScope */
);
op(1
/* PopFrame */
);
});
});
STATEMENTS.add(18

@@ -251,27 +228,2 @@ /* Yield */

);
},
ifFallback(_name) {
op(0
/* PushFrame */
);
op(1010
/* ResolveLocal */
, value[1], (name, moduleName) => {
(0, _globalContext.deprecate)(`The \`${name}\` property was used in the \`${moduleName}\` template without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, {
id: 'this-property-fallback'
});
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
});
op(3
/* InvokeStatic */
, (0, _operands.stdlibOperand)('cautious-append'));
op(1
/* PopFrame */
);
}

@@ -547,2 +499,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBY0E7O0FBQ0E7O0FBS0E7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBRU8sTUFBTSxVQUFVLEdBQUcsSUFBbkIsb0JBQW1CLEVBQW5COztBQUVQLE1BQU0sa0JBQWtCLEdBRXBCLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBRkosTUFFSSxDQUZKO0FBR0EsTUFBTSxpQkFBaUIsR0FFbkIsQ0FBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLEdBQUEsRUFGSixHQUVJLENBRko7O0FBSU0sU0FBQSxjQUFBLENBQUEsT0FBQSxFQUEyRDtBQUMvRCxTQUFPLE9BQUEsT0FBQSxLQUFBLFFBQUEsR0FBQSxPQUFBLEdBQXdDLGlCQUFpQixDQUFoRSxPQUFnRSxDQUFoRTtBQUNEOztBQUVLLFNBQUEsZUFBQSxDQUFBLFFBQUEsRUFBOEQ7QUFDbEUsU0FBTyxPQUFBLFFBQUEsS0FBQSxRQUFBLEdBQUEsUUFBQSxHQUEwQyxrQkFBa0IsQ0FBbkUsUUFBbUUsQ0FBbkU7QUFDRDs7QUFFRCxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUFvQyxDQUFBLEVBQUEsRUFBQSxJQUFBLEtBQWMsRUFBRSxDQUFBO0FBQUE7QUFBQSxFQUFhLElBQUksQ0FBckUsQ0FBcUUsQ0FBakIsQ0FBcEQ7QUFDQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUEwQyxFQUFELElBQVEsRUFBRSxDQUFBO0FBQUE7QUFBQSxDQUFuRDtBQUNBLFVBQVUsQ0FBVixHQUFBLENBQWM7QUFBQTtBQUFkLEVBQTBDLEVBQUQsSUFBUSxFQUFFLENBQUE7QUFBQTtBQUFBLENB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Q0FBNEMsQ0FBckMsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVwcmVjYXRlIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHtcbiAgQ29tcGlsZVRpbWVDb21wb25lbnQsXG4gIENvbnRlbnRUeXBlLFxuICBIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLFxuICBIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLFxuICBNYWNoaW5lT3AsXG4gIE9wLFxuICBTZXhwT3Bjb2RlcyxcbiAgU3RhdGVtZW50U2V4cE9wY29kZSxcbiAgV2VsbEtub3duQXR0ck5hbWUsXG4gIFdlbGxLbm93blRhZ05hbWUsXG4gIFdpcmVGb3JtYXQsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgJGZwLCAkc3AgfSBmcm9tICdAZ2xpbW1lci92bSc7XG5pbXBvcnQge1xuICBJbnZva2VTdGF0aWNCbG9jayxcbiAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2ssXG4gIFlpZWxkQmxvY2ssXG59IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvYmxvY2tzJztcbmltcG9ydCB7XG4gIEludm9rZUNvbXBvbmVudCxcbiAgSW52b2tlRHluYW1pY0NvbXBvbmVudCxcbiAgSW52b2tlTm9uU3RhdGljQ29tcG9uZW50LFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgU3dpdGNoQ2FzZXMsIFJlcGxheWFibGUsIFJlcGxheWFibGVJZiB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvY29uZGl0aW9uYWwnO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvZXhwcic7XG5pbXBvcnQgeyBDb21waWxlUG9zaXRpb25hbCwgU2ltcGxlQXJncyB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcbmltcG9ydCB7XG4gIENhbGwsXG4gIENhbGxEeW5hbWljLFxuICBEeW5hbWljU2NvcGUsXG4gIFB1c2hQcmltaXRpdmVSZWZlcmVuY2UsXG59IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvdm0nO1xuaW1wb3J0IHsgZXZhbFN5bWJvbHNPcGVyYW5kLCBsYWJlbE9wZXJhbmQsIHN0ZGxpYk9wZXJhbmQgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9vcGVyYW5kcyc7XG5pbXBvcnQgeyBDb21waWxlcnMsIFB1c2hTdGF0ZW1lbnRPcCB9IGZyb20gJy4vY29tcGlsZXJzJztcbmltcG9ydCB7XG4gIGlzR2V0RnJlZUNvbXBvbmVudCxcbiAgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIsXG4gIGlzR2V0RnJlZU1vZGlmaWVyLFxuICBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgbmFtZWRCbG9ja3MgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBTVEFURU1FTlRTID0gbmV3IENvbXBpbGVyczxQdXNoU3RhdGVtZW50T3AsIFN0YXRlbWVudFNleHBPcGNvZGU+KCk7XG5cbmNvbnN0IElORkxBVEVfQVRUUl9UQUJMRToge1xuICBbSSBpbiBXZWxsS25vd25BdHRyTmFtZV06IHN0cmluZztcbn0gPSBbJ2NsYXNzJywgJ2lkJywgJ3ZhbHVlJywgJ25hbWUnLCAndHlwZScsICdzdHlsZScsICdocmVmJ107XG5jb25zdCBJTkZMQVRFX1RBR19UQUJMRToge1xuICBbSSBpbiBXZWxsS25vd25UYWdOYW1lXTogc3RyaW5nO1xufSA9IFsnZGl2JywgJ3NwYW4nLCAncCcsICdhJ107XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlVGFnTmFtZSh0YWdOYW1lOiBzdHJpbmcgfCBXZWxsS25vd25UYWdOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiB0YWdOYW1lID09PSAnc3RyaW5nJyA/IHRhZ05hbWUgOiBJTkZMQVRFX1RBR19UQUJMRVt0YWdOYW1lXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluZmxhdGVBdHRyTmFtZShhdHRyTmFtZTogc3RyaW5nIHwgV2VsbEtub3duQXR0ck5hbWUpOiBzdHJpbmcge1xuICByZXR1cm4gdHlwZW9mIGF0dHJOYW1lID09PSAnc3RyaW5nJyA/IGF0dHJOYW1lIDogSU5GTEFURV9BVFRSX1RBQkxFW2F0dHJOYW1lXTtcbn1cblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tbWVudCwgKG9wLCBzZXhwKSA9PiBvcChPcC5Db21tZW50LCBzZXhwWzFdKSk7XG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5DbG9zZUVsZW1lbnQsIChvcCkgPT4gb3AoT3AuQ2xvc2VFbGVtZW50KSk7XG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5GbHVzaEVsZW1lbnQsIChvcCkgPT4gb3AoT3AuRmx1c2hFbGVtZW50KSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLk1vZGlmaWVyLCAob3AsIFssIGV4cHJlc3Npb24sIHBvc2l0aW9uYWwsIG5hbWVkXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlTW9kaWZpZXIoZXhwcmVzc2lvbikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVNb2RpZmllciwgZXhwcmVzc2lvbiwgKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gICAgICBvcChPcC5Nb2RpZmllciwgaGFuZGxlKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsIGZhbHNlKTtcbiAgICBvcChPcC5EdXAsICRmcCwgMSk7XG4gICAgb3AoT3AuRHluYW1pY01vZGlmaWVyKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuU3RhdGljQXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBvcChPcC5TdGF0aWNBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHZhbHVlIGFzIHN0cmluZywgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlN0YXRpY0NvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgb3AoT3AuU3RhdGljQ29tcG9uZW50QXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB2YWx1ZSBhcyBzdHJpbmcsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5EeW5hbWljQXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkR5bmFtaWNBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIGZhbHNlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuVHJ1c3RpbmdEeW5hbWljQXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkR5bmFtaWNBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHRydWUsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Db21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuQ29tcG9uZW50QXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCBmYWxzZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkNvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdHJ1ZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLk9wZW5FbGVtZW50LCAob3AsIFssIHRhZ10pID0+IHtcbiAgb3AoT3AuT3BlbkVsZW1lbnQsIGluZmxhdGVUYWdOYW1lKHRhZykpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLk9wZW5FbGVtZW50V2l0aFNwbGF0LCAob3AsIFssIHRhZ10pID0+IHtcbiAgb3AoT3AuUHV0Q29tcG9uZW50T3BlcmF0aW9ucyk7XG4gIG9wKE9wLk9wZW5FbGVtZW50LCBpbmZsYXRlVGFnTmFtZSh0YWcpKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Db21wb25lbnQsIChvcCwgWywgZXhwciwgZWxlbWVudEJsb2NrLCBuYW1lZCwgYmxvY2tzXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50LCBleHByLCAoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkgPT4ge1xuICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIGVsZW1lbnRCbG9jaywgbnVsbCwgbmFtZWQsIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgLy8gb3RoZXJ3aXNlLCB0aGUgY29tcG9uZW50IG5hbWUgd2FzIGFuIGV4cHJlc3Npb24sIHNvIHJlc29sdmUgdGhlIGV4cHJlc3Npb25cbiAgICAvLyBhbmQgaW52b2tlIGl0IGFzIGEgZHluYW1pYyBjb21wb25lbnRcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBlbGVtZW50QmxvY2ssIG51bGwsIG5hbWVkLCBibG9ja3MsIHRydWUsIHRydWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuUGFydGlhbCwgKG9wLCBbLCBuYW1lLCBldmFsSW5mb10pID0+IHtcbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIG5hbWUpO1xuICAgICAgb3AoT3AuRHVwLCAkc3AsIDApO1xuXG4gICAgICByZXR1cm4gMjtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgb3AoT3AuSW52b2tlUGFydGlhbCwgZXZhbFN5bWJvbHNPcGVyYW5kKCksIGV2YWxJbmZvKTtcbiAgICAgIG9wKE9wLlBvcFNjb3BlKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLllpZWxkLCAob3AsIFssIHRvLCBwYXJhbXNdKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgcGFyYW1zKSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkF0dHJTcGxhdCwgKG9wLCBbLCB0b10pID0+IFlpZWxkQmxvY2sob3AsIHRvLCBudWxsKSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkRlYnVnZ2VyLCAob3AsIFssIGV2YWxJbmZvXSkgPT5cbiAgb3AoT3AuRGVidWdnZXIsIGV2YWxTeW1ib2xzT3BlcmFuZCgpLCBldmFsSW5mbylcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkFwcGVuZCwgKG9wLCBbLCB2YWx1ZV0pID0+IHtcbiAgLy8gU3BlY2lhbCBjYXNlIGZvciBzdGF0aWMgdmFsdWVzXG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBvcChPcC5UZXh0LCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gJycgOiBTdHJpbmcodmFsdWUpKTtcbiAgfSBlbHNlIGlmIChpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKHZhbHVlKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIsIHZhbHVlLCB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSB7XG4gICAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBudWxsLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmSGVscGVyKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIG51bGwsIG51bGwpO1xuICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICB9LFxuXG4gICAgICBpZlZhbHVlKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBvcChPcC5Db25zdGFudFJlZmVyZW5jZSwgaGFuZGxlKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcblxuICAgICAgaWZGYWxsYmFjayhfbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgdmFsdWVbMV0sIChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGRlcHJlY2F0ZShcbiAgICAgICAgICAgIGBUaGUgXFxgJHtuYW1lfVxcYCBwcm9wZXJ0eSB3YXMgdXNlZCBpbiB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCB0ZW1wbGF0ZSB3aXRob3V0IHVzaW5nIFxcYHRoaXNcXGAuIFRoaXMgZmFsbGJhY2sgYmVoYXZpb3IgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYWxsIHByb3BlcnRpZXMgbXVzdCBiZSBsb29rZWQgdXAgb24gXFxgdGhpc1xcYCB3aGVuIHVzZWQgaW4gdGhlIHRlbXBsYXRlOiB7e3RoaXMuJHtuYW1lfX19YCxcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogJ3RoaXMtcHJvcGVydHktZmFsbGJhY2snLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgICAgICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSBlbHNlIGlmICh2YWx1ZVswXSA9PT0gU2V4cE9wY29kZXMuQ2FsbCkge1xuICAgIGxldCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0gPSB2YWx1ZTtcblxuICAgIGlmIChpc0dldEZyZWVDb21wb25lbnRPckhlbHBlcihleHByZXNzaW9uKSkge1xuICAgICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50T3JIZWxwZXIsIGV4cHJlc3Npb24sIHtcbiAgICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkge1xuICAgICAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgbnVsbCk7XG4gICAgICAgIH0sXG4gICAgICAgIGlmSGVscGVyKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gICAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgU3dpdGNoQ2FzZXMoXG4gICAgICAgIG9wLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgb3AoT3AuRHluYW1pY0NvbnRlbnRUeXBlKTtcbiAgICAgICAgfSxcbiAgICAgICAgKHdoZW4pID0+IHtcbiAgICAgICAgICB3aGVuKENvbnRlbnRUeXBlLkNvbXBvbmVudCwgKCkgPT4ge1xuICAgICAgICAgICAgb3AoT3AuUmVzb2x2ZUN1cnJpZWRDb21wb25lbnQpO1xuICAgICAgICAgICAgb3AoT3AuUHVzaER5bmFtaWNDb21wb25lbnRJbnN0YW5jZSk7XG4gICAgICAgICAgICBJbnZva2VOb25TdGF0aWNDb21wb25lbnQob3AsIHtcbiAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzOiB0cnVlLFxuICAgICAgICAgICAgICBlbGVtZW50QmxvY2s6IG51bGwsXG4gICAgICAgICAgICAgIHBvc2l0aW9uYWwsXG4gICAgICAgICAgICAgIG5hbWVkLFxuICAgICAgICAgICAgICBhdE5hbWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgYmxvY2tzOiBuYW1lZEJsb2NrcyhudWxsKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgd2hlbihDb250ZW50VHlwZS5IZWxwZXIsICgpID0+IHtcbiAgICAgICAgICAgIENhbGxEeW5hbWljKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgKCkgPT4ge1xuICAgICAgICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgZXhwcihvcCwgdmFsdWUpO1xuICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLWFwcGVuZCcpKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuVHJ1c3RpbmdBcHBlbmQsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBvcChPcC5UZXh0LCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gJycgOiBTdHJpbmcodmFsdWUpKTtcbiAgfSBlbHNlIHtcbiAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICBleHByKG9wLCB2YWx1ZSk7XG4gICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgndHJ1c3RpbmctYXBwZW5kJykpO1xuICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5CbG9jaywgKG9wLCBbLCBleHByLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50LCBleHByLCAoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkgPT4ge1xuICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIG51bGwsIHBvc2l0aW9uYWwsIGhhc2hUb0FyZ3MobmFtZWQpLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIEludm9rZUR5bmFtaWNDb21wb25lbnQob3AsIGV4cHIsIG51bGwsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3MsIGZhbHNlLCBmYWxzZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5JbkVsZW1lbnQsIChvcCwgWywgYmxvY2ssIGd1aWQsIGRlc3RpbmF0aW9uLCBpbnNlcnRCZWZvcmVdKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIGd1aWQpO1xuXG4gICAgICBpZiAoaW5zZXJ0QmVmb3JlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgdW5kZWZpbmVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4cHIob3AsIGluc2VydEJlZm9yZSk7XG4gICAgICB9XG5cbiAgICAgIGV4cHIob3AsIGRlc3RpbmF0aW9uKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcblxuICAgICAgcmV0dXJuIDQ7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLlB1c2hSZW1vdGVFbGVtZW50KTtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gICAgICBvcChPcC5Qb3BSZW1vdGVFbGVtZW50KTtcbiAgICB9XG4gICk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSWYsIChvcCwgWywgY29uZGl0aW9uLCBibG9jaywgaW52ZXJzZV0pID0+XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBjb25kaXRpb24pO1xuICAgICAgb3AoT3AuVG9Cb29sZWFuKTtcblxuICAgICAgcmV0dXJuIDE7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gICAgfSxcblxuICAgIGludmVyc2VcbiAgICAgID8gKCkgPT4ge1xuICAgICAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBpbnZlcnNlKTtcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWRcbiAgKVxuKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRWFjaCwgKG9wLCBbLCB2YWx1ZSwga2V5LCBibG9jaywgaW52ZXJzZV0pID0+XG4gIFJlcGxheWFibGUoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBpZiAoa2V5KSB7XG4gICAgICAgIGV4cHIob3AsIGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wLCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgZXhwcihvcCwgdmFsdWUpO1xuXG4gICAgICByZXR1cm4gMjtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgb3AoT3AuRW50ZXJMaXN0LCBsYWJlbE9wZXJhbmQoJ0JPRFknKSwgbGFiZWxPcGVyYW5kKCdFTFNFJykpO1xuICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICBvcChPcC5EdXAsICRmcCwgMSk7XG4gICAgICBvcChNYWNoaW5lT3AuUmV0dXJuVG8sIGxhYmVsT3BlcmFuZCgnSVRFUicpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdJVEVSJyk7XG4gICAgICBvcChPcC5JdGVyYXRlLCBsYWJlbE9wZXJhbmQoJ0JSRUFLJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0JPRFknKTtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrKG9wLCBibG9jaywgMik7XG4gICAgICBvcChPcC5Qb3AsIDIpO1xuICAgICAgb3AoTWFjaGluZU9wLkp1bXAsIGxhYmVsT3BlcmFuZCgnRklOQUxMWScpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdCUkVBSycpO1xuICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIG9wKE9wLkV4aXRMaXN0KTtcbiAgICAgIG9wKE1hY2hpbmVPcC5KdW1wLCBsYWJlbE9wZXJhbmQoJ0ZJTkFMTFknKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnRUxTRScpO1xuXG4gICAgICBpZiAoaW52ZXJzZSkge1xuICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICB9XG4gICAgfVxuICApXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5XaXRoLCAob3AsIFssIHZhbHVlLCBibG9jaywgaW52ZXJzZV0pID0+IHtcbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgdmFsdWUpO1xuICAgICAgb3AoT3AuRHVwLCAkc3AsIDApO1xuICAgICAgb3AoT3AuVG9Cb29sZWFuKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrKG9wLCBibG9jaywgMSk7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIGlmIChpbnZlcnNlKSB7XG4gICAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBpbnZlcnNlKTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuTGV0LCAob3AsIFssIHBvc2l0aW9uYWwsIGJsb2NrXSkgPT4ge1xuICBsZXQgY291bnQgPSBDb21waWxlUG9zaXRpb25hbChvcCwgcG9zaXRpb25hbCk7XG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrKG9wLCBibG9jaywgY291bnQpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLldpdGhEeW5hbWljVmFycywgKG9wLCBbLCBuYW1lZCwgYmxvY2tdKSA9PiB7XG4gIGlmIChuYW1lZCkge1xuICAgIGxldCBbbmFtZXMsIGV4cHJlc3Npb25zXSA9IG5hbWVkO1xuXG4gICAgQ29tcGlsZVBvc2l0aW9uYWwob3AsIGV4cHJlc3Npb25zKTtcbiAgICBEeW5hbWljU2NvcGUob3AsIG5hbWVzLCAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5JbnZva2VDb21wb25lbnQsIChvcCwgWywgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBudWxsLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzLCBmYWxzZSwgZmFsc2UpO1xuICB9XG59KTtcblxuZnVuY3Rpb24gaGFzaFRvQXJncyhoYXNoOiBXaXJlRm9ybWF0LkNvcmUuSGFzaCB8IG51bGwpOiBXaXJlRm9ybWF0LkNvcmUuSGFzaCB8IG51bGwge1xuICBpZiAoaGFzaCA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gIGxldCBuYW1lcyA9IGhhc2hbMF0ubWFwKChrZXkpID0+IGBAJHtrZXl9YCk7XG4gIHJldHVybiBbbmFtZXMgYXMgW3N0cmluZywgLi4uc3RyaW5nW11dLCBoYXNoWzFdXTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBYUE7O0FBQ0E7O0FBS0E7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBRU8sTUFBTSxVQUFVLEdBQUcsSUFBbkIsb0JBQW1CLEVBQW5COztBQUVQLE1BQU0sa0JBQWtCLEdBRXBCLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBRkosTUFFSSxDQUZKO0FBR0EsTUFBTSxpQkFBaUIsR0FFbkIsQ0FBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLEdBQUEsRUFGSixHQUVJLENBRko7O0FBSU0sU0FBQSxjQUFBLENBQUEsT0FBQSxFQUEyRDtBQUMvRCxTQUFPLE9BQUEsT0FBQSxLQUFBLFFBQUEsR0FBQSxPQUFBLEdBQXdDLGlCQUFpQixDQUFoRSxPQUFnRSxDQUFoRTtBQUNEOztBQUVLLFNBQUEsZUFBQSxDQUFBLFFBQUEsRUFBOEQ7QUFDbEUsU0FBTyxPQUFBLFFBQUEsS0FBQSxRQUFBLEdBQUEsUUFBQSxHQUEwQyxrQkFBa0IsQ0FBbkUsUUFBbUUsQ0FBbkU7QUFDRDs7QUFFRCxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUFvQyxDQUFBLEVBQUEsRUFBQSxJQUFBLEtBQWMsRUFBRSxDQUFBO0FBQUE7QUFBQSxFQUFhLElBQUksQ0FBckUsQ0FBcUUsQ0FBakIsQ0FBcEQ7QUFDQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUEwQyxFQUFELElBQVEsRUFBRSxDQUFBO0FBQUE7QUFBQSxDQUFuRDtBQUNBLFVBQVUsQ0FBVixHQUFBLENBQWM7QUFBQTtBQUFkLEVBQTBDLEVBQUQsSUFBUSxFQUFFLENBQUE7QUFBQTtBQUFBLENBQW5EO0FBRUEsVUFBVSxDQUFWLEdBQUEsQ0FBYztBQUFBO0FBQWQsRUFBcUMsQ0FBQSxFQUFBLEVBQUssR0FBQSxVQUFBLEVBQUEsVUFBQSxFQUFMLEtBQUssQ0FBTCxLQUEwQztBQUM3RSxNQUFJLG1DQUFKLFVBQUksQ0FBSixFQUFtQztBQUNqQyxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxVQUFBLEVBQXlELE1BQUQsSUFBbUI7QUFDM0UsTUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE9BQUY7QUFDQSw4QkFBVSxFQUFWLEVBQVUsVUFBVixFQUFVLEtBQVYsRUFBQSxLQUFBO0FBQ0EsTUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLFFBQUYsTUFBRSxDQUFGO0FBQ0EsTUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE9BQUY7QUFKRixLQUFFLENBQUY7QUFERixHQUFBLE1BT087QUFDTCxvQkFBSSxFQUFKLEVBQUEsVUFBQTtBQUNBLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxLQUFGO0FBQ0EsNEJBQVUsRUFBVixFQUFVLFVBQVYsRUFBVSxLQUFWLEVBQUEsS0FBQTtBQUNBLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxNQUFBLE9BQUEsRUFBRixDQUFFLENBQUY7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsS0FBRjtBQUNBLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxLQUFGO0FBQ0Q7QUFmSCxDQUFBO0FBa0JBLFVBQVUsQ0FBVixHQUFBLENBQWM7QUFBQTtBQUFkLEVBQXVDLENBQUEsRUFBQSxFQUFLLEdBQUEsSUFBQSxFQUFBLEtBQUEsRUFBTCxTQUFLLENBQUwsS0FBbUM7QUFDeEUsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQWdCLGVBQWUsQ0FBL0IsSUFBK0IsQ0FBL0IsRUFBQSxLQUFBLEVBQXdELFNBQVMsS0FBVCxJQUFBLElBQUEsU0FBUyxLQUFBLEtBQVQsQ0FBQSxHQUFBLFNBQUEsR0FBMUQsSUFBRSxDQUFGO0FBREYsQ0FBQTtBQUlBLFVBQVUsQ0FBVixHQUFBLENBQWM7QUFBQTtBQUFkLEVBQWdELENBQUEsRUFBQSxFQUFLLEdBQUEsSUFBQSxFQUFBLEtBQUEsRUFBTCxTQUFLLENBQUwsS0FBbUM7QUFDakYsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQXlCLGVBQWUsQ0FBeEMsSUFBd0MsQ0FBeEMsRUFBQSxLQUFBLEVBQWlFLFNBQVMsS0FBVCxJQUFBLElBQUEsU0FBUyxLQUFBLEtBQVQsQ0FBQSxHQUFBLFNBQUEsR0FBbkUsSUFBRSxDQUFGO0FBREYsQ0FBQTtBQUlBLFVBQVUsQ0FBVixHQUFBLENBQWM7QUFBQTtBQUFkLEVBQXdDLENBQUEsRUFBQSxFQUFLLEdBQUEsSUFBQSxFQUFBLEtBQUEsRUFBTCxTQUFLLENBQUwsS0FBbUM7QUFDekUsa0JBQUksRUFBSixFQUFBLEtBQUE7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBaUIsZUFBZSxDQUFoQyxJQUFnQyxDQUFoQyxFQUFBLEtBQUEsRUFBK0MsU0FBUyxLQUFULElBQUEsSUFBQSxTQUFTLEtBQUEsS0FBVCxDQUFBLEdBQUEsU0FBQSxHQUFqRCxJQUFFLENBQUY7QUFGRixDQUFBO0FBS0EsVUFBVSxDQUFWLEdBQUEsQ0FBYztBQUFBO0FBQWQsRUFBZ0QsQ0FBQSxFQUFBLEVBQUssR0FBQSxJQUFBLEVBQUEsS0FBQSxFQUFMLFNBQUssQ0FBTCxLQUFtQztBQUNqRixrQkFBSSxFQUFKLEVBQUEsS0FBQTtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFpQixlQUFlLENBQWhDLElBQWdDLENBQWhDLEVBQUEsSUFBQSxFQUE4QyxTQUFTLEtBQVQsSUFBQSxJQUFBLFNBQVMsS0FBQSxLQUFULENBQUEsR0FBQSxTQUFBLEdBQWhELElBQUUsQ0FBRjtBQUZGLENBQUE7QUFLQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUEwQyxDQUFBLEVBQUEsRUFBSyxHQUFBLElBQUEsRUFBQSxLQUFBLEVBQUwsU0FBSyxDQUFMLEtBQW1DO0FBQzNFLGtCQUFJLEVBQUosRUFBQSxLQUFBO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQW1CLGVBQWUsQ0FBbEMsSUFBa0MsQ0FBbEMsRUFBQSxLQUFBLEVBQWlELFNBQVMsS0FBVCxJQUFBLElBQUEsU0FBUyxLQUFBLEtBQVQsQ0FBQSxHQUFBLFNBQUEsR0FBbkQsSUFBRSxDQUFGO0FBRkYsQ0FBQTtBQUtBLFVBQVUsQ0FBVixHQUFBLENBQWM7QUFBQTtBQUFkLEVBQWtELENBQUEsRUFBQSxFQUFLLEdBQUEsSUFBQSxFQUFBLEtBQUEsRUFBTCxTQUFLLENBQUwsS0FBbUM7QUFDbkYsa0JBQUksRUFBSixFQUFBLEtBQUE7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBbUIsZUFBZSxDQUFsQyxJQUFrQyxDQUFsQyxFQUFBLElBQUEsRUFBZ0QsU0FBUyxLQUFULElBQUEsSUFBQSxTQUFTLEtBQUEsS0FBVCxDQUFBLEdBQUEsU0FBQSxHQUFsRCxJQUFFLENBQUY7QUFGRixDQUFBO0FBS0EsVUFBVSxDQUFWLEdBQUEsQ0FBYztBQUFBO0FBQWQsRUFBd0MsQ0FBQSxFQUFBLEVBQUssR0FBTCxHQUFLLENBQUwsS0FBZ0I7QUFDdEQsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQWlCLGNBQWMsQ0FBakMsR0FBaUMsQ0FBL0IsQ0FBRjtBQURGLENBQUE7QUFJQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUFpRCxDQUFBLEVBQUEsRUFBSyxHQUFMLEdBQUssQ0FBTCxLQUFnQjtBQUMvRCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFpQixjQUFjLENBQWpDLEdBQWlDLENBQS9CLENBQUY7QUFGRixDQUFBO0FBS0EsVUFBVSxDQUFWLEdBQUEsQ0FBYztBQUFBO0FBQWQsRUFBc0MsQ0FBQSxFQUFBLEVBQUssR0FBQSxJQUFBLEVBQUEsWUFBQSxFQUFBLEtBQUEsRUFBTCxNQUFLLENBQUwsS0FBOEM7QUFDbEYsTUFBSSxvQ0FBSixJQUFJLENBQUosRUFBOEI7QUFDNUIsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQUEsSUFBQSxFQUFvRCxTQUFELElBQW9DO0FBQ3ZGLHVDQUFlLEVBQWYsRUFBZSxTQUFmLEVBQWUsWUFBZixFQUFlLElBQWYsRUFBZSxLQUFmLEVBQUEsTUFBQTtBQURGLEtBQUUsQ0FBRjtBQURGLEdBQUEsTUFJTztBQUNMO0FBQ0E7QUFDQSw0Q0FBc0IsRUFBdEIsRUFBc0IsSUFBdEIsRUFBc0IsWUFBdEIsRUFBc0IsSUFBdEIsRUFBc0IsS0FBdEIsRUFBc0IsTUFBdEIsRUFBc0IsSUFBdEIsRUFBQSxJQUFBO0FBQ0Q7QUFUSCxDQUFBO0FBWUEsVUFBVSxDQUFWLEdBQUEsQ0FBYztBQUFBO0FBQWQsRUFBa0MsQ0FBQSxFQUFBLEVBQUssR0FBQSxFQUFBLEVBQUwsTUFBSyxDQUFMLEtBQXdCLHdCQUFVLEVBQVYsRUFBVSxFQUFWLEVBQTFELE1BQTBELENBQTFEO0FBRUEsVUFBVSxDQUFWLEdBQUEsQ0FBYztBQUFBO0FBQWQsRUFBc0MsQ0FBQSxFQUFBLEVBQUssR0FBTCxFQUFLLENBQUwsS0FBZ0Isd0JBQVUsRUFBVixFQUFVLEVBQVYsRUFBdEQsSUFBc0QsQ0FBdEQ7QUFFQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUFxQyxDQUFBLEVBQUEsRUFBSyxHQUFMLFFBQUssQ0FBTCxLQUNuQyxFQUFFLENBQUE7QUFBQTtBQUFBLEVBQUEsbUNBQUEsRUFESixRQUNJLENBREo7QUFJQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUFtQyxDQUFBLEVBQUEsRUFBSyxHQUFMLEtBQUssQ0FBTCxLQUFrQjtBQUNuRDtBQUNBLE1BQUksQ0FBQyxLQUFLLENBQUwsT0FBQSxDQUFMLEtBQUssQ0FBTCxFQUEyQjtBQUN6QixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBVSxLQUFLLEtBQUwsSUFBQSxJQUFrQixLQUFLLEtBQXZCLFNBQUEsR0FBQSxFQUFBLEdBQTZDLE1BQU0sQ0FBL0QsS0FBK0QsQ0FBN0QsQ0FBRjtBQURGLEdBQUEsTUFFTyxJQUFJLG9EQUFKLEtBQUksQ0FBSixFQUErQztBQUNwRCxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxLQUFBLEVBQW9FO0FBQ3BFLE1BQUEsV0FBVyxDQUFBLFNBQUEsRUFBZ0M7QUFDekMseUNBQWUsRUFBZixFQUFlLFNBQWYsRUFBZSxJQUFmLEVBQWUsSUFBZixFQUFlLElBQWYsRUFBQSxJQUFBO0FBRmtFLE9BQUE7O0FBS3BFLE1BQUEsUUFBUSxDQUFBLE1BQUEsRUFBZTtBQUNyQixRQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsU0FBRjtBQUNBLHVCQUFJLEVBQUosRUFBSSxNQUFKLEVBQUksSUFBSixFQUFBLElBQUE7QUFDQSxRQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsVUFBeUIsNkJBQTNCLDZCQUEyQixDQUF6QixDQUFGO0FBQ0EsUUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLFNBQUY7QUFUa0UsT0FBQTs7QUFZcEUsTUFBQSxPQUFPLENBQUEsTUFBQSxFQUFlO0FBQ3BCLFFBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxTQUFGO0FBQ0EsUUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLFVBQUYsTUFBRSxDQUFGO0FBQ0EsUUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLFVBQXlCLDZCQUEzQiw2QkFBMkIsQ0FBekIsQ0FBRjtBQUNBLFFBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxTQUFGO0FBQ0Q7O0FBakJtRSxLQUFwRSxDQUFGO0FBREssR0FBQSxNQW9CQSxJQUFJLEtBQUssQ0FBTCxDQUFLLENBQUwsS0FBUTtBQUFBO0FBQVosSUFBbUM7QUFDeEMsVUFBSSxHQUFBLFVBQUEsRUFBQSxVQUFBLEVBQUEsS0FBQSxJQUFKLEtBQUE7O0FBRUEsVUFBSSw0Q0FBSixVQUFJLENBQUosRUFBNEM7QUFDMUMsUUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLFVBQUEsVUFBQSxFQUFpRTtBQUNqRSxVQUFBLFdBQVcsQ0FBQSxTQUFBLEVBQWdDO0FBQ3pDLDZDQUFlLEVBQWYsRUFBZSxTQUFmLEVBQWUsSUFBZixFQUFlLFVBQWYsRUFBaUQsVUFBVSxDQUE1QyxLQUE0QyxDQUEzRCxFQUFBLElBQUE7QUFGK0QsV0FBQTs7QUFJakUsVUFBQSxRQUFRLENBQUEsTUFBQSxFQUFlO0FBQ3JCLFlBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxhQUFGO0FBQ0EsMkJBQUksRUFBSixFQUFJLE1BQUosRUFBSSxVQUFKLEVBQUEsS0FBQTtBQUNBLFlBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxjQUF5Qiw2QkFBM0IsNkJBQTJCLENBQXpCLENBQUY7QUFDQSxZQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsYUFBRjtBQUNEOztBQVRnRSxTQUFqRSxDQUFGO0FBREYsT0FBQSxNQVlPO0FBQ0wsc0NBQVcsRUFBWCxFQUVFLE1BQUs7QUFDSCwwQkFBSSxFQUFKLEVBQUEsVUFBQTtBQUNBLFVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxXQUFGO0FBSk8sU0FBWCxFQU1HLElBQUQsSUFBUztBQUNQLFVBQUEsSUFBSSxDQUFBO0FBQUE7QUFBQSxZQUF3QixNQUFLO0FBQy9CLFlBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxhQUFGO0FBQ0EsWUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLGFBQUY7QUFDQSxzREFBd0IsRUFBeEIsRUFBNkI7QUFDM0IsY0FBQSxZQUFZLEVBRGUsSUFBQTtBQUUzQixjQUFBLFlBQVksRUFGZSxJQUFBO0FBQUEsY0FBQSxVQUFBO0FBQUEsY0FBQSxLQUFBO0FBSzNCLGNBQUEsT0FBTyxFQUxvQixLQUFBO0FBTTNCLGNBQUEsTUFBTSxFQUFFLHdCQUFXLElBQVg7QUFObUIsYUFBN0I7QUFIRixXQUFJLENBQUo7QUFhQSxVQUFBLElBQUksQ0FBQTtBQUFBO0FBQUEsWUFBcUIsTUFBSztBQUM1QixrQ0FBVyxFQUFYLEVBQVcsVUFBWCxFQUFXLEtBQVgsRUFBbUMsTUFBSztBQUN0QyxjQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsZ0JBQXlCLDZCQUEzQiw2QkFBMkIsQ0FBekIsQ0FBRjtBQURGLGFBQUE7QUFERixXQUFJLENBQUo7QUFwQkosU0FBQTtBQTJCRDtBQTNDSSxLQUFBLE1BNENBO0FBQ0wsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEtBQUY7QUFDQSxvQkFBSSxFQUFKLEVBQUEsS0FBQTtBQUNBLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxNQUF5Qiw2QkFBM0IsaUJBQTJCLENBQXpCLENBQUY7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsS0FBRjtBQUNEO0FBekVILENBQUE7QUE0RUEsVUFBVSxDQUFWLEdBQUEsQ0FBYztBQUFBO0FBQWQsRUFBMkMsQ0FBQSxFQUFBLEVBQUssR0FBTCxLQUFLLENBQUwsS0FBa0I7QUFDM0QsTUFBSSxDQUFDLEtBQUssQ0FBTCxPQUFBLENBQUwsS0FBSyxDQUFMLEVBQTJCO0FBQ3pCLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxNQUFVLEtBQUssS0FBTCxJQUFBLElBQWtCLEtBQUssS0FBdkIsU0FBQSxHQUFBLEVBQUEsR0FBNkMsTUFBTSxDQUEvRCxLQUErRCxDQUE3RCxDQUFGO0FBREYsR0FBQSxNQUVPO0FBQ0wsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEtBQUY7QUFDQSxvQkFBSSxFQUFKLEVBQUEsS0FBQTtBQUNBLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxNQUF5Qiw2QkFBM0IsaUJBQTJCLENBQXpCLENBQUY7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsS0FBRjtBQUNEO0FBUkgsQ0FBQTtBQVdBLFVBQVUsQ0FBVixHQUFBLENBQWM7QUFBQTtBQUFkLEVBQWtDLENBQUEsRUFBQSxFQUFLLEdBQUEsSUFBQSxFQUFBLFVBQUEsRUFBQSxLQUFBLEVBQUwsTUFBSyxDQUFMLEtBQTRDO0FBQzVFLE1BQUksb0NBQUosSUFBSSxDQUFKLEVBQThCO0FBQzVCLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxNQUFBLElBQUEsRUFBb0QsU0FBRCxJQUFvQztBQUN2Rix1Q0FBZSxFQUFmLEVBQWUsU0FBZixFQUFlLElBQWYsRUFBZSxVQUFmLEVBQWlELFVBQVUsQ0FBNUMsS0FBNEMsQ0FBM0QsRUFBQSxNQUFBO0FBREYsS0FBRSxDQUFGO0FBREYsR0FBQSxNQUlPO0FBQ0wsNENBQXNCLEVBQXRCLEVBQXNCLElBQXRCLEVBQXNCLElBQXRCLEVBQXNCLFVBQXRCLEVBQXNCLEtBQXRCLEVBQXNCLE1BQXRCLEVBQXNCLEtBQXRCLEVBQUEsS0FBQTtBQUNEO0FBUEgsQ0FBQTtBQVVBLFVBQVUsQ0FBVixHQUFBLENBQWM7QUFBQTtBQUFkLEVBQXNDLENBQUEsRUFBQSxFQUFLLEdBQUEsS0FBQSxFQUFBLElBQUEsRUFBQSxXQUFBLEVBQUwsWUFBSyxDQUFMLEtBQW1EO0FBQ3ZGLGlDQUFZLEVBQVosRUFHRSxNQUFLO0FBQ0gsb0JBQUksRUFBSixFQUFBLElBQUE7O0FBRUEsUUFBSSxZQUFZLEtBQWhCLFNBQUEsRUFBZ0M7QUFDOUIsdUNBQXNCLEVBQXRCLEVBQUEsU0FBQTtBQURGLEtBQUEsTUFFTztBQUNMLHNCQUFJLEVBQUosRUFBQSxZQUFBO0FBQ0Q7O0FBRUQsb0JBQUksRUFBSixFQUFBLFdBQUE7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxPQUFBLEVBQUYsQ0FBRSxDQUFGO0FBRUEsV0FBQSxDQUFBO0FBZlEsR0FBWixFQWtCRSxNQUFLO0FBQ0gsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEtBQUY7QUFDQSxtQ0FBaUIsRUFBakIsRUFBQSxLQUFBO0FBQ0EsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEtBQUY7QUFyQkosR0FBQTtBQURGLENBQUE7QUEyQkEsVUFBVSxDQUFWLEdBQUEsQ0FBYztBQUFBO0FBQWQsRUFBK0IsQ0FBQSxFQUFBLEVBQUssR0FBQSxTQUFBLEVBQUEsS0FBQSxFQUFMLE9BQUssQ0FBTCxLQUM3QiwrQkFBWSxFQUFaLEVBRUUsTUFBSztBQUNILGtCQUFJLEVBQUosRUFBQSxTQUFBO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFFQSxTQUFBLENBQUE7QUFOUSxDQUFaLEVBU0UsTUFBSztBQUNILGlDQUFpQixFQUFqQixFQUFBLEtBQUE7QUFWUSxDQUFaLEVBYUUsT0FBTyxHQUNILE1BQUs7QUFDSCxpQ0FBaUIsRUFBakIsRUFBQSxPQUFBO0FBRkMsQ0FBQSxHQWRYLFNBQ0UsQ0FERjtBQXNCQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUFpQyxDQUFBLEVBQUEsRUFBSyxHQUFBLEtBQUEsRUFBQSxHQUFBLEVBQUEsS0FBQSxFQUFMLE9BQUssQ0FBTCxLQUMvQiw2QkFBVSxFQUFWLEVBR0UsTUFBSztBQUNILE1BQUEsR0FBQSxFQUFTO0FBQ1Asb0JBQUksRUFBSixFQUFBLEdBQUE7QUFERixHQUFBLE1BRU87QUFDTCxxQ0FBc0IsRUFBdEIsRUFBQSxJQUFBO0FBQ0Q7O0FBRUQsa0JBQUksRUFBSixFQUFBLEtBQUE7QUFFQSxTQUFBLENBQUE7QUFaTSxDQUFWLEVBZUUsTUFBSztBQUNILEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFlLDRCQUFmLE1BQWUsQ0FBZixFQUFxQyw0QkFBdkMsTUFBdUMsQ0FBckMsQ0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQUEsT0FBQSxFQUFGLENBQUUsQ0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFxQiw0QkFBdkIsTUFBdUIsQ0FBckIsQ0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFGLE1BQUUsQ0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFhLDRCQUFmLE9BQWUsQ0FBYixDQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQUYsTUFBRSxDQUFGO0FBQ0EsMENBQTBCLEVBQTFCLEVBQTBCLEtBQTFCLEVBQUEsQ0FBQTtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFGLENBQUUsQ0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFpQiw0QkFBbkIsU0FBbUIsQ0FBakIsQ0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFGLE9BQUUsQ0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBaUIsNEJBQW5CLFNBQW1CLENBQWpCLENBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBRixNQUFFLENBQUY7O0FBRUEsTUFBQSxPQUFBLEVBQWE7QUFDWCxtQ0FBaUIsRUFBakIsRUFBQSxPQUFBO0FBQ0Q7QUFuQ1AsQ0FDRSxDQURGO0FBd0NBLFVBQVUsQ0FBVixHQUFBLENBQWM7QUFBQTtBQUFkLEVBQWlDLENBQUEsRUFBQSxFQUFLLEdBQUEsS0FBQSxFQUFBLEtBQUEsRUFBTCxPQUFLLENBQUwsS0FBa0M7QUFDakUsaUNBQVksRUFBWixFQUdFLE1BQUs7QUFDSCxvQkFBSSxFQUFKLEVBQUEsS0FBQTtBQUNBLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxNQUFBLE9BQUEsRUFBRixDQUFFLENBQUY7QUFDQSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsS0FBRjtBQUVBLFdBQUEsQ0FBQTtBQVJRLEdBQVosRUFXRSxNQUFLO0FBQ0gsNENBQTBCLEVBQTFCLEVBQTBCLEtBQTFCLEVBQUEsQ0FBQTtBQVpRLEdBQVosRUFlRSxNQUFLO0FBQ0gsUUFBQSxPQUFBLEVBQWE7QUFDWCxxQ0FBaUIsRUFBakIsRUFBQSxPQUFBO0FBQ0Q7QUFsQkwsR0FBQTtBQURGLENBQUE7QUF3QkEsVUFBVSxDQUFWLEdBQUEsQ0FBYztBQUFBO0FBQWQsRUFBZ0MsQ0FBQSxFQUFBLEVBQUssR0FBQSxVQUFBLEVBQUwsS0FBSyxDQUFMLEtBQThCO0FBQzVELE1BQUksS0FBSyxHQUFHLCtCQUFpQixFQUFqQixFQUFaLFVBQVksQ0FBWjtBQUNBLDBDQUEwQixFQUExQixFQUEwQixLQUExQixFQUFBLEtBQUE7QUFGRixDQUFBO0FBS0EsVUFBVSxDQUFWLEdBQUEsQ0FBYztBQUFBO0FBQWQsRUFBNEMsQ0FBQSxFQUFBLEVBQUssR0FBQSxLQUFBLEVBQUwsS0FBSyxDQUFMLEtBQXlCO0FBQ25FLE1BQUEsS0FBQSxFQUFXO0FBQ1QsUUFBSSxDQUFBLEtBQUEsRUFBQSxXQUFBLElBQUosS0FBQTtBQUVBLG1DQUFpQixFQUFqQixFQUFBLFdBQUE7QUFDQSwyQkFBWSxFQUFaLEVBQVksS0FBWixFQUF3QixNQUFLO0FBQzNCLHFDQUFpQixFQUFqQixFQUFBLEtBQUE7QUFERixLQUFBO0FBSkYsR0FBQSxNQU9PO0FBQ0wsbUNBQWlCLEVBQWpCLEVBQUEsS0FBQTtBQUNEO0FBVkgsQ0FBQTtBQWFBLFVBQVUsQ0FBVixHQUFBLENBQWM7QUFBQTtBQUFkLEVBQTRDLENBQUEsRUFBQSxFQUFLLEdBQUEsSUFBQSxFQUFBLFVBQUEsRUFBQSxLQUFBLEVBQUwsTUFBSyxDQUFMLEtBQTRDO0FBQ3RGLE1BQUksb0NBQUosSUFBSSxDQUFKLEVBQThCO0FBQzVCLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxNQUFBLElBQUEsRUFBb0QsU0FBRCxJQUFvQztBQUN2Rix1Q0FBZSxFQUFmLEVBQWUsU0FBZixFQUFlLElBQWYsRUFBZSxVQUFmLEVBQWlELFVBQVUsQ0FBNUMsS0FBNEMsQ0FBM0QsRUFBQSxNQUFBO0FBREYsS0FBRSxDQUFGO0FBREYsR0FBQSxNQUlPO0FBQ0wsNENBQXNCLEVBQXRCLEVBQXNCLElBQXRCLEVBQXNCLElBQXRCLEVBQXNCLFVBQXRCLEVBQXNCLEtBQXRCLEVBQXNCLE1BQXRCLEVBQXNCLEtBQXRCLEVBQUEsS0FBQTtBQUNEO0FBUEgsQ0FBQTs7QUFVQSxTQUFBLFVBQUEsQ0FBQSxJQUFBLEVBQXFEO0FBQ25ELE1BQUksSUFBSSxLQUFSLElBQUEsRUFBbUIsT0FBQSxJQUFBO0FBQ25CLE1BQUksS0FBSyxHQUFHLElBQUksQ0FBSixDQUFJLENBQUosQ0FBQSxHQUFBLENBQWEsR0FBRCxJQUFTLElBQUksR0FBckMsRUFBWSxDQUFaO0FBQ0EsU0FBTyxDQUFBLEtBQUEsRUFBaUMsSUFBSSxDQUE1QyxDQUE0QyxDQUFyQyxDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21waWxlVGltZUNvbXBvbmVudCxcbiAgQ29udGVudFR5cGUsXG4gIEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUsXG4gIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUsXG4gIE1hY2hpbmVPcCxcbiAgT3AsXG4gIFNleHBPcGNvZGVzLFxuICBTdGF0ZW1lbnRTZXhwT3Bjb2RlLFxuICBXZWxsS25vd25BdHRyTmFtZSxcbiAgV2VsbEtub3duVGFnTmFtZSxcbiAgV2lyZUZvcm1hdCxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyAkZnAsICRzcCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7XG4gIEludm9rZVN0YXRpY0Jsb2NrLFxuICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayxcbiAgWWllbGRCbG9jayxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9ibG9ja3MnO1xuaW1wb3J0IHtcbiAgSW52b2tlQ29tcG9uZW50LFxuICBJbnZva2VEeW5hbWljQ29tcG9uZW50LFxuICBJbnZva2VOb25TdGF0aWNDb21wb25lbnQsXG59IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBTd2l0Y2hDYXNlcywgUmVwbGF5YWJsZSwgUmVwbGF5YWJsZUlmIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9jb25kaXRpb25hbCc7XG5pbXBvcnQgeyBleHByIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9leHByJztcbmltcG9ydCB7IENvbXBpbGVQb3NpdGlvbmFsLCBTaW1wbGVBcmdzIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9zaGFyZWQnO1xuaW1wb3J0IHtcbiAgQ2FsbCxcbiAgQ2FsbER5bmFtaWMsXG4gIER5bmFtaWNTY29wZSxcbiAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZSxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy92bSc7XG5pbXBvcnQgeyBldmFsU3ltYm9sc09wZXJhbmQsIGxhYmVsT3BlcmFuZCwgc3RkbGliT3BlcmFuZCB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL29wZXJhbmRzJztcbmltcG9ydCB7IENvbXBpbGVycywgUHVzaFN0YXRlbWVudE9wIH0gZnJvbSAnLi9jb21waWxlcnMnO1xuaW1wb3J0IHtcbiAgaXNHZXRGcmVlQ29tcG9uZW50LFxuICBpc0dldEZyZWVDb21wb25lbnRPckhlbHBlcixcbiAgaXNHZXRGcmVlTW9kaWZpZXIsXG4gIGlzR2V0RnJlZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIsXG59IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvcmVzb2x1dGlvbic7XG5pbXBvcnQgeyBuYW1lZEJsb2NrcyB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IFNUQVRFTUVOVFMgPSBuZXcgQ29tcGlsZXJzPFB1c2hTdGF0ZW1lbnRPcCwgU3RhdGVtZW50U2V4cE9wY29kZT4oKTtcblxuY29uc3QgSU5GTEFURV9BVFRSX1RBQkxFOiB7XG4gIFtJIGluIFdlbGxLbm93bkF0dHJOYW1lXTogc3RyaW5nO1xufSA9IFsnY2xhc3MnLCAnaWQnLCAndmFsdWUnLCAnbmFtZScsICd0eXBlJywgJ3N0eWxlJywgJ2hyZWYnXTtcbmNvbnN0IElORkxBVEVfVEFHX1RBQkxFOiB7XG4gIFtJIGluIFdlbGxLbm93blRhZ05hbWVdOiBzdHJpbmc7XG59ID0gWydkaXYnLCAnc3BhbicsICdwJywgJ2EnXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluZmxhdGVUYWdOYW1lKHRhZ05hbWU6IHN0cmluZyB8IFdlbGxLbm93blRhZ05hbWUpOiBzdHJpbmcge1xuICByZXR1cm4gdHlwZW9mIHRhZ05hbWUgPT09ICdzdHJpbmcnID8gdGFnTmFtZSA6IElORkxBVEVfVEFHX1RBQkxFW3RhZ05hbWVdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5mbGF0ZUF0dHJOYW1lKGF0dHJOYW1lOiBzdHJpbmcgfCBXZWxsS25vd25BdHRyTmFtZSk6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgYXR0ck5hbWUgPT09ICdzdHJpbmcnID8gYXR0ck5hbWUgOiBJTkZMQVRFX0FUVFJfVEFCTEVbYXR0ck5hbWVdO1xufVxuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Db21tZW50LCAob3AsIHNleHApID0+IG9wKE9wLkNvbW1lbnQsIHNleHBbMV0pKTtcblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNsb3NlRWxlbWVudCwgKG9wKSA9PiBvcChPcC5DbG9zZUVsZW1lbnQpKTtcblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkZsdXNoRWxlbWVudCwgKG9wKSA9PiBvcChPcC5GbHVzaEVsZW1lbnQpKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuTW9kaWZpZXIsIChvcCwgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVNb2RpZmllcihleHByZXNzaW9uKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU1vZGlmaWVyLCBleHByZXNzaW9uLCAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsIGZhbHNlKTtcbiAgICAgIG9wKE9wLk1vZGlmaWVyLCBoYW5kbGUpO1xuICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICAgIG9wKE9wLkR1cCwgJGZwLCAxKTtcbiAgICBvcChPcC5EeW5hbWljTW9kaWZpZXIpO1xuICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5TdGF0aWNBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIG9wKE9wLlN0YXRpY0F0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdmFsdWUgYXMgc3RyaW5nLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuU3RhdGljQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBvcChPcC5TdGF0aWNDb21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHZhbHVlIGFzIHN0cmluZywgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkR5bmFtaWNBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuRHluYW1pY0F0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgZmFsc2UsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0R5bmFtaWNBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuRHluYW1pY0F0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdHJ1ZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Db21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIGZhbHNlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuVHJ1c3RpbmdDb21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuQ29tcG9uZW50QXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB0cnVlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuT3BlbkVsZW1lbnQsIChvcCwgWywgdGFnXSkgPT4ge1xuICBvcChPcC5PcGVuRWxlbWVudCwgaW5mbGF0ZVRhZ05hbWUodGFnKSk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuT3BlbkVsZW1lbnRXaXRoU3BsYXQsIChvcCwgWywgdGFnXSkgPT4ge1xuICBvcChPcC5QdXRDb21wb25lbnRPcGVyYXRpb25zKTtcbiAgb3AoT3AuT3BlbkVsZW1lbnQsIGluZmxhdGVUYWdOYW1lKHRhZykpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbXBvbmVudCwgKG9wLCBbLCBleHByLCBlbGVtZW50QmxvY2ssIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgZWxlbWVudEJsb2NrLCBudWxsLCBuYW1lZCwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICAvLyBvdGhlcndpc2UsIHRoZSBjb21wb25lbnQgbmFtZSB3YXMgYW4gZXhwcmVzc2lvbiwgc28gcmVzb2x2ZSB0aGUgZXhwcmVzc2lvblxuICAgIC8vIGFuZCBpbnZva2UgaXQgYXMgYSBkeW5hbWljIGNvbXBvbmVudFxuICAgIEludm9rZUR5bmFtaWNDb21wb25lbnQob3AsIGV4cHIsIGVsZW1lbnRCbG9jaywgbnVsbCwgbmFtZWQsIGJsb2NrcywgdHJ1ZSwgdHJ1ZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5ZaWVsZCwgKG9wLCBbLCB0bywgcGFyYW1zXSkgPT4gWWllbGRCbG9jayhvcCwgdG8sIHBhcmFtcykpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BdHRyU3BsYXQsIChvcCwgWywgdG9dKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgbnVsbCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5EZWJ1Z2dlciwgKG9wLCBbLCBldmFsSW5mb10pID0+XG4gIG9wKE9wLkRlYnVnZ2VyLCBldmFsU3ltYm9sc09wZXJhbmQoKSwgZXZhbEluZm8pXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BcHBlbmQsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIC8vIFNwZWNpYWwgY2FzZSBmb3Igc3RhdGljIHZhbHVlc1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSBpZiAoaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcih2YWx1ZSkpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLCB2YWx1ZSwge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkge1xuICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcblxuICAgICAgaWZWYWx1ZShoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAodmFsdWVbMF0gPT09IFNleHBPcGNvZGVzLkNhbGwpIHtcbiAgICBsZXQgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdID0gdmFsdWU7XG5cbiAgICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyLCBleHByZXNzaW9uLCB7XG4gICAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpIHtcbiAgICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIG51bGwpO1xuICAgICAgICB9LFxuICAgICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICAgIENhbGwob3AsIGhhbmRsZSwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFN3aXRjaENhc2VzKFxuICAgICAgICBvcCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgICAgICAgIG9wKE9wLkR5bmFtaWNDb250ZW50VHlwZSk7XG4gICAgICAgIH0sXG4gICAgICAgICh3aGVuKSA9PiB7XG4gICAgICAgICAgd2hlbihDb250ZW50VHlwZS5Db21wb25lbnQsICgpID0+IHtcbiAgICAgICAgICAgIG9wKE9wLlJlc29sdmVDdXJyaWVkQ29tcG9uZW50KTtcbiAgICAgICAgICAgIG9wKE9wLlB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UpO1xuICAgICAgICAgICAgSW52b2tlTm9uU3RhdGljQ29tcG9uZW50KG9wLCB7XG4gICAgICAgICAgICAgIGNhcGFiaWxpdGllczogdHJ1ZSxcbiAgICAgICAgICAgICAgZWxlbWVudEJsb2NrOiBudWxsLFxuICAgICAgICAgICAgICBwb3NpdGlvbmFsLFxuICAgICAgICAgICAgICBuYW1lZCxcbiAgICAgICAgICAgICAgYXROYW1lczogZmFsc2UsXG4gICAgICAgICAgICAgIGJsb2NrczogbmFtZWRCbG9ja3MobnVsbCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHdoZW4oQ29udGVudFR5cGUuSGVscGVyLCAoKSA9PiB7XG4gICAgICAgICAgICBDYWxsRHluYW1pYyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsICgpID0+IHtcbiAgICAgICAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1hcHBlbmQnKSk7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nQXBwZW5kLCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSB7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgZXhwcihvcCwgdmFsdWUpO1xuICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ3RydXN0aW5nLWFwcGVuZCcpKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQmxvY2ssIChvcCwgWywgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBudWxsLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzLCBmYWxzZSwgZmFsc2UpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW5FbGVtZW50LCAob3AsIFssIGJsb2NrLCBndWlkLCBkZXN0aW5hdGlvbiwgaW5zZXJ0QmVmb3JlXSkgPT4ge1xuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBndWlkKTtcblxuICAgICAgaWYgKGluc2VydEJlZm9yZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHByKG9wLCBpbnNlcnRCZWZvcmUpO1xuICAgICAgfVxuXG4gICAgICBleHByKG9wLCBkZXN0aW5hdGlvbik7XG4gICAgICBvcChPcC5EdXAsICRzcCwgMCk7XG5cbiAgICAgIHJldHVybiA0O1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBvcChPcC5QdXNoUmVtb3RlRWxlbWVudCk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgICAgb3AoT3AuUG9wUmVtb3RlRWxlbWVudCk7XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLklmLCAob3AsIFssIGNvbmRpdGlvbiwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAxO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgIH0sXG5cbiAgICBpbnZlcnNlXG4gICAgICA/ICgpID0+IHtcbiAgICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkXG4gIClcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkVhY2gsIChvcCwgWywgdmFsdWUsIGtleSwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKGtleSkge1xuICAgICAgICBleHByKG9wLCBrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkVudGVyTGlzdCwgbGFiZWxPcGVyYW5kKCdCT0RZJyksIGxhYmVsT3BlcmFuZCgnRUxTRScpKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgICAgb3AoTWFjaGluZU9wLlJldHVyblRvLCBsYWJlbE9wZXJhbmQoJ0lURVInKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnSVRFUicpO1xuICAgICAgb3AoT3AuSXRlcmF0ZSwgbGFiZWxPcGVyYW5kKCdCUkVBSycpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdCT0RZJyk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDIpO1xuICAgICAgb3AoT3AuUG9wLCAyKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5KdW1wLCBsYWJlbE9wZXJhbmQoJ0ZJTkFMTFknKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnQlJFQUsnKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICBvcChPcC5FeGl0TGlzdCk7XG4gICAgICBvcChNYWNoaW5lT3AuSnVtcCwgbGFiZWxPcGVyYW5kKCdGSU5BTExZJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0VMU0UnKTtcblxuICAgICAgaWYgKGludmVyc2UpIHtcbiAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgKVxuKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuV2l0aCwgKG9wLCBbLCB2YWx1ZSwgYmxvY2ssIGludmVyc2VdKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAyO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDEpO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBpZiAoaW52ZXJzZSkge1xuICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICB9XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkxldCwgKG9wLCBbLCBwb3NpdGlvbmFsLCBibG9ja10pID0+IHtcbiAgbGV0IGNvdW50ID0gQ29tcGlsZVBvc2l0aW9uYWwob3AsIHBvc2l0aW9uYWwpO1xuICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIGNvdW50KTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5XaXRoRHluYW1pY1ZhcnMsIChvcCwgWywgbmFtZWQsIGJsb2NrXSkgPT4ge1xuICBpZiAobmFtZWQpIHtcbiAgICBsZXQgW25hbWVzLCBleHByZXNzaW9uc10gPSBuYW1lZDtcblxuICAgIENvbXBpbGVQb3NpdGlvbmFsKG9wLCBleHByZXNzaW9ucyk7XG4gICAgRHluYW1pY1Njb3BlKG9wLCBuYW1lcywgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW52b2tlQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgbnVsbCwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2NrcywgZmFsc2UsIGZhbHNlKTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGhhc2hUb0FyZ3MoaGFzaDogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsKTogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsIHtcbiAgaWYgKGhhc2ggPT09IG51bGwpIHJldHVybiBudWxsO1xuICBsZXQgbmFtZXMgPSBoYXNoWzBdLm1hcCgoa2V5KSA9PiBgQCR7a2V5fWApO1xuICByZXR1cm4gW25hbWVzIGFzIFtzdHJpbmcsIC4uLnN0cmluZ1tdXSwgaGFzaFsxXV07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9

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

StdLib: true,
PartialDefinitionImpl: true,
templateFactory: true,

@@ -70,8 +69,2 @@ templateCacheCounters: true,

});
Object.defineProperty(exports, "PartialDefinitionImpl", {
enumerable: true,
get: function () {
return _partialTemplate.PartialDefinitionImpl;
}
});
Object.defineProperty(exports, "templateFactory", {

@@ -153,4 +146,2 @@ enumerable: true,

var _partialTemplate = require("./lib/partial-template");
var _template = _interopRequireWildcard(require("./lib/template"));

@@ -165,2 +156,2 @@

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFFQTs7QUFJQTs7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFPQTs7QUFFQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3Byb2dyYW0tY29udGV4dCc7XG5cbmV4cG9ydCB7IGRlYnVnQ29tcGlsZXIgfSBmcm9tICcuL2xpYi9jb21waWxlcic7XG5cbmV4cG9ydCB7IGNvbXBpbGVTdGF0ZW1lbnRzLCBjb21waWxhYmxlIH0gZnJvbSAnLi9saWIvY29tcGlsYWJsZS10ZW1wbGF0ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyL2NvbnRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXIvZGVsZWdhdGUnO1xuXG5leHBvcnQge1xuICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayBhcyBpbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayxcbiAgSW52b2tlU3RhdGljQmxvY2sgYXMgaW52b2tlU3RhdGljQmxvY2ssXG59IGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyL2hlbHBlcnMvYmxvY2tzJztcbmV4cG9ydCB7IGNvbXBpbGVTdGQgfSBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3N0ZGxpYic7XG5leHBvcnQgeyBtZXRhIH0gZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9zaGFyZWQnO1xuXG5leHBvcnQgeyBTdGRMaWIgfSBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlci9zdGRsaWInO1xuXG5leHBvcnQgeyBQYXJ0aWFsRGVmaW5pdGlvbkltcGwgfSBmcm9tICcuL2xpYi9wYXJ0aWFsLXRlbXBsYXRlJztcblxuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyB0ZW1wbGF0ZUZhY3RvcnksXG4gIHRlbXBsYXRlQ2FjaGVDb3VudGVycyxcbiAgVGVtcGxhdGVGYWN0b3J5V2l0aElkQW5kTWV0YSxcbiAgVGVtcGxhdGVXaXRoSWRBbmRSZWZlcnJlcixcbn0gZnJvbSAnLi9saWIvdGVtcGxhdGUnO1xuXG5leHBvcnQgeyBXcmFwcGVkQnVpbGRlciB9IGZyb20gJy4vbGliL3dyYXBwZWQtY29tcG9uZW50JztcblxuZXhwb3J0IHsgRU1QVFlfQkxPQ0tTIH0gZnJvbSAnLi9saWIvdXRpbHMnO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUVBOztBQUVBOztBQUVBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUVBOztBQUlBOztBQUNBOztBQUVBOztBQUVBOztBQU9BOztBQUVBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvZ3JhbS1jb250ZXh0JztcblxuZXhwb3J0IHsgZGVidWdDb21waWxlciB9IGZyb20gJy4vbGliL2NvbXBpbGVyJztcblxuZXhwb3J0IHsgY29tcGlsZVN0YXRlbWVudHMsIGNvbXBpbGFibGUgfSBmcm9tICcuL2xpYi9jb21waWxhYmxlLXRlbXBsYXRlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXIvY29udGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlci9kZWxlZ2F0ZSc7XG5cbmV4cG9ydCB7XG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrIGFzIGludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrLFxuICBJbnZva2VTdGF0aWNCbG9jayBhcyBpbnZva2VTdGF0aWNCbG9jayxcbn0gZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9ibG9ja3MnO1xuZXhwb3J0IHsgY29tcGlsZVN0ZCB9IGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc3RkbGliJztcbmV4cG9ydCB7IG1ldGEgfSBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3NoYXJlZCc7XG5cbmV4cG9ydCB7IFN0ZExpYiB9IGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyL3N0ZGxpYic7XG5cbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgdGVtcGxhdGVGYWN0b3J5LFxuICB0ZW1wbGF0ZUNhY2hlQ291bnRlcnMsXG4gIFRlbXBsYXRlRmFjdG9yeVdpdGhJZEFuZE1ldGEsXG4gIFRlbXBsYXRlV2l0aElkQW5kUmVmZXJyZXIsXG59IGZyb20gJy4vbGliL3RlbXBsYXRlJztcblxuZXhwb3J0IHsgV3JhcHBlZEJ1aWxkZXIgfSBmcm9tICcuL2xpYi93cmFwcGVkLWNvbXBvbmVudCc7XG5cbmV4cG9ydCB7IEVNUFRZX0JMT0NLUyB9IGZyb20gJy4vbGliL3V0aWxzJztcbiJdLCJzb3VyY2VSb290IjoiIn0=

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

exports.MINIMAL_CAPABILITIES = MINIMAL_CAPABILITIES;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvZGVsZWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRU8sSUFBTSxvQkFBb0IsR0FBa0M7QUFDakUsRUFBQSxhQUFhLEVBRG9ELElBQUE7QUFFakUsRUFBQSxVQUFVLEVBRnVELElBQUE7QUFHakUsRUFBQSxXQUFXLEVBSHNELElBQUE7QUFJakUsRUFBQSxVQUFVLEVBSnVELElBQUE7QUFLakUsRUFBQSxhQUFhLEVBTG9ELEtBQUE7QUFNakUsRUFBQSxXQUFXLEVBTnNELEtBQUE7QUFPakUsRUFBQSxZQUFZLEVBUHFELElBQUE7QUFRakUsRUFBQSxZQUFZLEVBUnFELEtBQUE7QUFTakUsRUFBQSxVQUFVLEVBVHVELElBQUE7QUFVakUsRUFBQSxjQUFjLEVBVm1ELElBQUE7QUFXakUsRUFBQSxPQUFPLEVBWDBELEtBQUE7QUFZakUsRUFBQSxXQUFXLEVBWnNELEtBQUE7QUFhakUsRUFBQSxXQUFXLEVBQUU7QUFib0QsQ0FBNUQ7O0FBZ0JBLElBQU0sb0JBQW9CLEdBQWtDO0FBQ2pFLEVBQUEsYUFBYSxFQURvRCxLQUFBO0FBRWpFLEVBQUEsVUFBVSxFQUZ1RCxLQUFBO0FBR2pFLEVBQUEsV0FBVyxFQUhzRCxLQUFBO0FBSWpFLEVBQUEsVUFBVSxFQUp1RCxLQUFBO0FBS2pFLEVBQUEsYUFBYSxFQUxvRCxLQUFBO0FBTWpFLEVBQUEsV0FBVyxFQU5zRCxLQUFBO0FBT2pFLEVBQUEsWUFBWSxFQVBxRCxLQUFBO0FBUWpFLEVBQUEsWUFBWSxFQVJxRCxLQUFBO0FBU2pFLEVBQUEsVUFBVSxFQVR1RCxLQUFBO0FBVWpFLEVBQUEsY0FBYyxFQVZtRCxLQUFBO0FBV2pFLEVBQUEsT0FBTyxFQVgwRCxLQUFBO0FBWWpFLEVBQUEsV0FBVyxFQVpzRCxLQUFBO0FBYWpFLEVBQUEsV0FBVyxFQUFFO0FBYm9ELENBQTVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMsIE9wdGlvbiwgQ29tcGlsZVRpbWVDb21wb25lbnQgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ0FQQUJJTElUSUVTOiBJbnRlcm5hbENvbXBvbmVudENhcGFiaWxpdGllcyA9IHtcbiAgZHluYW1pY0xheW91dDogdHJ1ZSxcbiAgZHluYW1pY1RhZzogdHJ1ZSxcbiAgcHJlcGFyZUFyZ3M6IHRydWUsXG4gIGNyZWF0ZUFyZ3M6IHRydWUsXG4gIGF0dHJpYnV0ZUhvb2s6IGZhbHNlLFxuICBlbGVtZW50SG9vazogZmFsc2UsXG4gIGR5bmFtaWNTY29wZTogdHJ1ZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgdXBkYXRlSG9vazogdHJ1ZSxcbiAgY3JlYXRlSW5zdGFuY2U6IHRydWUsXG4gIHdyYXBwZWQ6IGZhbHNlLFxuICB3aWxsRGVzdHJveTogZmFsc2UsXG4gIGhhc1N1Yk93bmVyOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBjb25zdCBNSU5JTUFMX0NBUEFCSUxJVElFUzogSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMgPSB7XG4gIGR5bmFtaWNMYXlvdXQ6IGZhbHNlLFxuICBkeW5hbWljVGFnOiBmYWxzZSxcbiAgcHJlcGFyZUFyZ3M6IGZhbHNlLFxuICBjcmVhdGVBcmdzOiBmYWxzZSxcbiAgYXR0cmlidXRlSG9vazogZmFsc2UsXG4gIGVsZW1lbnRIb29rOiBmYWxzZSxcbiAgZHluYW1pY1Njb3BlOiBmYWxzZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgdXBkYXRlSG9vazogZmFsc2UsXG4gIGNyZWF0ZUluc3RhbmNlOiBmYWxzZSxcbiAgd3JhcHBlZDogZmFsc2UsXG4gIHdpbGxEZXN0cm95OiBmYWxzZSxcbiAgaGFzU3ViT3duZXI6IGZhbHNlLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlckRlbGVnYXRlPFIgPSB1bmtub3duPiB7XG4gIGxvb2t1cEhlbHBlcj8obmFtZTogc3RyaW5nLCByZWZlcnJlcjogUik6IE9wdGlvbjxudW1iZXI+IHwgdm9pZDtcbiAgbG9va3VwTW9kaWZpZXI/KG5hbWU6IHN0cmluZywgcmVmZXJyZXI6IFIpOiBPcHRpb248bnVtYmVyPiB8IHZvaWQ7XG4gIGxvb2t1cENvbXBvbmVudD8obmFtZTogc3RyaW5nLCByZWZlcnJlcjogUik6IE9wdGlvbjxDb21waWxlVGltZUNvbXBvbmVudD4gfCB2b2lkO1xuICBsb29rdXBQYXJ0aWFsPyhuYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBSKTogT3B0aW9uPG51bWJlcj4gfCB2b2lkO1xuXG4gIC8vIEZvciBkZWJ1Z2dpbmdcbiAgcmVzb2x2ZT8oaGFuZGxlOiBudW1iZXIpOiBSO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvZGVsZWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRU8sSUFBTSxvQkFBb0IsR0FBa0M7QUFDakUsRUFBQSxhQUFhLEVBRG9ELElBQUE7QUFFakUsRUFBQSxVQUFVLEVBRnVELElBQUE7QUFHakUsRUFBQSxXQUFXLEVBSHNELElBQUE7QUFJakUsRUFBQSxVQUFVLEVBSnVELElBQUE7QUFLakUsRUFBQSxhQUFhLEVBTG9ELEtBQUE7QUFNakUsRUFBQSxXQUFXLEVBTnNELEtBQUE7QUFPakUsRUFBQSxZQUFZLEVBUHFELElBQUE7QUFRakUsRUFBQSxZQUFZLEVBUnFELEtBQUE7QUFTakUsRUFBQSxVQUFVLEVBVHVELElBQUE7QUFVakUsRUFBQSxjQUFjLEVBVm1ELElBQUE7QUFXakUsRUFBQSxPQUFPLEVBWDBELEtBQUE7QUFZakUsRUFBQSxXQUFXLEVBWnNELEtBQUE7QUFhakUsRUFBQSxXQUFXLEVBQUU7QUFib0QsQ0FBNUQ7O0FBZ0JBLElBQU0sb0JBQW9CLEdBQWtDO0FBQ2pFLEVBQUEsYUFBYSxFQURvRCxLQUFBO0FBRWpFLEVBQUEsVUFBVSxFQUZ1RCxLQUFBO0FBR2pFLEVBQUEsV0FBVyxFQUhzRCxLQUFBO0FBSWpFLEVBQUEsVUFBVSxFQUp1RCxLQUFBO0FBS2pFLEVBQUEsYUFBYSxFQUxvRCxLQUFBO0FBTWpFLEVBQUEsV0FBVyxFQU5zRCxLQUFBO0FBT2pFLEVBQUEsWUFBWSxFQVBxRCxLQUFBO0FBUWpFLEVBQUEsWUFBWSxFQVJxRCxLQUFBO0FBU2pFLEVBQUEsVUFBVSxFQVR1RCxLQUFBO0FBVWpFLEVBQUEsY0FBYyxFQVZtRCxLQUFBO0FBV2pFLEVBQUEsT0FBTyxFQVgwRCxLQUFBO0FBWWpFLEVBQUEsV0FBVyxFQVpzRCxLQUFBO0FBYWpFLEVBQUEsV0FBVyxFQUFFO0FBYm9ELENBQTVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMsIE9wdGlvbiwgQ29tcGlsZVRpbWVDb21wb25lbnQgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ0FQQUJJTElUSUVTOiBJbnRlcm5hbENvbXBvbmVudENhcGFiaWxpdGllcyA9IHtcbiAgZHluYW1pY0xheW91dDogdHJ1ZSxcbiAgZHluYW1pY1RhZzogdHJ1ZSxcbiAgcHJlcGFyZUFyZ3M6IHRydWUsXG4gIGNyZWF0ZUFyZ3M6IHRydWUsXG4gIGF0dHJpYnV0ZUhvb2s6IGZhbHNlLFxuICBlbGVtZW50SG9vazogZmFsc2UsXG4gIGR5bmFtaWNTY29wZTogdHJ1ZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgdXBkYXRlSG9vazogdHJ1ZSxcbiAgY3JlYXRlSW5zdGFuY2U6IHRydWUsXG4gIHdyYXBwZWQ6IGZhbHNlLFxuICB3aWxsRGVzdHJveTogZmFsc2UsXG4gIGhhc1N1Yk93bmVyOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBjb25zdCBNSU5JTUFMX0NBUEFCSUxJVElFUzogSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMgPSB7XG4gIGR5bmFtaWNMYXlvdXQ6IGZhbHNlLFxuICBkeW5hbWljVGFnOiBmYWxzZSxcbiAgcHJlcGFyZUFyZ3M6IGZhbHNlLFxuICBjcmVhdGVBcmdzOiBmYWxzZSxcbiAgYXR0cmlidXRlSG9vazogZmFsc2UsXG4gIGVsZW1lbnRIb29rOiBmYWxzZSxcbiAgZHluYW1pY1Njb3BlOiBmYWxzZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgdXBkYXRlSG9vazogZmFsc2UsXG4gIGNyZWF0ZUluc3RhbmNlOiBmYWxzZSxcbiAgd3JhcHBlZDogZmFsc2UsXG4gIHdpbGxEZXN0cm95OiBmYWxzZSxcbiAgaGFzU3ViT3duZXI6IGZhbHNlLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlckRlbGVnYXRlPFIgPSB1bmtub3duPiB7XG4gIGxvb2t1cEhlbHBlcj8obmFtZTogc3RyaW5nLCByZWZlcnJlcjogUik6IE9wdGlvbjxudW1iZXI+IHwgdm9pZDtcbiAgbG9va3VwTW9kaWZpZXI/KG5hbWU6IHN0cmluZywgcmVmZXJyZXI6IFIpOiBPcHRpb248bnVtYmVyPiB8IHZvaWQ7XG4gIGxvb2t1cENvbXBvbmVudD8obmFtZTogc3RyaW5nLCByZWZlcnJlcjogUik6IE9wdGlvbjxDb21waWxlVGltZUNvbXBvbmVudD4gfCB2b2lkO1xuXG4gIC8vIEZvciBkZWJ1Z2dpbmdcbiAgcmVzb2x2ZT8oaGFuZGxlOiBudW1iZXIpOiBSO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -274,5 +274,3 @@ "use strict";

var expr = _ref5[1],
_ref5$ = _ref5[2],
ifHelper = _ref5$.ifHelper,
ifFallback = _ref5$.ifFallback;
ifHelper = _ref5[2].ifHelper;
false && (0, _util.assert)(isGetFreeOptionalHelper(expr) || isGetFreeDeprecatedHelper(expr), 'Attempted to resolve a helper with incorrect opcode');

@@ -287,5 +285,3 @@

if (helper === null) {
ifFallback(name, meta.moduleName);
} else {
if (helper) {
ifHelper(constants.helper(helper, name), name, meta.moduleName);

@@ -304,4 +300,3 @@ }

ifHelper = _ref6$.ifHelper,
ifValue = _ref6$.ifValue,
ifFallback = _ref6$.ifFallback;
ifValue = _ref6$.ifValue;
false && (0, _util.assert)(isGetFreeOptionalComponentOrHelper(expr), 'Attempted to resolve an optional component or helper with incorrect opcode');

@@ -360,6 +355,3 @@ var type = expr[0];

ifHelper(constants.helper(_helper2, name));
return;
}
ifFallback(name);
}

@@ -383,2 +375,2 @@ }

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBZ0JBOztBQUVBLFNBQUEsY0FBQSxDQUFBLE1BQUEsRUFBc0Q7QUFDcEQsU0FBTyxLQUFLLENBQUwsT0FBQSxDQUFBLE1BQUEsS0FBeUIsTUFBTSxDQUFOLE1BQUEsS0FBaEMsQ0FBQTtBQUNEOztBQUVELFNBQUEsMEJBQUEsQ0FBQSxZQUFBLEVBQTZEO0FBQzNELFNBQ0UsVUFESyxNQUNMLEVBQ2lFO0FBQ2pFLFFBQUksQ0FBQyxjQUFjLENBQW5CLE1BQW1CLENBQW5CLEVBQTZCLE9BQUEsS0FBQTtBQUU3QixRQUFJLElBQUksR0FBRyxNQUFNLENBQWpCLENBQWlCLENBQWpCO0FBRUEsV0FDRSxJQUFJLEtBQUE7QUFBQTtBQUFKLE9BQ0EsSUFBSSxLQUFBO0FBQUE7QUFESixPQUVBLElBQUksS0FITixZQUFBO0FBUEYsR0FBQTtBQWFEOztBQUVNLElBQU0sa0JBQWtCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXJEOztBQUVBLElBQU0saUJBQWlCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXBEOztBQUVBLElBQU0sZUFBZSxHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFsRDs7QUFFQSxJQUFNLDBCQUEwQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUE3RDs7QUFJQSxJQUFNLHVCQUF1QixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUExRDs7O0FBSUQsU0FBQSx5QkFBQSxDQUFBLE1BQUEsRUFDMEI7QUFFOUIsU0FDRSxLQUFLLENBQUwsT0FBQSxDQUFBLE1BQUEsS0FBeUIsTUFBTSxDQUFOLENBQU0sQ0FBTixLQUFTO0FBQUE7QUFEcEM7QUFHRDs7QUFFTSxJ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Y0FBUyxNQUFNLEtBQW5CLElBQUEsRUFBOEI7QUFDNUI7QUFDQTtBQUNBLFVBQU0sSUFBQSxLQUFBLENBQUEsNEJBQUEsSUFBQSxHQUFBLCtEQUFBLEdBRUYsSUFBSSxDQUFKLE1BQUEsQ0FBYSxJQUFJLENBRnJCLENBRXFCLENBQWpCLENBRkUsQ0FBTjtBQUtEOztBQUVELFNBQU8sU0FBUyxDQUFULE1BQUEsQ0FBQSxNQUFBLEVBQVAsSUFBTyxDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQge1xuICBDb21waWxlVGltZUNvbnN0YW50cyxcbiAgQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgQ29udGFpbmluZ01ldGFkYXRhLFxuICBFeHByZXNzaW9ucyxcbiAgT3duZXIsXG4gIFJlc29sdmVDb21wb25lbnRPcCxcbiAgUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyT3AsXG4gIFJlc29sdmVIZWxwZXJPcCxcbiAgUmVzb2x2ZU1vZGlmaWVyT3AsXG4gIFJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyT3AsXG4gIFJlc29sdmVPcHRpb25hbEhlbHBlck9wLFxuICBTZXhwT3Bjb2RlcyxcbiAgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYXNzZXJ0LCBkZWJ1Z1RvU3RyaW5nLCBleHBlY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuZnVuY3Rpb24gaXNHZXRMaWtlVHVwbGUob3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uKTogb3Bjb2RlIGlzIEV4cHJlc3Npb25zLlR1cGxlRXhwcmVzc2lvbiB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KG9wY29kZSkgJiYgb3Bjb2RlLmxlbmd0aCA9PT0gMjtcbn1cblxuZnVuY3Rpb24gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIodHlwZVRvVmVyaWZ5OiBTZXhwT3Bjb2Rlcykge1xuICByZXR1cm4gKFxuICAgIG9wY29kZTogRXhwcmVzc2lvbnMuRXhwcmVzc2lvblxuICApOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuR2V0RnJlZSB8IEV4cHJlc3Npb25zLkdldFRlbXBsYXRlU3ltYm9sID0+IHtcbiAgICBpZiAoIWlzR2V0TGlrZVR1cGxlKG9wY29kZSkpIHJldHVybiBmYWxzZTtcblxuICAgIGxldCB0eXBlID0gb3Bjb2RlWzBdO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUgfHxcbiAgICAgIHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sIHx8XG4gICAgICB0eXBlID09PSB0eXBlVG9WZXJpZnlcbiAgICApO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlQ29tcG9uZW50ID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50SGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVNb2RpZmllciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc01vZGlmaWVySGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZFxuKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU9wdGlvbmFsSGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFja1xuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzR2V0RnJlZURlcHJlY2F0ZWRIZWxwZXIoXG4gIG9wY29kZTogRXhwcmVzc2lvbnMuRXhwcmVzc2lvblxuKTogb3Bjb2RlIGlzIEV4cHJlc3Npb25zLkdldFBhdGhGcmVlQXNEZXByZWNhdGVkSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrIHtcbiAgcmV0dXJuIChcbiAgICBBcnJheS5pc0FycmF5KG9wY29kZSkgJiYgb3Bjb2RlWzBdID09PSBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNEZXByZWNhdGVkSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4gICk7XG59XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4pO1xuXG5pbnRlcmZhY2UgUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGEgZXh0ZW5kcyBDb250YWluaW5nTWV0YWRhdGEge1xuICBvd25lcjogT3duZXI7XG4gIHVwdmFyczogc3RyaW5nW107XG59XG5cbmZ1bmN0aW9uIGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhOiBDb250YWluaW5nTWV0YWRhdGEpOiBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YSB7XG4gIGlmIChERUJVRykge1xuICAgIGlmICghbWV0YS51cHZhcnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50LCBoZWxwZXIsIG9yIG1vZGlmaWVyLCBidXQgbm8gZnJlZSB2YXJzIHdlcmUgZm91bmQnXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghbWV0YS5vd25lcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQsIGhlbHBlciwgb3IgbW9kaWZpZXIsIGJ1dCBubyBvd25lciB3YXMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0ZW1wbGF0ZSBpdCB3YXMgYmVpbmcgcmVzb2x2ZWQgZnJvbSdcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChtZXRhIGFzIHVua25vd24pIGFzIFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhO1xufVxuXG4vKipcbiAqIDxGb28vPlxuICogPEZvbz48L0Zvbz5cbiAqIDxGb28gQGFyZz17e3RydWV9fSAvPlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbXBvbmVudChcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZUNvbXBvbmVudE9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZUNvbXBvbmVudChleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAoREVCVUcgJiYgZXhwclswXSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke1xuICAgICAgICBtZXRhLnVwdmFycyFbZXhwclsxXV1cbiAgICAgIH1gXG4gICAgKTtcbiAgfVxuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzLCBvd25lciB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKFxuICAgICAgY29uc3RhbnRzLmNvbXBvbmVudChcbiAgICAgICAgZGVmaW5pdGlvbiBhcyBvYmplY3QsXG4gICAgICAgIGV4cGVjdChvd25lciwgJ0JVRzogZXhwZWN0ZWQgb3duZXIgd2hlbiByZXNvbHZpbmcgY29tcG9uZW50IGRlZmluaXRpb24nKVxuICAgICAgKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpITtcblxuICAgIGlmIChERUJVRyAmJiAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBjb21wb25lbnQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIChoZWxwZXIpXG4gKiAoaGVscGVyIGFyZylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVIZWxwZXIoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24gYXMgb2JqZWN0KSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIHRoZW4oXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSwgcmVzb2x2ZXIsIG1ldGEsIGNvbnN0YW50cywgJ2hlbHBlcicpXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyISkhO1xuXG4gICAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgaGVscGVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiA8ZGl2IHt7bW9kaWZpZXJ9fS8+XG4gKiA8ZGl2IHt7bW9kaWZpZXIgYXJnfX0vPlxuICogPEZvbyB7e21vZGlmaWVyfX0vPlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU1vZGlmaWVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlTW9kaWZpZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVNb2RpZmllcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgbW9kaWZpZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKGRlZmluaXRpb24gYXMgb2JqZWN0KSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIGxldCB7IHVwdmFycyB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBtb2RpZmllciA9IHJlc29sdmVyLmxvb2t1cEJ1aWx0SW5Nb2RpZmllcihuYW1lKTtcblxuICAgIGlmIChERUJVRyAmJiBtb2RpZmllciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBtb2RpZmllciBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgaXQgd2FzIG5vdCBpbiBzY29wZTogJHtuYW1lfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIobW9kaWZpZXIhLCBuYW1lKSk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBtb2RpZmllciA9IHJlc29sdmVyLmxvb2t1cE1vZGlmaWVyKG5hbWUsIG93bmVyKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgbW9kaWZpZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIG1vZGlmaWVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihtb2RpZmllciwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICoge3tjb21wb25lbnQtb3ItaGVscGVyIGFyZ319XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29tcG9uZW50T3JIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkNvbXBvbmVudCwgaWZIZWxwZXIgfV06IFJlc29sdmVDb21wb25lbnRPckhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KFxuICAgIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCBvciBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJ1xuICApO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcywgb3duZXIgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgbGV0IGNvbXBvbmVudCA9IGNvbnN0YW50cy5jb21wb25lbnQoXG4gICAgICBkZWZpbml0aW9uIGFzIG9iamVjdCxcbiAgICAgIGV4cGVjdChvd25lciwgJ0JVRzogZXhwZWN0ZWQgb3duZXIgd2hlbiByZXNvbHZpbmcgY29tcG9uZW50IGRlZmluaXRpb24nKSxcbiAgICAgIHRydWVcbiAgICApO1xuXG4gICAgaWYgKGNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uIGFzIG9iamVjdCwgbnVsbCwgdHJ1ZSk7XG5cbiAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgZWl0aGVyIGEgY29tcG9uZW50IG9yIGhlbHBlciwgYnV0IGl0IGRpZCBub3QgaGF2ZSBhIGNvbXBvbmVudCBtYW5hZ2VyIG9yIGhlbHBlciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIHZhbHVlIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgICBkZWZpbml0aW9uXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZkhlbHBlcihleHBlY3QoaGVscGVyLCAnQlVHOiBoZWxwZXIgbXVzdCBleGlzdCcpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgaWZIZWxwZXIoXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKFxuICAgICAgICBleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsXG4gICAgICAgIHJlc29sdmVyLFxuICAgICAgICBtZXRhLFxuICAgICAgICBjb25zdGFudHMsXG4gICAgICAgICdjb21wb25lbnQgb3IgaGVscGVyJ1xuICAgICAgKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGRlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgY29tcG9uZW50IG9yIGhlbHBlciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIhLCBuYW1lKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogPEZvbyBAYXJnPXt7aGVscGVyfX0+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3B0aW9uYWxIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkhlbHBlciwgaWZGYWxsYmFjayB9XTogUmVzb2x2ZU9wdGlvbmFsSGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlT3B0aW9uYWxIZWxwZXIoZXhwcikgfHwgaXNHZXRGcmVlRGVwcmVjYXRlZEhlbHBlcihleHByKSxcbiAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJ1xuICApO1xuICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gIGlmIChoZWxwZXIgPT09IG51bGwpIHtcbiAgICBpZkZhbGxiYWNrKG5hbWUsIG1ldGEubW9kdWxlTmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpLCBuYW1lLCBtZXRhLm1vZHVsZU5hbWUpO1xuICB9XG59XG5cbi8qKlxuICoge3ttYXliZUhlbHBlck9yQ29tcG9uZW50fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHsgaWZDb21wb25lbnQsIGlmSGVscGVyLCBpZlZhbHVlLCBpZkZhbGxiYWNrIH1dOiBSZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KFxuICAgIGlzR2V0RnJlZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIoZXhwciksXG4gICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGFuIG9wdGlvbmFsIGNvbXBvbmVudCBvciBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJ1xuICApO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcywgb3duZXIgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAgICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbClcbiAgICApIHtcbiAgICAgIC8vIFRoZSB2YWx1ZSBpcyBub3QgYW4gb2JqZWN0LCBzbyBpdCBjYW4ndCBiZSBhIGNvbXBvbmVudCBvciBoZWxwZXIuXG4gICAgICBpZlZhbHVlKGNvbnN0YW50cy52YWx1ZShkZWZpbml0aW9uKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNvbXBvbmVudCA9IGNvbnN0YW50cy5jb21wb25lbnQoXG4gICAgICBkZWZpbml0aW9uLFxuICAgICAgZXhwZWN0KG93bmVyLCAnQlVHOiBleHBlY3RlZCBvd25lciB3aGVuIHJlc29sdmluZyBjb21wb25lbnQgZGVmaW5pdGlvbicpLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICBpZiAoY29tcG9uZW50ICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSBjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24sIG51bGwsIHRydWUpO1xuXG4gICAgaWYgKGhlbHBlciAhPT0gbnVsbCkge1xuICAgICAgaWZIZWxwZXIoaGVscGVyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZlZhbHVlKGNvbnN0YW50cy52YWx1ZShkZWZpbml0aW9uKSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIGlmSGVscGVyKFxuICAgICAgbG9va3VwQnVpbHRJbkhlbHBlcihleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsIHJlc29sdmVyLCBtZXRhLCBjb25zdGFudHMsICd2YWx1ZScpXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoZGVmaW5pdGlvbiAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyKTtcblxuICAgIGlmIChoZWxwZXIgIT09IG51bGwpIHtcbiAgICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWZGYWxsYmFjayhuYW1lKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBsb29rdXBCdWlsdEluSGVscGVyKFxuICBleHByOiBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBjb25zdGFudHM6IFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICB0eXBlOiBzdHJpbmdcbik6IG51bWJlciB7XG4gIGxldCB7IHVwdmFycyB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwQnVpbHRJbkhlbHBlcihuYW1lKTtcblxuICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgLy8gS2V5d29yZCBoZWxwZXIgZGlkIG5vdCBleGlzdCwgd2hpY2ggbWVhbnMgdGhhdCB3ZSdyZSBhdHRlbXB0aW5nIHRvIHVzZSBhXG4gICAgLy8gdmFsdWUgb2Ygc29tZSBraW5kIHRoYXQgaXMgbm90IGluIHNjb3BlXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgJHt0eXBlfSBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke1xuICAgICAgICBtZXRhLnVwdmFycyFbZXhwclsxXV1cbiAgICAgIH1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBjb25zdGFudHMuaGVscGVyKGhlbHBlciEsIG5hbWUpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBZ0JBOztBQUVBLFNBQUEsY0FBQSxDQUFBLE1BQUEsRUFBc0Q7QUFDcEQsU0FBTyxLQUFLLENBQUwsT0FBQSxDQUFBLE1BQUEsS0FBeUIsTUFBTSxDQUFOLE1BQUEsS0FBaEMsQ0FBQTtBQUNEOztBQUVELFNBQUEsMEJBQUEsQ0FBQSxZQUFBLEVBQTZEO0FBQzNELFNBQ0UsVUFESyxNQUNMLEVBQ2lFO0FBQ2pFLFFBQUksQ0FBQyxjQUFjLENBQW5CLE1BQW1CLENBQW5CLEVBQTZCLE9BQUEsS0FBQTtBQUU3QixRQUFJLElBQUksR0FBRyxNQUFNLENBQWpCLENBQWlCLENBQWpCO0FBRUEsV0FDRSxJQUFJLEtBQUE7QUFBQTtBQUFKLE9BQ0EsSUFBSSxLQUFBO0FBQUE7QUFESixPQUVBLElBQUksS0FITixZQUFBO0FBUEYsR0FBQTtBQWFEOztBQUVNLElBQU0sa0JBQWtCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXJEOztBQUVBLElBQU0saUJBQWlCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXBEOztBQUVBLElBQU0sZUFBZSxHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFsRDs7QUFFQSxJQUFNLDBCQUEwQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUE3RDs7QUFJQSxJQUFNLHVCQUF1QixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUExRDs7O0FBSUQsU0FBQSx5QkFBQSxDQUFBLE1BQUEsRUFDMEI7QUFFOUIsU0FDRSxLQUFLLENBQUwsT0FBQSxDQUFBLE1BQUEsS0FBeUIsTUFBTSxDQUFOLENBQU0sQ0FBTixLQUFTO0FBQUE7QUFEcEM7QUFHRDs7QUFFTSxJ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ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29uc3RhbnRzLFxuICBDb21waWxlVGltZVJlc29sdmVyLFxuICBDb250YWluaW5nTWV0YWRhdGEsXG4gIEV4cHJlc3Npb25zLFxuICBPd25lcixcbiAgUmVzb2x2ZUNvbXBvbmVudE9wLFxuICBSZXNvbHZlQ29tcG9uZW50T3JIZWxwZXJPcCxcbiAgUmVzb2x2ZUhlbHBlck9wLFxuICBSZXNvbHZlTW9kaWZpZXJPcCxcbiAgUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXJPcCxcbiAgUmVzb2x2ZU9wdGlvbmFsSGVscGVyT3AsXG4gIFNleHBPcGNvZGVzLFxuICBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBhc3NlcnQsIGRlYnVnVG9TdHJpbmcsIGV4cGVjdCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuXG5mdW5jdGlvbiBpc0dldExpa2VUdXBsZShvcGNvZGU6IEV4cHJlc3Npb25zLkV4cHJlc3Npb24pOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuVHVwbGVFeHByZXNzaW9uIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkob3Bjb2RlKSAmJiBvcGNvZGUubGVuZ3RoID09PSAyO1xufVxuXG5mdW5jdGlvbiBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcih0eXBlVG9WZXJpZnk6IFNleHBPcGNvZGVzKSB7XG4gIHJldHVybiAoXG4gICAgb3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uXG4gICk6IG9wY29kZSBpcyBFeHByZXNzaW9ucy5HZXRGcmVlIHwgRXhwcmVzc2lvbnMuR2V0VGVtcGxhdGVTeW1ib2wgPT4ge1xuICAgIGlmICghaXNHZXRMaWtlVHVwbGUob3Bjb2RlKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgbGV0IHR5cGUgPSBvcGNvZGVbMF07XG5cbiAgICByZXR1cm4gKFxuICAgICAgdHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSB8fFxuICAgICAgdHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wgfHxcbiAgICAgIHR5cGUgPT09IHR5cGVUb1ZlcmlmeVxuICAgICk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVDb21wb25lbnQgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU1vZGlmaWVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzTW9kaWZpZXJIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkXG4pO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlT3B0aW9uYWxIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHZXRGcmVlRGVwcmVjYXRlZEhlbHBlcihcbiAgb3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uXG4pOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuR2V0UGF0aEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2sge1xuICByZXR1cm4gKFxuICAgIEFycmF5LmlzQXJyYXkob3Bjb2RlKSAmJiBvcGNvZGVbMF0gPT09IFNleHBPcGNvZGVzLkdldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2tcbiAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihcbiAgU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2tcbik7XG5cbmludGVyZmFjZSBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YSBleHRlbmRzIENvbnRhaW5pbmdNZXRhZGF0YSB7XG4gIG93bmVyOiBPd25lcjtcbiAgdXB2YXJzOiBzdHJpbmdbXTtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSk6IFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhIHtcbiAgaWYgKERFQlVHKSB7XG4gICAgaWYgKCFtZXRhLnVwdmFycykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQsIGhlbHBlciwgb3IgbW9kaWZpZXIsIGJ1dCBubyBmcmVlIHZhcnMgd2VyZSBmb3VuZCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFtZXRhLm93bmVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCwgaGVscGVyLCBvciBtb2RpZmllciwgYnV0IG5vIG93bmVyIHdhcyBhc3NvY2lhdGVkIHdpdGggdGhlIHRlbXBsYXRlIGl0IHdhcyBiZWluZyByZXNvbHZlZCBmcm9tJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKG1ldGEgYXMgdW5rbm93bikgYXMgUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGE7XG59XG5cbi8qKlxuICogPEZvby8+XG4gKiA8Rm9vPjwvRm9vPlxuICogPEZvbyBAYXJnPXt7dHJ1ZX19IC8+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29tcG9uZW50KFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlQ29tcG9uZW50T3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmIChERUJVRyAmJiBleHByWzBdID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCB0aGF0IHZhbHVlIHdhcyBub3QgaW4gc2NvcGU6ICR7XG4gICAgICAgIG1ldGEudXB2YXJzIVtleHByWzFdXVxuICAgICAgfWBcbiAgICApO1xuICB9XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMsIG93bmVyIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oXG4gICAgICBjb25zdGFudHMuY29tcG9uZW50KFxuICAgICAgICBkZWZpbml0aW9uIGFzIG9iamVjdCxcbiAgICAgICAgZXhwZWN0KG93bmVyLCAnQlVHOiBleHBlY3RlZCBvd25lciB3aGVuIHJlc29sdmluZyBjb21wb25lbnQgZGVmaW5pdGlvbicpXG4gICAgICApXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcikhO1xuXG4gICAgaWYgKERFQlVHICYmICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGNvbXBvbmVudCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICogKGhlbHBlcilcbiAqIChoZWxwZXIgYXJnKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZUhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZUhlbHBlcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgdGhlbihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLCByZXNvbHZlciwgbWV0YSwgY29uc3RhbnRzLCAnaGVscGVyJylcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIhKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBoZWxwZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIDxkaXYge3ttb2RpZmllcn19Lz5cbiAqIDxkaXYge3ttb2RpZmllciBhcmd9fS8+XG4gKiA8Rm9vIHt7bW9kaWZpZXJ9fS8+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTW9kaWZpZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVNb2RpZmllck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZU1vZGlmaWVyKGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBtb2RpZmllciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgbGV0IHsgdXB2YXJzIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IG1vZGlmaWVyID0gcmVzb2x2ZXIubG9va3VwQnVpbHRJbk1vZGlmaWVyKG5hbWUpO1xuXG4gICAgaWYgKERFQlVHICYmIG1vZGlmaWVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIG1vZGlmaWVyIGluIGEgc3RyaWN0IG1vZGUgdGVtcGxhdGUsIGJ1dCBpdCB3YXMgbm90IGluIHNjb3BlOiAke25hbWV9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihtb2RpZmllciEsIG5hbWUpKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IG1vZGlmaWVyID0gcmVzb2x2ZXIubG9va3VwTW9kaWZpZXIobmFtZSwgb3duZXIpITtcblxuICAgIGlmIChERUJVRyAmJiBtb2RpZmllciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgbW9kaWZpZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKG1vZGlmaWVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiB7e2NvbXBvbmVudC1vci1oZWxwZXIgYXJnfX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnRPckhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmQ29tcG9uZW50LCBpZkhlbHBlciB9XTogUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwciksXG4gICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IG9yIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzLCBvd25lciB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICBsZXQgY29tcG9uZW50ID0gY29uc3RhbnRzLmNvbXBvbmVudChcbiAgICAgIGRlZmluaXRpb24gYXMgb2JqZWN0LFxuICAgICAgZXhwZWN0KG93bmVyLCAnQlVHOiBleHBlY3RlZCBvd25lciB3aGVuIHJlc29sdmluZyBjb21wb25lbnQgZGVmaW5pdGlvbicpLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICBpZiAoY29tcG9uZW50ICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSBjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24gYXMgb2JqZWN0LCBudWxsLCB0cnVlKTtcblxuICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byB1c2UgYSB2YWx1ZSBhcyBlaXRoZXIgYSBjb21wb25lbnQgb3IgaGVscGVyLCBidXQgaXQgZGlkIG5vdCBoYXZlIGEgY29tcG9uZW50IG1hbmFnZXIgb3IgaGVscGVyIG1hbmFnZXIgYXNzb2NpYXRlZCB3aXRoIGl0LiBUaGUgdmFsdWUgd2FzOiAke2RlYnVnVG9TdHJpbmchKFxuICAgICAgICAgIGRlZmluaXRpb25cbiAgICAgICAgKX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmSGVscGVyKGV4cGVjdChoZWxwZXIsICdCVUc6IGhlbHBlciBtdXN0IGV4aXN0JykpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBpZkhlbHBlcihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoXG4gICAgICAgIGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSxcbiAgICAgICAgcmVzb2x2ZXIsXG4gICAgICAgIG1ldGEsXG4gICAgICAgIGNvbnN0YW50cyxcbiAgICAgICAgJ2NvbXBvbmVudCBvciBoZWxwZXInXG4gICAgICApXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoZGVmaW5pdGlvbiAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBjb21wb25lbnQgb3IgaGVscGVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciEsIG5hbWUpKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiA8Rm9vIEBhcmc9e3toZWxwZXJ9fT5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVPcHRpb25hbEhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmSGVscGVyIH1dOiBSZXNvbHZlT3B0aW9uYWxIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChcbiAgICBpc0dldEZyZWVPcHRpb25hbEhlbHBlcihleHByKSB8fCBpc0dldEZyZWVEZXByZWNhdGVkSGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG4gIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgaWYgKGhlbHBlcikge1xuICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSwgbmFtZSwgbWV0YS5tb2R1bGVOYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIHt7bWF5YmVIZWxwZXJPckNvbXBvbmVudH19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmQ29tcG9uZW50LCBpZkhlbHBlciwgaWZWYWx1ZSB9XTogUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChcbiAgICBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhbiBvcHRpb25hbCBjb21wb25lbnQgb3IgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZSdcbiAgKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMsIG93bmVyIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICAgKSB7XG4gICAgICAvLyBUaGUgdmFsdWUgaXMgbm90IGFuIG9iamVjdCwgc28gaXQgY2FuJ3QgYmUgYSBjb21wb25lbnQgb3IgaGVscGVyLlxuICAgICAgaWZWYWx1ZShjb25zdGFudHMudmFsdWUoZGVmaW5pdGlvbikpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjb21wb25lbnQgPSBjb25zdGFudHMuY29tcG9uZW50KFxuICAgICAgZGVmaW5pdGlvbixcbiAgICAgIGV4cGVjdChvd25lciwgJ0JVRzogZXhwZWN0ZWQgb3duZXIgd2hlbiByZXNvbHZpbmcgY29tcG9uZW50IGRlZmluaXRpb24nKSxcbiAgICAgIHRydWVcbiAgICApO1xuXG4gICAgaWYgKGNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uLCBudWxsLCB0cnVlKTtcblxuICAgIGlmIChoZWxwZXIgIT09IG51bGwpIHtcbiAgICAgIGlmSGVscGVyKGhlbHBlcik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWZWYWx1ZShjb25zdGFudHMudmFsdWUoZGVmaW5pdGlvbikpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBpZkhlbHBlcihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLCByZXNvbHZlciwgbWV0YSwgY29uc3RhbnRzLCAndmFsdWUnKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGRlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoaGVscGVyICE9PSBudWxsKSB7XG4gICAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSkpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBsb29rdXBCdWlsdEluSGVscGVyKFxuICBleHByOiBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBjb25zdGFudHM6IFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICB0eXBlOiBzdHJpbmdcbik6IG51bWJlciB7XG4gIGxldCB7IHVwdmFycyB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwQnVpbHRJbkhlbHBlcihuYW1lKTtcblxuICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgLy8gS2V5d29yZCBoZWxwZXIgZGlkIG5vdCBleGlzdCwgd2hpY2ggbWVhbnMgdGhhdCB3ZSdyZSBhdHRlbXB0aW5nIHRvIHVzZSBhXG4gICAgLy8gdmFsdWUgb2Ygc29tZSBraW5kIHRoYXQgaXMgbm90IGluIHNjb3BlXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgJHt0eXBlfSBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke1xuICAgICAgICBtZXRhLnVwdmFycyFbZXhwclsxXV1cbiAgICAgIH1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBjb25zdGFudHMuaGVscGVyKGhlbHBlciEsIG5hbWUpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

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

var _env = require("@glimmer/env");
function _createForOfIteratorHelperLoose(o, allowArrayLike) {

@@ -149,21 +147,3 @@ var it;

, function (op, _ref7) {
var freeVar = _ref7[1],
path = _ref7[2];
op(1010
/* ResolveLocal */
, freeVar, function (name, moduleName) {
if (_env.DEBUG) {
var propertyPath = path ? [name].concat(path).join('.') : name;
(0, _globalContext.deprecate)("The `" + propertyPath + "` property path was used in the `" + moduleName + "` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this." + propertyPath + "}}", false, {
id: 'this-property-fallback'
});
}
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
});
var path = _ref7[2];
withPath(op, path);

@@ -192,13 +172,2 @@ });

(0, _vm2.Call)(op, handle, null, null);
},
ifFallback: function ifFallback(name, moduleName) {
(0, _globalContext.deprecate)("The `" + name + "` property was used in the `" + moduleName + "` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this." + name + "}}", false, {
id: 'this-property-fallback'
});
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
}

@@ -225,13 +194,2 @@ });

(0, _vm2.Call)(op, handle, null, null);
},
ifFallback: function ifFallback(name, moduleName) {
(0, _globalContext.deprecate)("The `" + name + "` property was used in the `" + moduleName + "` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this." + name + "}}", false, {
id: 'this-property-fallback'
});
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
}

@@ -331,2 +289,2 @@ });

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFPQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVPLElBQU0sV0FBVyxHQUFHLElBQXBCLG9CQUFvQixFQUFwQjs7QUFFUCxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFvQyxVQUFBLEVBQUEsRUFBQSxJQUFBLEVBQWtCO0FBQUEsTUFBbEIsS0FBa0IsR0FBQSxJQUFBLENBQUEsQ0FBQSxDQUFBOztBQUNwRCxPQUFBLElBQUEsU0FBQSxHQUFBLCtCQUFBLENBQUEsS0FBQSxDQUFBLEVBQUEsS0FBQSxFQUFBLENBQUEsQ0FBQSxLQUFBLEdBQUEsU0FBQSxFQUFBLEVBQUEsSUFBQSxHQUF3QjtBQUFBLFFBQXhCLElBQXdCLEdBQUEsS0FBQSxDQUFBLEtBQUE7QUFDdEIsb0JBQUksRUFBSixFQUFBLElBQUE7QUFDRDs7QUFFRCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBWSxLQUFLLENBQW5CLE1BQUUsQ0FBRjtBQUxGLENBQUE7QUFRQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFrQyxVQUFBLEVBQUEsRUFBQSxLQUFBLEVBQTBDO0FBQUEsTUFBckMsVUFBcUMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsTUFBckMsVUFBcUMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsTUFBMUMsS0FBMEMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBOztBQUMxRSxNQUFJLGlDQUFKLFVBQUksQ0FBSixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxVQUFBLEVBQXVELFVBQUQsTUFB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LEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsMEJBQVUsRUFBVixFQUFVLFVBQVYsRUFBVSxJQUFWLEVBQUEsS0FBQTtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBRixPQUFFLENBQUY7QUFMRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRXhwcmVzc2lvblNleHBPcGNvZGUsXG4gIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUsXG4gIE1hY2hpbmVPcCxcbiAgT3AsXG4gIFNleHBPcGNvZGVzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICR2MCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IGFzc2VydCwgZGVwcmVjYXRlIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvZXhwcic7XG5pbXBvcnQgeyBpc0dldEZyZWVIZWxwZXIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgU2ltcGxlQXJncyB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcbmltcG9ydCB7IENhbGwsIENhbGxEeW5hbWljLCBDdXJyeSwgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZSB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvdm0nO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoRXhwcmVzc2lvbk9wIH0gZnJvbSAnLi9jb21waWxlcnMnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuXG5leHBvcnQgY29uc3QgRVhQUkVTU0lPTlMgPSBuZXcgQ29tcGlsZXJzPFB1c2hFeHByZXNzaW9uT3AsIEV4cHJlc3Npb25TZXhwT3Bjb2RlPigpO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ29uY2F0LCAob3AsIFssIHBhcnRzXSkgPT4ge1xuICBmb3IgKGxldCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgZXhwcihvcCwgcGFydCk7XG4gIH1cblxuICBvcChPcC5Db25jYXQsIHBhcnRzLmxlbmd0aCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkNhbGwsIChvcCwgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVIZWxwZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgQ2FsbChvcCwgaGFuZGxlLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgQ2FsbER5bmFtaWMob3AsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgfVxufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5DdXJyeSwgKG9wLCBbLCBleHByLCB0eXBlLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgQ3Vycnkob3AsIHR5cGUsIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3ltYm9sLCAob3AsIFssIHN5bSwgcGF0aF0pID0+IHtcbiAgb3AoT3AuR2V0VmFyaWFibGUsIHN5bSk7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVUZW1wbGF0ZUxvY2FsLCBzeW0sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgIG9wKE9wLkNvbnN0YW50UmVmZXJlbmNlLCBoYW5kbGUpO1xuICAgIHdpdGhQYXRoKG9wLCBwYXRoKTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUsIChvcCwgWywgc3ltLCBfcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlRnJlZSwgc3ltLCAoX2hhbmRsZTogdW5rbm93bikgPT4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBzdHJpY3QgbW9kZVxuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzRmFsbGJhY2ssIChvcCwgWywgZnJlZVZhciwgcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGZyZWVWYXIsIChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgIGlmIChERUJVRykge1xuICAgICAgbGV0IHByb3BlcnR5UGF0aCA9IHBhdGggPyBbbmFtZSwgLi4ucGF0aF0uam9pbignLicpIDogbmFtZTtcblxuICAgICAgZGVwcmVjYXRlKFxuICAgICAgICBgVGhlIFxcYCR7cHJvcGVydHlQYXRofVxcYCBwcm9wZXJ0eSBwYXRoIHdhcyB1c2VkIGluIHRoZSBcXGAke21vZHVsZU5hbWV9XFxgIHRlbXBsYXRlIHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke3Byb3BlcnR5UGF0aH19fWAsXG4gICAgICAgIGZhbHNlLFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICB9KTtcbiAgd2l0aFBhdGgob3AsIHBhdGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjaywgKCkgPT4ge1xuICAvLyBUT0RPOiBUaGUgbG9naWMgZm9yIHRoaXMgb3Bjb2RlIGN1cnJlbnRseSBleGlzdHMgaW4gU1RBVEVNRU5UUy5BcHBlbmQsIHNpbmNlXG4gIC8vIHdlIHdhbnQgZGlmZmVyZW50IHdyYXBwaW5nIGxvZ2ljIGRlcGVuZGluZyBvbiBpZiB3ZSBhcmUgaW52b2tpbmcgYSBjb21wb25lbnQsXG4gIC8vIGhlbHBlciwgb3Ige3t0aGlzfX0gZmFsbGJhY2suIEV2ZW50dWFsbHkgd2UgZml4IHRoZSBvcGNvZGVzIHNvIHRoYXQgd2UgY2FuXG4gIC8vIHRyYXZlcnNlIHRoZSBzdWJleHByZXNzaW9uIHRyZWUgbGlrZSBub3JtYWwgaW4gdGhpcyBsb2NhdGlvbi5cbiAgdGhyb3cgbmV3IEVycm9yKCd1bmltcGxlbWVudGVkIG9wY29kZScpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8ZGl2IGlkPXt7YmF6fX0+XG5cbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGV4cHJbMV0sIChfbmFtZTogc3RyaW5nKSA9PiB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxIZWxwZXIsIGV4cHIsIHtcbiAgICAgIGlmSGVscGVyOiAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2s6IChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgYFRoZSBcXGAke25hbWV9XFxgIHByb3BlcnR5IHdhcyB1c2VkIGluIHRoZSBcXGAke21vZHVsZU5hbWV9XFxgIHRlbXBsYXRlIHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke25hbWV9fX1gLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndGhpcy1wcm9wZXJ0eS1mYWxsYmFjaycsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIG9wKE9wLkdldFZhcmlhYmxlLCAwKTtcbiAgICAgICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8Rm9vIEBiYXI9e3tiYXp9fT5cblxuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZXhwclsxXSwgKF9uYW1lOiBzdHJpbmcpID0+IHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbEhlbHBlciwgZXhwciwge1xuICAgICAgaWZIZWxwZXI6IChoYW5kbGU6IG51bWJlciwgbmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgYXNzZXJ0KGV4cHJbMl0gJiYgZXhwclsyXS5sZW5ndGggPT09IDEsICdbQlVHXSBNaXNzaW5nIGFyZ3VtZW50IG5hbWUnKTtcblxuICAgICAgICBsZXQgYXJnID0gZXhwclsyXVswXTtcblxuICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgYFRoZSBcXGAke25hbWV9XFxgIGhlbHBlciB3YXMgdXNlZCBpbiB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCB0ZW1wbGF0ZSBhcyBcXGAke2FyZ309e3ske25hbWV9fX1cXGAuIGAgK1xuICAgICAgICAgICAgYFRoaXMgaXMgYW1iaWdpb3VzIGJldHdlZW4gd2FudGluZyB0aGUgXFxgJHthcmd9XFxgIGFyZ3VtZW50IHRvIGJlIHRoZSBcXGAke25hbWV9XFxgIGhlbHBlciBpdHNlbGYsIGAgK1xuICAgICAgICAgICAgYG9yIHRoZSByZXN1bHQgb2YgaW52b2tpbmcgdGhlIFxcYCR7bmFtZX1cXGAgaGVscGVyIChjdXJyZW50IGJlaGF2aW9yKS4gYCArXG4gICAgICAgICAgICBgVGhpcyBpbXBsaWNpdCBpbnZvY2F0aW9uIGJlaGF2aW9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQuXFxuXFxuYCArXG4gICAgICAgICAgICBgSW5zdGVhZCwgcGxlYXNlIGV4cGxpY2l0bHkgaW52b2tlIHRoZSBoZWxwZXIgd2l0aCBwYXJlbnRoZXNpcywgaS5lLiBcXGAke2FyZ309e3soJHtuYW1lfSl9fVxcYC5cXG5cXG5gICtcbiAgICAgICAgICAgIGBOb3RlOiB0aGUgcGFyZW50aGVzaXMgYXJlIG9ubHkgcmVxdWlyZWQgaW4gdGhpcyBleGFjdCBzY2VuYXJpbyB3aGVyZSBhbiBhbWJpZ3VpdHkgaXMgcHJlc2VudCDigJMgd2hlcmUgYCArXG4gICAgICAgICAgICBgXFxgJHtuYW1lfVxcYCByZWZlcmVzIHRvIGEgZ2xvYmFsIGhlbHBlciAoYXMgb3Bwb3NlZCB0byBhIGxvY2FsIHZhcmlhYmxlKSwgQU5EIGAgK1xuICAgICAgICAgICAgYHRoZSBcXGAke25hbWV9XFxgIGhlbHBlciBpbnZvY2F0aW9uIGRvZXMgbm90IHRha2UgYW55IGFyZ3VtZW50cywgQU5EIGAgK1xuICAgICAgICAgICAgYHRoaXMgb2NjdXJzIGluIGEgbmFtZWQgYXJndW1lbnQgcG9zaXRpb24gb2YgYSBjb21wb25lbnQgaW52b2NhdGlvbi5cXG5cXG5gICtcbiAgICAgICAgICAgIGBXZSBleHBlY3QgdGhpcyBjb21iaW5hdGlvbiB0byBiZSBxdWl0ZSByYXJlLCBhcyBtb3N0IGhlbHBlcnMgcmVxdWlyZSBhdCBsZWFzdCBvbmUgYXJndW1lbnQuIGAgK1xuICAgICAgICAgICAgYFRoZXJlIGlzIG5vIG5lZWQgdG8gcmVmYWN0b3IgaGVscGVyIGludm9jYXRpb25zIGluIGNhc2VzIHdoZXJlIHRoaXMgZGVwcmVjYXRpb24gd2FzIG5vdCB0cmlnZ2VyZWQuYCxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2FyZ3VtZW50LWxlc3MtaGVscGVyLXBhcmVuLWxlc3MtaW52b2NhdGlvbicsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIENhbGwob3AsIGhhbmRsZSwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkZhbGxiYWNrOiAobmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgZGVwcmVjYXRlKFxuICAgICAgICAgIGBUaGUgXFxgJHtuYW1lfVxcYCBwcm9wZXJ0eSB3YXMgdXNlZCBpbiB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCB0ZW1wbGF0ZSB3aXRob3V0IHVzaW5nIFxcYHRoaXNcXGAuIFRoaXMgZmFsbGJhY2sgYmVoYXZpb3IgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYWxsIHByb3BlcnRpZXMgbXVzdCBiZSBsb29rZWQgdXAgb24gXFxgdGhpc1xcYCB3aGVuIHVzZWQgaW4gdGhlIHRlbXBsYXRlOiB7e3RoaXMuJHtuYW1lfX19YCxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ3RoaXMtcHJvcGVydHktZmFsbGJhY2snLFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmZ1bmN0aW9uIHdpdGhQYXRoKG9wOiBQdXNoRXhwcmVzc2lvbk9wLCBwYXRoPzogc3RyaW5nW10pIHtcbiAgaWYgKHBhdGggPT09IHVuZGVmaW5lZCB8fCBwYXRoLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aC5sZW5ndGg7IGkrKykge1xuICAgIG9wKE9wLkdldFByb3BlcnR5LCBwYXRoW2ldKTtcbiAgfVxufVxuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuVW5kZWZpbmVkLCAob3ApID0+IFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCkpO1xuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkhhc0Jsb2NrLCAob3AsIFssIGJsb2NrXSkgPT4ge1xuICBleHByKG9wLCBibG9jayk7XG4gIG9wKE9wLkhhc0Jsb2NrKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuSGFzQmxvY2tQYXJhbXMsIChvcCwgWywgYmxvY2tdKSA9PiB7XG4gIGV4cHIob3AsIGJsb2NrKTtcbiAgb3AoT3AuU3ByZWFkQmxvY2spO1xuICBvcChPcC5Db21waWxlQmxvY2spO1xuICBvcChPcC5IYXNCbG9ja1BhcmFtcyk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLklmSW5saW5lLCAob3AsIFssIGNvbmRpdGlvbiwgdHJ1dGh5LCBmYWxzeV0pID0+IHtcbiAgLy8gUHVzaCBpbiByZXZlcnNlIG9yZGVyXG4gIGV4cHIob3AsIGZhbHN5KTtcbiAgZXhwcihvcCwgdHJ1dGh5KTtcbiAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgb3AoT3AuSWZJbmxpbmUpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Ob3QsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuTm90KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RHluYW1pY1ZhciwgKG9wLCBbLCBleHByZXNzaW9uXSkgPT4ge1xuICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgb3AoT3AuR2V0RHluYW1pY1Zhcik7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkxvZywgKG9wLCBbLCBwb3NpdGlvbmFsXSkgPT4ge1xuICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbnVsbCwgZmFsc2UpO1xuICBvcChPcC5Mb2cpO1xuICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICBvcChPcC5GZXRjaCwgJHYwKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFPQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVPLElBQU0sV0FBVyxHQUFHLElBQXBCLG9CQUFvQixFQUFwQjs7QUFFUCxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFvQyxVQUFBLEVBQUEsRUFBQSxJQUFBLEVBQWtCO0FBQUEsTUFBbEIsS0FBa0IsR0FBQSxJQUFBLENBQUEsQ0FBQSxDQUFBOztBQUNwRCxPQUFBLElBQUEsU0FBQSxHQUFBLCtCQUFBLENBQUEsS0FBQSxDQUFBLEVBQUEsS0FBQSxFQUFBLENBQUEsQ0FBQSxLQUFBLEdBQUEsU0FBQSxFQUFBLEVBQUEsSUFBQSxHQUF3QjtBQUFBLFFBQXhCLElBQXdCLEdBQUEsS0FBQSxDQUFBLEtBQUE7QUFDdEIsb0JBQUksRUFBSixFQUFBLElBQUE7QUFDRDs7QUFFRCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBWSxLQUFLLENBQW5CLE1BQUUsQ0FBRjtBQUxGLENBQUE7QUFRQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFrQyxVQUFBLEVBQUEsRUFBQSxLQUFBLEVBQTBDO0FBQUEsTUFBckMsVUFBcUMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsTUFBckMsVUFBcUMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsTUFBMUMsS0FBMEMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBOztBQUMxRSxNQUFJLGlDQUFKLFVBQUksQ0FBSixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxVQUFBLEVBQXVELFVBQUQsTUFBQyxFQUFrQjtBQUN6RSxxQkFBSSxFQUFKLEVBQUksTUFBSixFQUFJLFVBQUosRUFBQSxLQUFBO0FBREYsS0FBRSxDQUFGO0FBREYsR0FBQSxNQUlPO0FBQ0wsb0JBQUksRUFBSixFQUFBLFVBQUE7QUFDQSwwQkFBVyxFQUFYLEVBQVcsVUFBWCxFQUFBLEtBQUE7QUFDRDtBQVJILENBQUE7QUFXQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFtQyxVQUFBLEVBQUEsRUFBQSxLQUFBLEVBQTBDO0FBQUEsTUFBckMsSUFBcUMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsTUFBckMsSUFBcUMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsTUFBckMsVUFBcUMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsTUFBMUMsS0FBMEMsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQzNFLGtCQUFLLEVBQUwsRUFBSyxJQUFMLEVBQUssSUFBTCxFQUFLLFVBQUwsRUFBQSxLQUFBO0FBREYsQ0FBQTtBQUlBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQXVDLFVBQUEsRUFBQSxFQUFBLEtBQUEsRUFBc0I7QUFBQSxNQUFqQixHQUFpQixHQUFBLEtBQUEsQ0FBQSxDQUFBLENBQUE7QUFBQSxNQUF0QixJQUFzQixHQUFBLEtBQUEsQ0FBQSxDQUFBLENBQUE7QUFDM0QsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQUYsR0FBRSxDQUFGO0FBQ0EsRUFBQSxRQUFRLENBQUEsRUFBQSxFQUFSLElBQVEsQ0FBUjtBQUZGLENBQUE7QUFLQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUErQyxVQUFBLEVBQUEsRUFBQSxLQUFBLEVBQXNCO0FBQUEsTUFBakIsR0FBaUIsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQUEsTUFBdEIsSUFBc0IsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQ25FLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFBLEdBQUEsRUFBdUQsVUFBRCxNQUFDLEVBQWtCO0FBQ3pFLElBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxNQUFGLE1BQUUsQ0FBRjtBQUNBLElBQUEsUUFBUSxDQUFBLEVBQUEsRUFBUixJQUFRLENBQVI7QUFGRixHQUFFLENBQUY7QUFERixDQUFBO0FBT0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBMkMsVUFBQSxFQUFBLEVBQUEsS0FBQSxFQUF1QjtBQUFBLE1BQWxCLEdBQWtCLEdBQUEsS0FBQSxDQUFBLENBQUEsQ0FBQTtBQUFBLE1BQXZCLEtBQXVCLEdBQUEsS0FBQSxDQUFBLENBQUEsQ0FBQTtBQUNoRSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBQSxHQUFBLEVBQThDLFVBQUQsT0FBQyxFQUFvQixDQUNsRTtBQURGLEdBQUUsQ0FBRjtBQURGLENBQUE7QUFNQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUErQyxVQUFBLEVBQUEsRUFBQSxLQUFBLEVBQW1CO0FBQUEsTUFBbkIsSUFBbUIsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQ2hFLEVBQUEsUUFBUSxDQUFBLEVBQUEsRUFBUixJQUFRLENBQVI7QUFERixDQUFBO0FBSUEsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBMEUsWUFBSztBQUM3RTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQU0sSUFBQSxLQUFBLENBQU4sc0JBQU0sQ0FBTjtBQUxGLENBQUE7QUFRQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUErRCxVQUFBLEVBQUEsRUFBQSxJQUFBLEVBQWE7QUFDMUU7QUFFQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBeUMsSUFBSSxDQUE3QyxDQUE2QyxDQUE3QyxFQUFtRCxVQUFELEtBQUMsRUFBaUI7QUFDcEUsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQUEsSUFBQSxFQUF3RDtBQUN4RCxNQUFBLFFBQVEsRUFBRyxTQUFBLFFBQUEsQ0FBRCxNQUFDLEVBQWtCO0FBQzNCLHVCQUFJLEVBQUosRUFBSSxNQUFKLEVBQUksSUFBSixFQUFBLElBQUE7QUFDRDtBQUh1RCxLQUF4RCxDQUFGO0FBREYsR0FBRSxDQUFGO0FBSEYsQ0FBQTtBQVlBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQXlFLFVBQUEsRUFBQSxFQUFBLElBQUEsRUFBYTtBQUNwRjtBQUVBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUF5QyxJQUFJLENBQTdDLENBQTZDLENBQTdDLEVBQW1ELFVBQUQsS0FBQyxFQUFpQjtBQUNwRSxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxJQUFBLEVBQXdEO0FBQ3hELE1BQUEsUUFBUSxFQUFFLFNBQUEsUUFBQSxDQUFBLE1BQUEsRUFBQSxJQUFBLEVBQUEsVUFBQSxFQUFxRDtBQUM3RCxtQ0FBTyxJQUFJLENBQUosQ0FBSSxDQUFKLElBQVcsSUFBSSxDQUFKLENBQUksQ0FBSixDQUFBLE1BQUEsS0FBWixDQUFOLEVBQUEsNkJBQUE7QUFFQSxZQUFJLEdBQUcsR0FBRyxJQUFJLENBQUosQ0FBSSxDQUFKLENBQVYsQ0FBVSxDQUFWO0FBRUEsc0NBQ0UsVUFBQSxJQUFBLEdBQUEsNEJBQUEsR0FBQSxVQUFBLEdBQUEsaUJBQUEsR0FBQSxHQUFBLEdBQUEsS0FBQSxHQUFBLElBQUEsR0FBQSxPQUFBLElBQUEsNENBQUEsR0FBQSxHQUFBLHdCQUFBLEdBQUEsSUFBQSxHQUFBLG1CQUFBLEtBQUEsb0NBQUEsSUFBQSxHQUFBLCtCQUFBLElBQUEsNERBQUEsSUFBQSwwRUFBQSxHQUFBLEdBQUEsTUFBQSxHQUFBLElBQUEsR0FBQSxXQUFBLElBQUEsNEdBQUEsSUFBQSxNQUFBLElBQUEsR0FBQSxxRUFBQSxLQUFBLFVBRE8sSUFDUCxHQUFBLHVEQUFBLElBQUEseUVBQUEsR0FBQSw4RkFBQSxHQURPLG9HQUFULEVBQVMsS0FBVCxFQWFFO0FBQ0UsVUFBQSxFQUFFLEVBQUU7QUFETixTQWJGO0FBa0JBLHVCQUFJLEVBQUosRUFBSSxNQUFKLEVBQUksSUFBSixFQUFBLElBQUE7QUFDRDtBQXpCdUQsS0FBeEQsQ0FBRjtBQURGLEdBQUUsQ0FBRjtBQUhGLENBQUE7O0FBa0NBLFNBQUEsUUFBQSxDQUFBLEVBQUEsRUFBQSxJQUFBLEVBQXVEO0FBQ3JELE1BQUksSUFBSSxLQUFKLFNBQUEsSUFBc0IsSUFBSSxDQUFKLE1BQUEsS0FBMUIsQ0FBQSxFQUE2Qzs7QUFFN0MsT0FBSyxJQUFJLENBQUMsR0FBVixDQUFBLEVBQWdCLENBQUMsR0FBRyxJQUFJLENBQXhCLE1BQUEsRUFBaUMsQ0FBakMsRUFBQSxFQUFzQztBQUNwQyxJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBaUIsSUFBSSxDQUF2QixDQUF1QixDQUFyQixDQUFGO0FBQ0Q7QUFDRjs7QUFFRCxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUF3QyxVQUFELEVBQUMsRUFBRDtBQUFBLFNBQVEsaUNBQXNCLEVBQXRCLEVBQS9DLFNBQStDLENBQVI7QUFBdkMsQ0FBQTtBQUNBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQXNDLFVBQUEsRUFBQSxFQUFBLEtBQUEsRUFBa0I7QUFBQSxNQUFsQixLQUFrQixHQUFBLEtBQUEsQ0FBQSxDQUFBLENBQUE7QUFDdEQsa0JBQUksRUFBSixFQUFBLEtBQUE7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUZGLENBQUE7QUFLQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUE0QyxVQUFBLEVBQUEsRUFBQSxLQUFBLEVBQWtCO0FBQUEsTUFBbEIsS0FBa0IsR0FBQSxLQUFBLENBQUEsQ0FBQSxDQUFBO0FBQzVELGtCQUFJLEVBQUosRUFBQSxLQUFBO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBSkYsQ0FBQTtBQU9BLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQXNDLFVBQUEsRUFBQSxFQUFBLE1BQUEsRUFBcUM7QUFBQSxNQUFoQyxTQUFnQyxHQUFBLE1BQUEsQ0FBQSxDQUFBLENBQUE7QUFBQSxNQUFoQyxNQUFnQyxHQUFBLE1BQUEsQ0FBQSxDQUFBLENBQUE7QUFBQSxNQUFyQyxLQUFxQyxHQUFBLE1BQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUN6RTs7QUFDQSxrQkFBSSxFQUFKLEVBQUEsS0FBQTtBQUNBLGtCQUFJLEVBQUosRUFBQSxNQUFBO0FBQ0Esa0JBQUksRUFBSixFQUFBLFNBQUE7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUxGLENBQUE7QUFRQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFpQyxVQUFBLEVBQUEsRUFBQSxNQUFBLEVBQWtCO0FBQUEsTUFBbEIsS0FBa0IsR0FBQSxNQUFBLENBQUEsQ0FBQSxDQUFBO0FBQ2pELGtCQUFJLEVBQUosRUFBQSxLQUFBO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFGRixDQUFBO0FBS0EsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBMkMsVUFBQSxFQUFBLEVBQUEsTUFBQSxFQUF1QjtBQUFBLE1BQXZCLFVBQXVCLEdBQUEsTUFBQSxDQUFBLENBQUEsQ0FBQTtBQUNoRSxrQkFBSSxFQUFKLEVBQUEsVUFBQTtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBRkYsQ0FBQTtBQUtBLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQWlDLFVBQUEsRUFBQSxFQUFBLE1BQUEsRUFBdUI7QUFBQSxNQUF2QixVQUF1QixHQUFBLE1BQUEsQ0FBQSxDQUFBLENBQUE7QUFDdEQsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSwwQkFBVSxFQUFWLEVBQVUsVUFBVixFQUFVLElBQVYsRUFBQSxLQUFBO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxJQUFGLE9BQUUsQ0FBRjtBQUxGLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFeHByZXNzaW9uU2V4cE9wY29kZSxcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgJHYwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHsgYXNzZXJ0LCBkZXByZWNhdGUgfSBmcm9tICdAZ2xpbW1lci9nbG9iYWwtY29udGV4dCc7XG5pbXBvcnQgeyBleHByIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9leHByJztcbmltcG9ydCB7IGlzR2V0RnJlZUhlbHBlciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvcmVzb2x1dGlvbic7XG5pbXBvcnQgeyBTaW1wbGVBcmdzIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9zaGFyZWQnO1xuaW1wb3J0IHsgQ2FsbCwgQ2FsbER5bmFtaWMsIEN1cnJ5LCBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy92bSc7XG5pbXBvcnQgeyBDb21waWxlcnMsIFB1c2hFeHByZXNzaW9uT3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5cbmV4cG9ydCBjb25zdCBFWFBSRVNTSU9OUyA9IG5ldyBDb21waWxlcnM8UHVzaEV4cHJlc3Npb25PcCwgRXhwcmVzc2lvblNleHBPcGNvZGU+KCk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Db25jYXQsIChvcCwgWywgcGFydHNdKSA9PiB7XG4gIGZvciAobGV0IHBhcnQgb2YgcGFydHMpIHtcbiAgICBleHByKG9wLCBwYXJ0KTtcbiAgfVxuXG4gIG9wKE9wLkNvbmNhdCwgcGFydHMubGVuZ3RoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ2FsbCwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUhlbHBlcihleHByZXNzaW9uKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUhlbHBlciwgZXhwcmVzc2lvbiwgKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgICBDYWxsKG9wLCBoYW5kbGUsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgICBDYWxsRHluYW1pYyhvcCwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICB9XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkN1cnJ5LCAob3AsIFssIGV4cHIsIHR5cGUsIHBvc2l0aW9uYWwsIG5hbWVkXSkgPT4ge1xuICBDdXJyeShvcCwgdHlwZSwgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChPcC5HZXRWYXJpYWJsZSwgc3ltKTtcbiAgd2l0aFBhdGgob3AsIHBhdGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCwgKG9wLCBbLCBzeW0sIHBhdGhdKSA9PiB7XG4gIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZVRlbXBsYXRlTG9jYWwsIHN5bSwgKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgd2l0aFBhdGgob3AsIHBhdGgpO1xuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSwgKG9wLCBbLCBzeW0sIF9wYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVGcmVlLCBzeW0sIChfaGFuZGxlOiB1bmtub3duKSA9PiB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IGluIHN0cmljdCBtb2RlXG4gIH0pO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNGYWxsYmFjaywgKG9wLCBbLCAsIHBhdGhdKSA9PiB7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50T3JIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssICgpID0+IHtcbiAgLy8gVE9ETzogVGhlIGxvZ2ljIGZvciB0aGlzIG9wY29kZSBjdXJyZW50bHkgZXhpc3RzIGluIFNUQVRFTUVOVFMuQXBwZW5kLCBzaW5jZVxuICAvLyB3ZSB3YW50IGRpZmZlcmVudCB3cmFwcGluZyBsb2dpYyBkZXBlbmRpbmcgb24gaWYgd2UgYXJlIGludm9raW5nIGEgY29tcG9uZW50LFxuICAvLyBoZWxwZXIsIG9yIHt7dGhpc319IGZhbGxiYWNrLiBFdmVudHVhbGx5IHdlIGZpeCB0aGUgb3Bjb2RlcyBzbyB0aGF0IHdlIGNhblxuICAvLyB0cmF2ZXJzZSB0aGUgc3ViZXhwcmVzc2lvbiB0cmVlIGxpa2Ugbm9ybWFsIGluIHRoaXMgbG9jYXRpb24uXG4gIHRocm93IG5ldyBFcnJvcigndW5pbXBsZW1lbnRlZCBvcGNvZGUnKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrLCAob3AsIGV4cHIpID0+IHtcbiAgLy8gPGRpdiBpZD17e2Jhen19PlxuXG4gIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUxvY2FsLCBleHByWzFdLCAoX25hbWU6IHN0cmluZykgPT4ge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU9wdGlvbmFsSGVscGVyLCBleHByLCB7XG4gICAgICBpZkhlbHBlcjogKGhhbmRsZTogbnVtYmVyKSA9PiB7XG4gICAgICAgIENhbGwob3AsIGhhbmRsZSwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzRGVwcmVjYXRlZEhlbHBlckhlYWRPclRoaXNGYWxsYmFjaywgKG9wLCBleHByKSA9PiB7XG4gIC8vIDxGb28gQGJhcj17e2Jhen19PlxuXG4gIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUxvY2FsLCBleHByWzFdLCAoX25hbWU6IHN0cmluZykgPT4ge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU9wdGlvbmFsSGVscGVyLCBleHByLCB7XG4gICAgICBpZkhlbHBlcjogKGhhbmRsZTogbnVtYmVyLCBuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBhc3NlcnQoZXhwclsyXSAmJiBleHByWzJdLmxlbmd0aCA9PT0gMSwgJ1tCVUddIE1pc3NpbmcgYXJndW1lbnQgbmFtZScpO1xuXG4gICAgICAgIGxldCBhcmcgPSBleHByWzJdWzBdO1xuXG4gICAgICAgIGRlcHJlY2F0ZShcbiAgICAgICAgICBgVGhlIFxcYCR7bmFtZX1cXGAgaGVscGVyIHdhcyB1c2VkIGluIHRoZSBcXGAke21vZHVsZU5hbWV9XFxgIHRlbXBsYXRlIGFzIFxcYCR7YXJnfT17eyR7bmFtZX19fVxcYC4gYCArXG4gICAgICAgICAgICBgVGhpcyBpcyBhbWJpZ2lvdXMgYmV0d2VlbiB3YW50aW5nIHRoZSBcXGAke2FyZ31cXGAgYXJndW1lbnQgdG8gYmUgdGhlIFxcYCR7bmFtZX1cXGAgaGVscGVyIGl0c2VsZiwgYCArXG4gICAgICAgICAgICBgb3IgdGhlIHJlc3VsdCBvZiBpbnZva2luZyB0aGUgXFxgJHtuYW1lfVxcYCBoZWxwZXIgKGN1cnJlbnQgYmVoYXZpb3IpLiBgICtcbiAgICAgICAgICAgIGBUaGlzIGltcGxpY2l0IGludm9jYXRpb24gYmVoYXZpb3IgaGFzIGJlZW4gZGVwcmVjYXRlZC5cXG5cXG5gICtcbiAgICAgICAgICAgIGBJbnN0ZWFkLCBwbGVhc2UgZXhwbGljaXRseSBpbnZva2UgdGhlIGhlbHBlciB3aXRoIHBhcmVudGhlc2lzLCBpLmUuIFxcYCR7YXJnfT17eygke25hbWV9KX19XFxgLlxcblxcbmAgK1xuICAgICAgICAgICAgYE5vdGU6IHRoZSBwYXJlbnRoZXNpcyBhcmUgb25seSByZXF1aXJlZCBpbiB0aGlzIGV4YWN0IHNjZW5hcmlvIHdoZXJlIGFuIGFtYmlndWl0eSBpcyBwcmVzZW50IOKAkyB3aGVyZSBgICtcbiAgICAgICAgICAgIGBcXGAke25hbWV9XFxgIHJlZmVyZXMgdG8gYSBnbG9iYWwgaGVscGVyIChhcyBvcHBvc2VkIHRvIGEgbG9jYWwgdmFyaWFibGUpLCBBTkQgYCArXG4gICAgICAgICAgICBgdGhlIFxcYCR7bmFtZX1cXGAgaGVscGVyIGludm9jYXRpb24gZG9lcyBub3QgdGFrZSBhbnkgYXJndW1lbnRzLCBBTkQgYCArXG4gICAgICAgICAgICBgdGhpcyBvY2N1cnMgaW4gYSBuYW1lZCBhcmd1bWVudCBwb3NpdGlvbiBvZiBhIGNvbXBvbmVudCBpbnZvY2F0aW9uLlxcblxcbmAgK1xuICAgICAgICAgICAgYFdlIGV4cGVjdCB0aGlzIGNvbWJpbmF0aW9uIHRvIGJlIHF1aXRlIHJhcmUsIGFzIG1vc3QgaGVscGVycyByZXF1aXJlIGF0IGxlYXN0IG9uZSBhcmd1bWVudC4gYCArXG4gICAgICAgICAgICBgVGhlcmUgaXMgbm8gbmVlZCB0byByZWZhY3RvciBoZWxwZXIgaW52b2NhdGlvbnMgaW4gY2FzZXMgd2hlcmUgdGhpcyBkZXByZWNhdGlvbiB3YXMgbm90IHRyaWdnZXJlZC5gLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnYXJndW1lbnQtbGVzcy1oZWxwZXItcGFyZW4tbGVzcy1pbnZvY2F0aW9uJyxcbiAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmZ1bmN0aW9uIHdpdGhQYXRoKG9wOiBQdXNoRXhwcmVzc2lvbk9wLCBwYXRoPzogc3RyaW5nW10pIHtcbiAgaWYgKHBhdGggPT09IHVuZGVmaW5lZCB8fCBwYXRoLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aC5sZW5ndGg7IGkrKykge1xuICAgIG9wKE9wLkdldFByb3BlcnR5LCBwYXRoW2ldKTtcbiAgfVxufVxuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuVW5kZWZpbmVkLCAob3ApID0+IFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCkpO1xuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkhhc0Jsb2NrLCAob3AsIFssIGJsb2NrXSkgPT4ge1xuICBleHByKG9wLCBibG9jayk7XG4gIG9wKE9wLkhhc0Jsb2NrKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuSGFzQmxvY2tQYXJhbXMsIChvcCwgWywgYmxvY2tdKSA9PiB7XG4gIGV4cHIob3AsIGJsb2NrKTtcbiAgb3AoT3AuU3ByZWFkQmxvY2spO1xuICBvcChPcC5Db21waWxlQmxvY2spO1xuICBvcChPcC5IYXNCbG9ja1BhcmFtcyk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLklmSW5saW5lLCAob3AsIFssIGNvbmRpdGlvbiwgdHJ1dGh5LCBmYWxzeV0pID0+IHtcbiAgLy8gUHVzaCBpbiByZXZlcnNlIG9yZGVyXG4gIGV4cHIob3AsIGZhbHN5KTtcbiAgZXhwcihvcCwgdHJ1dGh5KTtcbiAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgb3AoT3AuSWZJbmxpbmUpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Ob3QsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuTm90KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RHluYW1pY1ZhciwgKG9wLCBbLCBleHByZXNzaW9uXSkgPT4ge1xuICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgb3AoT3AuR2V0RHluYW1pY1Zhcik7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkxvZywgKG9wLCBbLCBwb3NpdGlvbmFsXSkgPT4ge1xuICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbnVsbCwgZmFsc2UpO1xuICBvcChPcC5Mb2cpO1xuICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICBvcChPcC5GZXRjaCwgJHYwKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==

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

var _globalContext = require("@glimmer/global-context");
var _vm = require("@glimmer/vm");

@@ -211,30 +209,7 @@

});
STATEMENTS.add(19
/* Partial */
, function (op, _ref11) {
var name = _ref11[1],
evalInfo = _ref11[2];
(0, _conditional.ReplayableIf)(op, function () {
(0, _expr.expr)(op, name);
op(33
/* Dup */
, _vm.$sp, 0);
return 2;
}, function () {
op(101
/* InvokePartial */
, (0, _operands.evalSymbolsOperand)(), evalInfo);
op(40
/* PopScope */
);
op(1
/* PopFrame */
);
});
});
STATEMENTS.add(18
/* Yield */
, function (op, _ref12) {
var to = _ref12[1],
params = _ref12[2];
, function (op, _ref11) {
var to = _ref11[1],
params = _ref11[2];
return (0, _blocks.YieldBlock)(op, to, params);

@@ -244,4 +219,4 @@ });

/* AttrSplat */
, function (op, _ref13) {
var to = _ref13[1];
, function (op, _ref12) {
var to = _ref12[1];
return (0, _blocks.YieldBlock)(op, to, null);

@@ -251,4 +226,4 @@ });

/* Debugger */
, function (op, _ref14) {
var evalInfo = _ref14[1];
, function (op, _ref13) {
var evalInfo = _ref13[1];
return op(103

@@ -260,4 +235,4 @@ /* Debugger */

/* Append */
, function (op, _ref15) {
var value = _ref15[1]; // Special case for static values
, function (op, _ref14) {
var value = _ref14[1]; // Special case for static values

@@ -300,26 +275,2 @@ if (!Array.isArray(value)) {

);
},
ifFallback: function ifFallback(_name) {
op(0
/* PushFrame */
);
op(1010
/* ResolveLocal */
, value[1], function (name, moduleName) {
(0, _globalContext.deprecate)("The `" + name + "` property was used in the `" + moduleName + "` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this." + name + "}}", false, {
id: 'this-property-fallback'
});
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
});
op(3
/* InvokeStatic */
, (0, _operands.stdlibOperand)('cautious-append'));
op(1
/* PopFrame */
);
}

@@ -405,4 +356,4 @@ });

/* TrustingAppend */
, function (op, _ref16) {
var value = _ref16[1];
, function (op, _ref15) {
var value = _ref15[1];

@@ -428,7 +379,7 @@ if (!Array.isArray(value)) {

/* Block */
, function (op, _ref17) {
var expr = _ref17[1],
positional = _ref17[2],
named = _ref17[3],
blocks = _ref17[4];
, function (op, _ref16) {
var expr = _ref16[1],
positional = _ref16[2],
named = _ref16[3],
blocks = _ref16[4];

@@ -447,7 +398,7 @@ if ((0, _resolution.isGetFreeComponent)(expr)) {

/* InElement */
, function (op, _ref18) {
var block = _ref18[1],
guid = _ref18[2],
destination = _ref18[3],
insertBefore = _ref18[4];
, function (op, _ref17) {
var block = _ref17[1],
guid = _ref17[2],
destination = _ref17[3],
insertBefore = _ref17[4];
(0, _conditional.ReplayableIf)(op, function () {

@@ -479,6 +430,6 @@ (0, _expr.expr)(op, guid);

/* If */
, function (op, _ref19) {
var condition = _ref19[1],
block = _ref19[2],
inverse = _ref19[3];
, function (op, _ref18) {
var condition = _ref18[1],
block = _ref18[2],
inverse = _ref18[3];
return (0, _conditional.ReplayableIf)(op, function () {

@@ -498,7 +449,7 @@ (0, _expr.expr)(op, condition);

/* Each */
, function (op, _ref20) {
var value = _ref20[1],
key = _ref20[2],
block = _ref20[3],
inverse = _ref20[4];
, function (op, _ref19) {
var value = _ref19[1],
key = _ref19[2],
block = _ref19[3],
inverse = _ref19[4];
return (0, _conditional.Replayable)(op, function () {

@@ -565,6 +516,6 @@ if (key) {

/* With */
, function (op, _ref21) {
var value = _ref21[1],
block = _ref21[2],
inverse = _ref21[3];
, function (op, _ref20) {
var value = _ref20[1],
block = _ref20[2],
inverse = _ref20[3];
(0, _conditional.ReplayableIf)(op, function () {

@@ -589,5 +540,5 @@ (0, _expr.expr)(op, value);

/* Let */
, function (op, _ref22) {
var positional = _ref22[1],
block = _ref22[2];
, function (op, _ref21) {
var positional = _ref21[1],
block = _ref21[2];
var count = (0, _shared.CompilePositional)(op, positional);

@@ -598,5 +549,5 @@ (0, _blocks.InvokeStaticBlockWithStack)(op, block, count);

/* WithDynamicVars */
, function (op, _ref23) {
var named = _ref23[1],
block = _ref23[2];
, function (op, _ref22) {
var named = _ref22[1],
block = _ref22[2];

@@ -616,7 +567,7 @@ if (named) {

/* InvokeComponent */
, function (op, _ref24) {
var expr = _ref24[1],
positional = _ref24[2],
named = _ref24[3],
blocks = _ref24[4];
, function (op, _ref23) {
var expr = _ref23[1],
positional = _ref23[2],
named = _ref23[3],
blocks = _ref23[4];

@@ -641,2 +592,2 @@ if ((0, _resolution.isGetFreeComponent)(expr)) {

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBY0E7O0FBQ0E7O0FBS0E7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBRU8sSUFBTSxVQUFVLEdBQUcsSUFBbkIsb0JBQW1CLEVBQW5COztBQUVQLElBQU0sa0JBQWtCLEdBRXBCLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBRkosTUFFSSxDQUZKO0FBR0EsSUFBTSxpQkFBaUIsR0FFbkIsQ0FBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLEdBQUEsRUFGSixHQUVJLENBRko7O0FBSU0sU0FBQSxjQUFBLENBQUEsT0FBQSxFQUEyRDtBQUMvRCxTQUFPLE9BQUEsT0FBQSxLQUFBLFFBQUEsR0FBQSxPQUFBLEdBQXdDLGlCQUFpQixDQUFoRSxPQUFnRSxDQUFoRTtBQUNEOztBQUVLLFNBQUEsZUFBQSxDQUFBLFFBQUEsRUFBOEQ7QUFDbEUsU0FBTyxPQUFBLFFBQUEsS0FBQSxRQUFBLEdBQUEsUUFBQSxHQUEwQyxrQkFBa0IsQ0FBbkUsUUFBbUUsQ0FBbkU7QUFDRDs7QUFFRCxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUFvQyxVQUFBLEVBQUEsRUFBQSxJQUFBLEVBQUE7QUFBQSxTQUFjLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBYSxJQUFJLENBQXJFLENBQXFFLENBQWpCLENBQWhCO0FBQXBDLENBQUE7QUFDQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUEwQyxVQUFELEVBQUMsRUFBRDtBQUFBLFNBQVEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFWO0FBQXpDLENBQUE7QUFDQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FB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QTtBQUFBLE1BQXZDLEtBQXVDLEdBQUEsTUFBQSxDQUFBLENBQUEsQ0FBQTtBQUFBLE1BQTVDLE1BQTRDLEdBQUEsTUFBQSxDQUFBLENBQUEsQ0FBQTs7QUFDdEYsTUFBSSxvQ0FBSixJQUFJLENBQUosRUFBOEI7QUFDNUIsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQUEsSUFBQSxFQUFvRCxVQUFELFNBQUMsRUFBbUM7QUFDdkYsdUNBQWUsRUFBZixFQUFlLFNBQWYsRUFBZSxJQUFmLEVBQWUsVUFBZixFQUFpRCxVQUFVLENBQTVDLEtBQTRDLENBQTNELEVBQUEsTUFBQTtBQURGLEtBQUUsQ0FBRjtBQURGLEdBQUEsTUFJTztBQUNMLDRDQUFzQixFQUF0QixFQUFzQixJQUF0QixFQUFzQixJQUF0QixFQUFzQixVQUF0QixFQUFzQixLQUF0QixFQUFzQixNQUF0QixFQUFzQixLQUF0QixFQUFBLEtBQUE7QUFDRDtBQVBILENBQUE7O0FBVUEsU0FBQSxVQUFBLENBQUEsSUFBQSxFQUFxRDtBQUNuRCxNQUFJLElBQUksS0FBUixJQUFBLEVBQW1CLE9BQUEsSUFBQTtBQUNuQixNQUFJLEtBQUssR0FBRyxJQUFJLENBQUosQ0FBSSxDQUFKLENBQUEsR0FBQSxDQUFhLFVBQUQsR0FBQyxFQUFEO0FBQUEsV0FBQSxNQUF4QixHQUF3QjtBQUF4QixHQUFZLENBQVo7QUFDQSxTQUFPLENBQUEsS0FBQSxFQUFpQyxJQUFJLENBQTVDLENBQTRDLENBQXJDLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlcHJlY2F0ZSB9IGZyb20gJ0BnbGltbWVyL2dsb2JhbC1jb250ZXh0JztcbmltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29tcG9uZW50LFxuICBDb250ZW50VHlwZSxcbiAgSGlnaExldmVsQnVpbGRlck9wY29kZSxcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFN0YXRlbWVudFNleHBPcGNvZGUsXG4gIFdlbGxLbm93bkF0dHJOYW1lLFxuICBXZWxsS25vd25UYWdOYW1lLFxuICBXaXJlRm9ybWF0LFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICRmcCwgJHNwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHtcbiAgSW52b2tlU3RhdGljQmxvY2ssXG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrLFxuICBZaWVsZEJsb2NrLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2Jsb2Nrcyc7XG5pbXBvcnQge1xuICBJbnZva2VDb21wb25lbnQsXG4gIEludm9rZUR5bmFtaWNDb21wb25lbnQsXG4gIEludm9rZU5vblN0YXRpY0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9jb21wb25lbnRzJztcbmltcG9ydCB7IFN3aXRjaENhc2VzLCBSZXBsYXlhYmxlLCBSZXBsYXlhYmxlSWYgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2NvbmRpdGlvbmFsJztcbmltcG9ydCB7IGV4cHIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2V4cHInO1xuaW1wb3J0IHsgQ29tcGlsZVBvc2l0aW9uYWwsIFNpbXBsZUFyZ3MgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3NoYXJlZCc7XG5pbXBvcnQge1xuICBDYWxsLFxuICBDYWxsRHluYW1pYyxcbiAgRHluYW1pY1Njb3BlLFxuICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3ZtJztcbmltcG9ydCB7IGV2YWxTeW1ib2xzT3BlcmFuZCwgbGFiZWxPcGVyYW5kLCBzdGRsaWJPcGVyYW5kIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvb3BlcmFuZHMnO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoU3RhdGVtZW50T3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5pbXBvcnQge1xuICBpc0dldEZyZWVDb21wb25lbnQsXG4gIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyLFxuICBpc0dldEZyZWVNb2RpZmllcixcbiAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcixcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uJztcbmltcG9ydCB7IG5hbWVkQmxvY2tzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgU1RBVEVNRU5UUyA9IG5ldyBDb21waWxlcnM8UHVzaFN0YXRlbWVudE9wLCBTdGF0ZW1lbnRTZXhwT3Bjb2RlPigpO1xuXG5jb25zdCBJTkZMQVRFX0FUVFJfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duQXR0ck5hbWVdOiBzdHJpbmc7XG59ID0gWydjbGFzcycsICdpZCcsICd2YWx1ZScsICduYW1lJywgJ3R5cGUnLCAnc3R5bGUnLCAnaHJlZiddO1xuY29uc3QgSU5GTEFURV9UQUdfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duVGFnTmFtZV06IHN0cmluZztcbn0gPSBbJ2RpdicsICdzcGFuJywgJ3AnLCAnYSddO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5mbGF0ZVRhZ05hbWUodGFnTmFtZTogc3RyaW5nIHwgV2VsbEtub3duVGFnTmFtZSk6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgdGFnTmFtZSA9PT0gJ3N0cmluZycgPyB0YWdOYW1lIDogSU5GTEFURV9UQUdfVEFCTEVbdGFnTmFtZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlQXR0ck5hbWUoYXR0ck5hbWU6IHN0cmluZyB8IFdlbGxLbm93bkF0dHJOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiBhdHRyTmFtZSA9PT0gJ3N0cmluZycgPyBhdHRyTmFtZSA6IElORkxBVEVfQVRUUl9UQUJMRVthdHRyTmFtZV07XG59XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbW1lbnQsIChvcCwgc2V4cCkgPT4gb3AoT3AuQ29tbWVudCwgc2V4cFsxXSkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ2xvc2VFbGVtZW50LCAob3ApID0+IG9wKE9wLkNsb3NlRWxlbWVudCkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRmx1c2hFbGVtZW50LCAob3ApID0+IG9wKE9wLkZsdXNoRWxlbWVudCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Nb2RpZmllciwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZU1vZGlmaWVyKGV4cHJlc3Npb24pKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTW9kaWZpZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICAgICAgb3AoT3AuTW9kaWZpZXIsIGhhbmRsZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgIG9wKE9wLkR5bmFtaWNNb2RpZmllcik7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlN0YXRpY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgb3AoT3AuU3RhdGljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB2YWx1ZSBhcyBzdHJpbmcsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5TdGF0aWNDb21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIG9wKE9wLlN0YXRpY0NvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdmFsdWUgYXMgc3RyaW5nLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCBmYWxzZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB0cnVlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkNvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgZmFsc2UsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0NvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Db21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHRydWUsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLk9wZW5FbGVtZW50LCBpbmZsYXRlVGFnTmFtZSh0YWcpKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudFdpdGhTcGxhdCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLlB1dENvbXBvbmVudE9wZXJhdGlvbnMpO1xuICBvcChPcC5PcGVuRWxlbWVudCwgaW5mbGF0ZVRhZ05hbWUodGFnKSk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIGVsZW1lbnRCbG9jaywgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBlbGVtZW50QmxvY2ssIG51bGwsIG5hbWVkLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIC8vIG90aGVyd2lzZSwgdGhlIGNvbXBvbmVudCBuYW1lIHdhcyBhbiBleHByZXNzaW9uLCBzbyByZXNvbHZlIHRoZSBleHByZXNzaW9uXG4gICAgLy8gYW5kIGludm9rZSBpdCBhcyBhIGR5bmFtaWMgY29tcG9uZW50XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgZWxlbWVudEJsb2NrLCBudWxsLCBuYW1lZCwgYmxvY2tzLCB0cnVlLCB0cnVlKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlBhcnRpYWwsIChvcCwgWywgbmFtZSwgZXZhbEluZm9dKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBuYW1lKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkludm9rZVBhcnRpYWwsIGV2YWxTeW1ib2xzT3BlcmFuZCgpLCBldmFsSW5mbyk7XG4gICAgICBvcChPcC5Qb3BTY29wZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5ZaWVsZCwgKG9wLCBbLCB0bywgcGFyYW1zXSkgPT4gWWllbGRCbG9jayhvcCwgdG8sIHBhcmFtcykpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BdHRyU3BsYXQsIChvcCwgWywgdG9dKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgbnVsbCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5EZWJ1Z2dlciwgKG9wLCBbLCBldmFsSW5mb10pID0+XG4gIG9wKE9wLkRlYnVnZ2VyLCBldmFsU3ltYm9sc09wZXJhbmQoKSwgZXZhbEluZm8pXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BcHBlbmQsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIC8vIFNwZWNpYWwgY2FzZSBmb3Igc3RhdGljIHZhbHVlc1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSBpZiAoaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcih2YWx1ZSkpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLCB2YWx1ZSwge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkge1xuICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcblxuICAgICAgaWZWYWx1ZShoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2soX25hbWU6IHN0cmluZykge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIHZhbHVlWzFdLCAobmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgICBgVGhlIFxcYCR7bmFtZX1cXGAgcHJvcGVydHkgd2FzIHVzZWQgaW4gdGhlIFxcYCR7bW9kdWxlTmFtZX1cXGAgdGVtcGxhdGUgd2l0aG91dCB1c2luZyBcXGB0aGlzXFxgLiBUaGlzIGZhbGxiYWNrIGJlaGF2aW9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGFsbCBwcm9wZXJ0aWVzIG11c3QgYmUgbG9va2VkIHVwIG9uIFxcYHRoaXNcXGAgd2hlbiB1c2VkIGluIHRoZSB0ZW1wbGF0ZToge3t0aGlzLiR7bmFtZX19fWAsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgICAgICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAodmFsdWVbMF0gPT09IFNleHBPcGNvZGVzLkNhbGwpIHtcbiAgICBsZXQgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdID0gdmFsdWU7XG5cbiAgICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyLCBleHByZXNzaW9uLCB7XG4gICAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpIHtcbiAgICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIG51bGwpO1xuICAgICAgICB9LFxuICAgICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICAgIENhbGwob3AsIGhhbmRsZSwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFN3aXRjaENhc2VzKFxuICAgICAgICBvcCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgICAgICAgIG9wKE9wLkR5bmFtaWNDb250ZW50VHlwZSk7XG4gICAgICAgIH0sXG4gICAgICAgICh3aGVuKSA9PiB7XG4gICAgICAgICAgd2hlbihDb250ZW50VHlwZS5Db21wb25lbnQsICgpID0+IHtcbiAgICAgICAgICAgIG9wKE9wLlJlc29sdmVDdXJyaWVkQ29tcG9uZW50KTtcbiAgICAgICAgICAgIG9wKE9wLlB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UpO1xuICAgICAgICAgICAgSW52b2tlTm9uU3RhdGljQ29tcG9uZW50KG9wLCB7XG4gICAgICAgICAgICAgIGNhcGFiaWxpdGllczogdHJ1ZSxcbiAgICAgICAgICAgICAgZWxlbWVudEJsb2NrOiBudWxsLFxuICAgICAgICAgICAgICBwb3NpdGlvbmFsLFxuICAgICAgICAgICAgICBuYW1lZCxcbiAgICAgICAgICAgICAgYXROYW1lczogZmFsc2UsXG4gICAgICAgICAgICAgIGJsb2NrczogbmFtZWRCbG9ja3MobnVsbCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHdoZW4oQ29udGVudFR5cGUuSGVscGVyLCAoKSA9PiB7XG4gICAgICAgICAgICBDYWxsRHluYW1pYyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsICgpID0+IHtcbiAgICAgICAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1hcHBlbmQnKSk7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nQXBwZW5kLCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSB7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgZXhwcihvcCwgdmFsdWUpO1xuICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ3RydXN0aW5nLWFwcGVuZCcpKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQmxvY2ssIChvcCwgWywgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBudWxsLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzLCBmYWxzZSwgZmFsc2UpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW5FbGVtZW50LCAob3AsIFssIGJsb2NrLCBndWlkLCBkZXN0aW5hdGlvbiwgaW5zZXJ0QmVmb3JlXSkgPT4ge1xuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBndWlkKTtcblxuICAgICAgaWYgKGluc2VydEJlZm9yZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHByKG9wLCBpbnNlcnRCZWZvcmUpO1xuICAgICAgfVxuXG4gICAgICBleHByKG9wLCBkZXN0aW5hdGlvbik7XG4gICAgICBvcChPcC5EdXAsICRzcCwgMCk7XG5cbiAgICAgIHJldHVybiA0O1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBvcChPcC5QdXNoUmVtb3RlRWxlbWVudCk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgICAgb3AoT3AuUG9wUmVtb3RlRWxlbWVudCk7XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLklmLCAob3AsIFssIGNvbmRpdGlvbiwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAxO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgIH0sXG5cbiAgICBpbnZlcnNlXG4gICAgICA/ICgpID0+IHtcbiAgICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkXG4gIClcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkVhY2gsIChvcCwgWywgdmFsdWUsIGtleSwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKGtleSkge1xuICAgICAgICBleHByKG9wLCBrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkVudGVyTGlzdCwgbGFiZWxPcGVyYW5kKCdCT0RZJyksIGxhYmVsT3BlcmFuZCgnRUxTRScpKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgICAgb3AoTWFjaGluZU9wLlJldHVyblRvLCBsYWJlbE9wZXJhbmQoJ0lURVInKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnSVRFUicpO1xuICAgICAgb3AoT3AuSXRlcmF0ZSwgbGFiZWxPcGVyYW5kKCdCUkVBSycpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdCT0RZJyk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDIpO1xuICAgICAgb3AoT3AuUG9wLCAyKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5KdW1wLCBsYWJlbE9wZXJhbmQoJ0ZJTkFMTFknKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnQlJFQUsnKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICBvcChPcC5FeGl0TGlzdCk7XG4gICAgICBvcChNYWNoaW5lT3AuSnVtcCwgbGFiZWxPcGVyYW5kKCdGSU5BTExZJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0VMU0UnKTtcblxuICAgICAgaWYgKGludmVyc2UpIHtcbiAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgKVxuKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuV2l0aCwgKG9wLCBbLCB2YWx1ZSwgYmxvY2ssIGludmVyc2VdKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAyO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDEpO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBpZiAoaW52ZXJzZSkge1xuICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICB9XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkxldCwgKG9wLCBbLCBwb3NpdGlvbmFsLCBibG9ja10pID0+IHtcbiAgbGV0IGNvdW50ID0gQ29tcGlsZVBvc2l0aW9uYWwob3AsIHBvc2l0aW9uYWwpO1xuICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIGNvdW50KTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5XaXRoRHluYW1pY1ZhcnMsIChvcCwgWywgbmFtZWQsIGJsb2NrXSkgPT4ge1xuICBpZiAobmFtZWQpIHtcbiAgICBsZXQgW25hbWVzLCBleHByZXNzaW9uc10gPSBuYW1lZDtcblxuICAgIENvbXBpbGVQb3NpdGlvbmFsKG9wLCBleHByZXNzaW9ucyk7XG4gICAgRHluYW1pY1Njb3BlKG9wLCBuYW1lcywgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW52b2tlQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgbnVsbCwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2NrcywgZmFsc2UsIGZhbHNlKTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGhhc2hUb0FyZ3MoaGFzaDogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsKTogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsIHtcbiAgaWYgKGhhc2ggPT09IG51bGwpIHJldHVybiBudWxsO1xuICBsZXQgbmFtZXMgPSBoYXNoWzBdLm1hcCgoa2V5KSA9PiBgQCR7a2V5fWApO1xuICByZXR1cm4gW25hbWVzIGFzIFtzdHJpbmcsIC4uLnN0cmluZ1tdXSwgaGFzaFsxXV07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBYUE7O0FBQ0E7O0FBS0E7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBRU8sSUFBTSxVQUFVLEdBQUcsSUFBbkIsb0JBQW1CLEVBQW5COztBQUVQLElBQU0sa0JBQWtCLEdBRXBCLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBRkosTUFFSSxDQUZKO0FBR0EsSUFBTSxpQkFBaUIsR0FFbkIsQ0FBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLEdBQUEsRUFGSixHQUVJLENBRko7O0FBSU0sU0FBQSxjQUFBLENBQUEsT0FBQSxFQUEyRDtBQUMvRCxTQUFPLE9BQUEsT0FBQSxLQUFBLFFBQUEsR0FBQSxPQUFBLEdBQXdDLGlCQUFpQixDQUFoRSxPQUFnRSxDQUFoRTtBQUNEOztBQUVLLFNBQUEsZUFBQSxDQUFBLFFBQUEsRUFBOEQ7QUFDbEUsU0FBTyxPQUFBLFFBQUEsS0FBQSxRQUFBLEdBQUEsUUFBQSxHQUEwQyxrQkFBa0IsQ0FBbkUsUUFBbUUsQ0FBbkU7QUFDRDs7QUFFRCxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUFvQyxVQUFBLEVBQUEsRUFBQSxJQUFBLEVBQUE7QUFBQSxTQUFjLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBYSxJQUFJLENBQXJFLENBQXFFLENBQWpCLENBQWhCO0FBQXBDLENBQUE7QUFDQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUEwQyxVQUFELEVBQUMsRUFBRDtBQUFBLFNBQVEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFWO0FBQXpDLENBQUE7QUFDQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFB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QTRDLEdBQUEsTUFBQSxDQUFBLENBQUEsQ0FBQTs7QUFDdEYsTUFBSSxvQ0FBSixJQUFJLENBQUosRUFBOEI7QUFDNUIsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQUEsSUFBQSxFQUFvRCxVQUFELFNBQUMsRUFBbUM7QUFDdkYsdUNBQWUsRUFBZixFQUFlLFNBQWYsRUFBZSxJQUFmLEVBQWUsVUFBZixFQUFpRCxVQUFVLENBQTVDLEtBQTRDLENBQTNELEVBQUEsTUFBQTtBQURGLEtBQUUsQ0FBRjtBQURGLEdBQUEsTUFJTztBQUNMLDRDQUFzQixFQUF0QixFQUFzQixJQUF0QixFQUFzQixJQUF0QixFQUFzQixVQUF0QixFQUFzQixLQUF0QixFQUFzQixNQUF0QixFQUFzQixLQUF0QixFQUFBLEtBQUE7QUFDRDtBQVBILENBQUE7O0FBVUEsU0FBQSxVQUFBLENBQUEsSUFBQSxFQUFxRDtBQUNuRCxNQUFJLElBQUksS0FBUixJQUFBLEVBQW1CLE9BQUEsSUFBQTtBQUNuQixNQUFJLEtBQUssR0FBRyxJQUFJLENBQUosQ0FBSSxDQUFKLENBQUEsR0FBQSxDQUFhLFVBQUQsR0FBQyxFQUFEO0FBQUEsV0FBQSxNQUF4QixHQUF3QjtBQUF4QixHQUFZLENBQVo7QUFDQSxTQUFPLENBQUEsS0FBQSxFQUFpQyxJQUFJLENBQTVDLENBQTRDLENBQXJDLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29tcG9uZW50LFxuICBDb250ZW50VHlwZSxcbiAgSGlnaExldmVsQnVpbGRlck9wY29kZSxcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFN0YXRlbWVudFNleHBPcGNvZGUsXG4gIFdlbGxLbm93bkF0dHJOYW1lLFxuICBXZWxsS25vd25UYWdOYW1lLFxuICBXaXJlRm9ybWF0LFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICRmcCwgJHNwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHtcbiAgSW52b2tlU3RhdGljQmxvY2ssXG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrLFxuICBZaWVsZEJsb2NrLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2Jsb2Nrcyc7XG5pbXBvcnQge1xuICBJbnZva2VDb21wb25lbnQsXG4gIEludm9rZUR5bmFtaWNDb21wb25lbnQsXG4gIEludm9rZU5vblN0YXRpY0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9jb21wb25lbnRzJztcbmltcG9ydCB7IFN3aXRjaENhc2VzLCBSZXBsYXlhYmxlLCBSZXBsYXlhYmxlSWYgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2NvbmRpdGlvbmFsJztcbmltcG9ydCB7IGV4cHIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2V4cHInO1xuaW1wb3J0IHsgQ29tcGlsZVBvc2l0aW9uYWwsIFNpbXBsZUFyZ3MgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3NoYXJlZCc7XG5pbXBvcnQge1xuICBDYWxsLFxuICBDYWxsRHluYW1pYyxcbiAgRHluYW1pY1Njb3BlLFxuICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3ZtJztcbmltcG9ydCB7IGV2YWxTeW1ib2xzT3BlcmFuZCwgbGFiZWxPcGVyYW5kLCBzdGRsaWJPcGVyYW5kIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvb3BlcmFuZHMnO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoU3RhdGVtZW50T3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5pbXBvcnQge1xuICBpc0dldEZyZWVDb21wb25lbnQsXG4gIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyLFxuICBpc0dldEZyZWVNb2RpZmllcixcbiAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcixcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uJztcbmltcG9ydCB7IG5hbWVkQmxvY2tzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgU1RBVEVNRU5UUyA9IG5ldyBDb21waWxlcnM8UHVzaFN0YXRlbWVudE9wLCBTdGF0ZW1lbnRTZXhwT3Bjb2RlPigpO1xuXG5jb25zdCBJTkZMQVRFX0FUVFJfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duQXR0ck5hbWVdOiBzdHJpbmc7XG59ID0gWydjbGFzcycsICdpZCcsICd2YWx1ZScsICduYW1lJywgJ3R5cGUnLCAnc3R5bGUnLCAnaHJlZiddO1xuY29uc3QgSU5GTEFURV9UQUdfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duVGFnTmFtZV06IHN0cmluZztcbn0gPSBbJ2RpdicsICdzcGFuJywgJ3AnLCAnYSddO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5mbGF0ZVRhZ05hbWUodGFnTmFtZTogc3RyaW5nIHwgV2VsbEtub3duVGFnTmFtZSk6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgdGFnTmFtZSA9PT0gJ3N0cmluZycgPyB0YWdOYW1lIDogSU5GTEFURV9UQUdfVEFCTEVbdGFnTmFtZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlQXR0ck5hbWUoYXR0ck5hbWU6IHN0cmluZyB8IFdlbGxLbm93bkF0dHJOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiBhdHRyTmFtZSA9PT0gJ3N0cmluZycgPyBhdHRyTmFtZSA6IElORkxBVEVfQVRUUl9UQUJMRVthdHRyTmFtZV07XG59XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbW1lbnQsIChvcCwgc2V4cCkgPT4gb3AoT3AuQ29tbWVudCwgc2V4cFsxXSkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ2xvc2VFbGVtZW50LCAob3ApID0+IG9wKE9wLkNsb3NlRWxlbWVudCkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRmx1c2hFbGVtZW50LCAob3ApID0+IG9wKE9wLkZsdXNoRWxlbWVudCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Nb2RpZmllciwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZU1vZGlmaWVyKGV4cHJlc3Npb24pKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTW9kaWZpZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICAgICAgb3AoT3AuTW9kaWZpZXIsIGhhbmRsZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgIG9wKE9wLkR5bmFtaWNNb2RpZmllcik7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlN0YXRpY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgb3AoT3AuU3RhdGljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB2YWx1ZSBhcyBzdHJpbmcsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5TdGF0aWNDb21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIG9wKE9wLlN0YXRpY0NvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdmFsdWUgYXMgc3RyaW5nLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCBmYWxzZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB0cnVlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkNvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgZmFsc2UsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0NvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Db21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHRydWUsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLk9wZW5FbGVtZW50LCBpbmZsYXRlVGFnTmFtZSh0YWcpKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudFdpdGhTcGxhdCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLlB1dENvbXBvbmVudE9wZXJhdGlvbnMpO1xuICBvcChPcC5PcGVuRWxlbWVudCwgaW5mbGF0ZVRhZ05hbWUodGFnKSk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIGVsZW1lbnRCbG9jaywgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBlbGVtZW50QmxvY2ssIG51bGwsIG5hbWVkLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIC8vIG90aGVyd2lzZSwgdGhlIGNvbXBvbmVudCBuYW1lIHdhcyBhbiBleHByZXNzaW9uLCBzbyByZXNvbHZlIHRoZSBleHByZXNzaW9uXG4gICAgLy8gYW5kIGludm9rZSBpdCBhcyBhIGR5bmFtaWMgY29tcG9uZW50XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgZWxlbWVudEJsb2NrLCBudWxsLCBuYW1lZCwgYmxvY2tzLCB0cnVlLCB0cnVlKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLllpZWxkLCAob3AsIFssIHRvLCBwYXJhbXNdKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgcGFyYW1zKSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkF0dHJTcGxhdCwgKG9wLCBbLCB0b10pID0+IFlpZWxkQmxvY2sob3AsIHRvLCBudWxsKSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkRlYnVnZ2VyLCAob3AsIFssIGV2YWxJbmZvXSkgPT5cbiAgb3AoT3AuRGVidWdnZXIsIGV2YWxTeW1ib2xzT3BlcmFuZCgpLCBldmFsSW5mbylcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkFwcGVuZCwgKG9wLCBbLCB2YWx1ZV0pID0+IHtcbiAgLy8gU3BlY2lhbCBjYXNlIGZvciBzdGF0aWMgdmFsdWVzXG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBvcChPcC5UZXh0LCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gJycgOiBTdHJpbmcodmFsdWUpKTtcbiAgfSBlbHNlIGlmIChpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKHZhbHVlKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIsIHZhbHVlLCB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSB7XG4gICAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBudWxsLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmSGVscGVyKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIG51bGwsIG51bGwpO1xuICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICB9LFxuXG4gICAgICBpZlZhbHVlKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBvcChPcC5Db25zdGFudFJlZmVyZW5jZSwgaGFuZGxlKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSBlbHNlIGlmICh2YWx1ZVswXSA9PT0gU2V4cE9wY29kZXMuQ2FsbCkge1xuICAgIGxldCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0gPSB2YWx1ZTtcblxuICAgIGlmIChpc0dldEZyZWVDb21wb25lbnRPckhlbHBlcihleHByZXNzaW9uKSkge1xuICAgICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50T3JIZWxwZXIsIGV4cHJlc3Npb24sIHtcbiAgICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkge1xuICAgICAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgbnVsbCk7XG4gICAgICAgIH0sXG4gICAgICAgIGlmSGVscGVyKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gICAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgU3dpdGNoQ2FzZXMoXG4gICAgICAgIG9wLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgb3AoT3AuRHluYW1pY0NvbnRlbnRUeXBlKTtcbiAgICAgICAgfSxcbiAgICAgICAgKHdoZW4pID0+IHtcbiAgICAgICAgICB3aGVuKENvbnRlbnRUeXBlLkNvbXBvbmVudCwgKCkgPT4ge1xuICAgICAgICAgICAgb3AoT3AuUmVzb2x2ZUN1cnJpZWRDb21wb25lbnQpO1xuICAgICAgICAgICAgb3AoT3AuUHVzaER5bmFtaWNDb21wb25lbnRJbnN0YW5jZSk7XG4gICAgICAgICAgICBJbnZva2VOb25TdGF0aWNDb21wb25lbnQob3AsIHtcbiAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzOiB0cnVlLFxuICAgICAgICAgICAgICBlbGVtZW50QmxvY2s6IG51bGwsXG4gICAgICAgICAgICAgIHBvc2l0aW9uYWwsXG4gICAgICAgICAgICAgIG5hbWVkLFxuICAgICAgICAgICAgICBhdE5hbWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgYmxvY2tzOiBuYW1lZEJsb2NrcyhudWxsKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgd2hlbihDb250ZW50VHlwZS5IZWxwZXIsICgpID0+IHtcbiAgICAgICAgICAgIENhbGxEeW5hbWljKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgKCkgPT4ge1xuICAgICAgICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgZXhwcihvcCwgdmFsdWUpO1xuICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLWFwcGVuZCcpKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuVHJ1c3RpbmdBcHBlbmQsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBvcChPcC5UZXh0LCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gJycgOiBTdHJpbmcodmFsdWUpKTtcbiAgfSBlbHNlIHtcbiAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICBleHByKG9wLCB2YWx1ZSk7XG4gICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgndHJ1c3RpbmctYXBwZW5kJykpO1xuICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5CbG9jaywgKG9wLCBbLCBleHByLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50LCBleHByLCAoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkgPT4ge1xuICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIG51bGwsIHBvc2l0aW9uYWwsIGhhc2hUb0FyZ3MobmFtZWQpLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIEludm9rZUR5bmFtaWNDb21wb25lbnQob3AsIGV4cHIsIG51bGwsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3MsIGZhbHNlLCBmYWxzZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5JbkVsZW1lbnQsIChvcCwgWywgYmxvY2ssIGd1aWQsIGRlc3RpbmF0aW9uLCBpbnNlcnRCZWZvcmVdKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIGd1aWQpO1xuXG4gICAgICBpZiAoaW5zZXJ0QmVmb3JlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgdW5kZWZpbmVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4cHIob3AsIGluc2VydEJlZm9yZSk7XG4gICAgICB9XG5cbiAgICAgIGV4cHIob3AsIGRlc3RpbmF0aW9uKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcblxuICAgICAgcmV0dXJuIDQ7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLlB1c2hSZW1vdGVFbGVtZW50KTtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gICAgICBvcChPcC5Qb3BSZW1vdGVFbGVtZW50KTtcbiAgICB9XG4gICk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSWYsIChvcCwgWywgY29uZGl0aW9uLCBibG9jaywgaW52ZXJzZV0pID0+XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBjb25kaXRpb24pO1xuICAgICAgb3AoT3AuVG9Cb29sZWFuKTtcblxuICAgICAgcmV0dXJuIDE7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gICAgfSxcblxuICAgIGludmVyc2VcbiAgICAgID8gKCkgPT4ge1xuICAgICAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBpbnZlcnNlKTtcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWRcbiAgKVxuKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRWFjaCwgKG9wLCBbLCB2YWx1ZSwga2V5LCBibG9jaywgaW52ZXJzZV0pID0+XG4gIFJlcGxheWFibGUoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBpZiAoa2V5KSB7XG4gICAgICAgIGV4cHIob3AsIGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wLCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgZXhwcihvcCwgdmFsdWUpO1xuXG4gICAgICByZXR1cm4gMjtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgb3AoT3AuRW50ZXJMaXN0LCBsYWJlbE9wZXJhbmQoJ0JPRFknKSwgbGFiZWxPcGVyYW5kKCdFTFNFJykpO1xuICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICBvcChPcC5EdXAsICRmcCwgMSk7XG4gICAgICBvcChNYWNoaW5lT3AuUmV0dXJuVG8sIGxhYmVsT3BlcmFuZCgnSVRFUicpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdJVEVSJyk7XG4gICAgICBvcChPcC5JdGVyYXRlLCBsYWJlbE9wZXJhbmQoJ0JSRUFLJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0JPRFknKTtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrKG9wLCBibG9jaywgMik7XG4gICAgICBvcChPcC5Qb3AsIDIpO1xuICAgICAgb3AoTWFjaGluZU9wLkp1bXAsIGxhYmVsT3BlcmFuZCgnRklOQUxMWScpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdCUkVBSycpO1xuICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIG9wKE9wLkV4aXRMaXN0KTtcbiAgICAgIG9wKE1hY2hpbmVPcC5KdW1wLCBsYWJlbE9wZXJhbmQoJ0ZJTkFMTFknKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnRUxTRScpO1xuXG4gICAgICBpZiAoaW52ZXJzZSkge1xuICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICB9XG4gICAgfVxuICApXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5XaXRoLCAob3AsIFssIHZhbHVlLCBibG9jaywgaW52ZXJzZV0pID0+IHtcbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgdmFsdWUpO1xuICAgICAgb3AoT3AuRHVwLCAkc3AsIDApO1xuICAgICAgb3AoT3AuVG9Cb29sZWFuKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrKG9wLCBibG9jaywgMSk7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIGlmIChpbnZlcnNlKSB7XG4gICAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBpbnZlcnNlKTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuTGV0LCAob3AsIFssIHBvc2l0aW9uYWwsIGJsb2NrXSkgPT4ge1xuICBsZXQgY291bnQgPSBDb21waWxlUG9zaXRpb25hbChvcCwgcG9zaXRpb25hbCk7XG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrKG9wLCBibG9jaywgY291bnQpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLldpdGhEeW5hbWljVmFycywgKG9wLCBbLCBuYW1lZCwgYmxvY2tdKSA9PiB7XG4gIGlmIChuYW1lZCkge1xuICAgIGxldCBbbmFtZXMsIGV4cHJlc3Npb25zXSA9IG5hbWVkO1xuXG4gICAgQ29tcGlsZVBvc2l0aW9uYWwob3AsIGV4cHJlc3Npb25zKTtcbiAgICBEeW5hbWljU2NvcGUob3AsIG5hbWVzLCAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5JbnZva2VDb21wb25lbnQsIChvcCwgWywgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBudWxsLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzLCBmYWxzZSwgZmFsc2UpO1xuICB9XG59KTtcblxuZnVuY3Rpb24gaGFzaFRvQXJncyhoYXNoOiBXaXJlRm9ybWF0LkNvcmUuSGFzaCB8IG51bGwpOiBXaXJlRm9ybWF0LkNvcmUuSGFzaCB8IG51bGwge1xuICBpZiAoaGFzaCA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gIGxldCBuYW1lcyA9IGhhc2hbMF0ubWFwKChrZXkpID0+IGBAJHtrZXl9YCk7XG4gIHJldHVybiBbbmFtZXMgYXMgW3N0cmluZywgLi4uc3RyaW5nW11dLCBoYXNoWzFdXTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -10,6 +10,5 @@ export * from './lib/program-context';

export { StdLib } from './lib/opcode-builder/stdlib';
export { PartialDefinitionImpl } from './lib/partial-template';
export { default as templateFactory, templateCacheCounters } from './lib/template';
export { WrappedBuilder } from './lib/wrapped-component';
export { EMPTY_BLOCKS } from './lib/utils';
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUFkO0FBRUEsU0FBUyxhQUFULFFBQThCLGdCQUE5QjtBQUVBLFNBQVMsaUJBQVQsRUFBNEIsVUFBNUIsUUFBOEMsMkJBQTlDO0FBRUEsY0FBYyw4QkFBZDtBQUNBLGNBQWMsK0JBQWQ7QUFFQSxTQUNFLDBCQUEwQixJQUFJLDBCQURoQyxFQUVFLGlCQUFpQixJQUFJLGlCQUZ2QixRQUdPLHFDQUhQO0FBSUEsU0FBUyxVQUFULFFBQTJCLHFDQUEzQjtBQUNBLFNBQVMsSUFBVCxRQUFxQixxQ0FBckI7QUFFQSxTQUFTLE1BQVQsUUFBdUIsNkJBQXZCO0FBRUEsU0FBUyxxQkFBVCxRQUFzQyx3QkFBdEM7QUFFQSxTQUNFLE9BQU8sSUFBSSxlQURiLEVBRUUscUJBRkYsUUFLTyxnQkFMUDtBQU9BLFNBQVMsY0FBVCxRQUErQix5QkFBL0I7QUFFQSxTQUFTLFlBQVQsUUFBNkIsYUFBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9wcm9ncmFtLWNvbnRleHQnO1xuXG5leHBvcnQgeyBkZWJ1Z0NvbXBpbGVyIH0gZnJvbSAnLi9saWIvY29tcGlsZXInO1xuXG5leHBvcnQgeyBjb21waWxlU3RhdGVtZW50cywgY29tcGlsYWJsZSB9IGZyb20gJy4vbGliL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlci9jb250ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyL2RlbGVnYXRlJztcblxuZXhwb3J0IHtcbiAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sgYXMgaW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2ssXG4gIEludm9rZVN0YXRpY0Jsb2NrIGFzIGludm9rZVN0YXRpY0Jsb2NrLFxufSBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2Jsb2Nrcyc7XG5leHBvcnQgeyBjb21waWxlU3RkIH0gZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9zdGRsaWInO1xuZXhwb3J0IHsgbWV0YSB9IGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcblxuZXhwb3J0IHsgU3RkTGliIH0gZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXIvc3RkbGliJztcblxuZXhwb3J0IHsgUGFydGlhbERlZmluaXRpb25JbXBsIH0gZnJvbSAnLi9saWIvcGFydGlhbC10ZW1wbGF0ZSc7XG5cbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgdGVtcGxhdGVGYWN0b3J5LFxuICB0ZW1wbGF0ZUNhY2hlQ291bnRlcnMsXG4gIFRlbXBsYXRlRmFjdG9yeVdpdGhJZEFuZE1ldGEsXG4gIFRlbXBsYXRlV2l0aElkQW5kUmVmZXJyZXIsXG59IGZyb20gJy4vbGliL3RlbXBsYXRlJztcblxuZXhwb3J0IHsgV3JhcHBlZEJ1aWxkZXIgfSBmcm9tICcuL2xpYi93cmFwcGVkLWNvbXBvbmVudCc7XG5cbmV4cG9ydCB7IEVNUFRZX0JMT0NLUyB9IGZyb20gJy4vbGliL3V0aWxzJztcbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUFkO0FBRUEsU0FBUyxhQUFULFFBQThCLGdCQUE5QjtBQUVBLFNBQVMsaUJBQVQsRUFBNEIsVUFBNUIsUUFBOEMsMkJBQTlDO0FBRUEsY0FBYyw4QkFBZDtBQUNBLGNBQWMsK0JBQWQ7QUFFQSxTQUNFLDBCQUEwQixJQUFJLDBCQURoQyxFQUVFLGlCQUFpQixJQUFJLGlCQUZ2QixRQUdPLHFDQUhQO0FBSUEsU0FBUyxVQUFULFFBQTJCLHFDQUEzQjtBQUNBLFNBQVMsSUFBVCxRQUFxQixxQ0FBckI7QUFFQSxTQUFTLE1BQVQsUUFBdUIsNkJBQXZCO0FBRUEsU0FDRSxPQUFPLElBQUksZUFEYixFQUVFLHFCQUZGLFFBS08sZ0JBTFA7QUFPQSxTQUFTLGNBQVQsUUFBK0IseUJBQS9CO0FBRUEsU0FBUyxZQUFULFFBQTZCLGFBQTdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvZ3JhbS1jb250ZXh0JztcblxuZXhwb3J0IHsgZGVidWdDb21waWxlciB9IGZyb20gJy4vbGliL2NvbXBpbGVyJztcblxuZXhwb3J0IHsgY29tcGlsZVN0YXRlbWVudHMsIGNvbXBpbGFibGUgfSBmcm9tICcuL2xpYi9jb21waWxhYmxlLXRlbXBsYXRlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXIvY29udGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlci9kZWxlZ2F0ZSc7XG5cbmV4cG9ydCB7XG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrIGFzIGludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrLFxuICBJbnZva2VTdGF0aWNCbG9jayBhcyBpbnZva2VTdGF0aWNCbG9jayxcbn0gZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9ibG9ja3MnO1xuZXhwb3J0IHsgY29tcGlsZVN0ZCB9IGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc3RkbGliJztcbmV4cG9ydCB7IG1ldGEgfSBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3NoYXJlZCc7XG5cbmV4cG9ydCB7IFN0ZExpYiB9IGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyL3N0ZGxpYic7XG5cbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgdGVtcGxhdGVGYWN0b3J5LFxuICB0ZW1wbGF0ZUNhY2hlQ291bnRlcnMsXG4gIFRlbXBsYXRlRmFjdG9yeVdpdGhJZEFuZE1ldGEsXG4gIFRlbXBsYXRlV2l0aElkQW5kUmVmZXJyZXIsXG59IGZyb20gJy4vbGliL3RlbXBsYXRlJztcblxuZXhwb3J0IHsgV3JhcHBlZEJ1aWxkZXIgfSBmcm9tICcuL2xpYi93cmFwcGVkLWNvbXBvbmVudCc7XG5cbmV4cG9ydCB7IEVNUFRZX0JMT0NLUyB9IGZyb20gJy4vbGliL3V0aWxzJztcbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -31,2 +31,2 @@ export const DEFAULT_CAPABILITIES = {

};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvZGVsZWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxNQUFNLG9CQUFvQixHQUFrQztBQUNqRSxFQUFBLGFBQWEsRUFBRSxJQURrRDtBQUVqRSxFQUFBLFVBQVUsRUFBRSxJQUZxRDtBQUdqRSxFQUFBLFdBQVcsRUFBRSxJQUhvRDtBQUlqRSxFQUFBLFVBQVUsRUFBRSxJQUpxRDtBQUtqRSxFQUFBLGFBQWEsRUFBRSxLQUxrRDtBQU1qRSxFQUFBLFdBQVcsRUFBRSxLQU5vRDtBQU9qRSxFQUFBLFlBQVksRUFBRSxJQVBtRDtBQVFqRSxFQUFBLFlBQVksRUFBRSxLQVJtRDtBQVNqRSxFQUFBLFVBQVUsRUFBRSxJQVRxRDtBQVVqRSxFQUFBLGNBQWMsRUFBRSxJQVZpRDtBQVdqRSxFQUFBLE9BQU8sRUFBRSxLQVh3RDtBQVlqRSxFQUFBLFdBQVcsRUFBRSxLQVpvRDtBQWFqRSxFQUFBLFdBQVcsRUFBRTtBQWJvRCxDQUE1RDtBQWdCUCxPQUFPLE1BQU0sb0JBQW9CLEdBQWtDO0FBQ2pFLEVBQUEsYUFBYSxFQUFFLEtBRGtEO0FBRWpFLEVBQUEsVUFBVSxFQUFFLEtBRnFEO0FBR2pFLEVBQUEsV0FBVyxFQUFFLEtBSG9EO0FBSWpFLEVBQUEsVUFBVSxFQUFFLEtBSnFEO0FBS2pFLEVBQUEsYUFBYSxFQUFFLEtBTGtEO0FBTWpFLEVBQUEsV0FBVyxFQUFFLEtBTm9EO0FBT2pFLEVBQUEsWUFBWSxFQUFFLEtBUG1EO0FBUWpFLEVBQUEsWUFBWSxFQUFFLEtBUm1EO0FBU2pFLEVBQUEsVUFBVSxFQUFFLEtBVHFEO0FBVWpFLEVBQUEsY0FBYyxFQUFFLEtBVmlEO0FBV2pFLEVBQUEsT0FBTyxFQUFFLEtBWHdEO0FBWWpFLEVBQUEsV0FBVyxFQUFFLEtBWm9EO0FBYWpFLEVBQUEsV0FBVyxFQUFFO0FBYm9ELENBQTVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMsIE9wdGlvbiwgQ29tcGlsZVRpbWVDb21wb25lbnQgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ0FQQUJJTElUSUVTOiBJbnRlcm5hbENvbXBvbmVudENhcGFiaWxpdGllcyA9IHtcbiAgZHluYW1pY0xheW91dDogdHJ1ZSxcbiAgZHluYW1pY1RhZzogdHJ1ZSxcbiAgcHJlcGFyZUFyZ3M6IHRydWUsXG4gIGNyZWF0ZUFyZ3M6IHRydWUsXG4gIGF0dHJpYnV0ZUhvb2s6IGZhbHNlLFxuICBlbGVtZW50SG9vazogZmFsc2UsXG4gIGR5bmFtaWNTY29wZTogdHJ1ZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgdXBkYXRlSG9vazogdHJ1ZSxcbiAgY3JlYXRlSW5zdGFuY2U6IHRydWUsXG4gIHdyYXBwZWQ6IGZhbHNlLFxuICB3aWxsRGVzdHJveTogZmFsc2UsXG4gIGhhc1N1Yk93bmVyOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBjb25zdCBNSU5JTUFMX0NBUEFCSUxJVElFUzogSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMgPSB7XG4gIGR5bmFtaWNMYXlvdXQ6IGZhbHNlLFxuICBkeW5hbWljVGFnOiBmYWxzZSxcbiAgcHJlcGFyZUFyZ3M6IGZhbHNlLFxuICBjcmVhdGVBcmdzOiBmYWxzZSxcbiAgYXR0cmlidXRlSG9vazogZmFsc2UsXG4gIGVsZW1lbnRIb29rOiBmYWxzZSxcbiAgZHluYW1pY1Njb3BlOiBmYWxzZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgdXBkYXRlSG9vazogZmFsc2UsXG4gIGNyZWF0ZUluc3RhbmNlOiBmYWxzZSxcbiAgd3JhcHBlZDogZmFsc2UsXG4gIHdpbGxEZXN0cm95OiBmYWxzZSxcbiAgaGFzU3ViT3duZXI6IGZhbHNlLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlckRlbGVnYXRlPFIgPSB1bmtub3duPiB7XG4gIGxvb2t1cEhlbHBlcj8obmFtZTogc3RyaW5nLCByZWZlcnJlcjogUik6IE9wdGlvbjxudW1iZXI+IHwgdm9pZDtcbiAgbG9va3VwTW9kaWZpZXI/KG5hbWU6IHN0cmluZywgcmVmZXJyZXI6IFIpOiBPcHRpb248bnVtYmVyPiB8IHZvaWQ7XG4gIGxvb2t1cENvbXBvbmVudD8obmFtZTogc3RyaW5nLCByZWZlcnJlcjogUik6IE9wdGlvbjxDb21waWxlVGltZUNvbXBvbmVudD4gfCB2b2lkO1xuICBsb29rdXBQYXJ0aWFsPyhuYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBSKTogT3B0aW9uPG51bWJlcj4gfCB2b2lkO1xuXG4gIC8vIEZvciBkZWJ1Z2dpbmdcbiAgcmVzb2x2ZT8oaGFuZGxlOiBudW1iZXIpOiBSO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvZGVsZWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxNQUFNLG9CQUFvQixHQUFrQztBQUNqRSxFQUFBLGFBQWEsRUFBRSxJQURrRDtBQUVqRSxFQUFBLFVBQVUsRUFBRSxJQUZxRDtBQUdqRSxFQUFBLFdBQVcsRUFBRSxJQUhvRDtBQUlqRSxFQUFBLFVBQVUsRUFBRSxJQUpxRDtBQUtqRSxFQUFBLGFBQWEsRUFBRSxLQUxrRDtBQU1qRSxFQUFBLFdBQVcsRUFBRSxLQU5vRDtBQU9qRSxFQUFBLFlBQVksRUFBRSxJQVBtRDtBQVFqRSxFQUFBLFlBQVksRUFBRSxLQVJtRDtBQVNqRSxFQUFBLFVBQVUsRUFBRSxJQVRxRDtBQVVqRSxFQUFBLGNBQWMsRUFBRSxJQVZpRDtBQVdqRSxFQUFBLE9BQU8sRUFBRSxLQVh3RDtBQVlqRSxFQUFBLFdBQVcsRUFBRSxLQVpvRDtBQWFqRSxFQUFBLFdBQVcsRUFBRTtBQWJvRCxDQUE1RDtBQWdCUCxPQUFPLE1BQU0sb0JBQW9CLEdBQWtDO0FBQ2pFLEVBQUEsYUFBYSxFQUFFLEtBRGtEO0FBRWpFLEVBQUEsVUFBVSxFQUFFLEtBRnFEO0FBR2pFLEVBQUEsV0FBVyxFQUFFLEtBSG9EO0FBSWpFLEVBQUEsVUFBVSxFQUFFLEtBSnFEO0FBS2pFLEVBQUEsYUFBYSxFQUFFLEtBTGtEO0FBTWpFLEVBQUEsV0FBVyxFQUFFLEtBTm9EO0FBT2pFLEVBQUEsWUFBWSxFQUFFLEtBUG1EO0FBUWpFLEVBQUEsWUFBWSxFQUFFLEtBUm1EO0FBU2pFLEVBQUEsVUFBVSxFQUFFLEtBVHFEO0FBVWpFLEVBQUEsY0FBYyxFQUFFLEtBVmlEO0FBV2pFLEVBQUEsT0FBTyxFQUFFLEtBWHdEO0FBWWpFLEVBQUEsV0FBVyxFQUFFLEtBWm9EO0FBYWpFLEVBQUEsV0FBVyxFQUFFO0FBYm9ELENBQTVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMsIE9wdGlvbiwgQ29tcGlsZVRpbWVDb21wb25lbnQgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ0FQQUJJTElUSUVTOiBJbnRlcm5hbENvbXBvbmVudENhcGFiaWxpdGllcyA9IHtcbiAgZHluYW1pY0xheW91dDogdHJ1ZSxcbiAgZHluYW1pY1RhZzogdHJ1ZSxcbiAgcHJlcGFyZUFyZ3M6IHRydWUsXG4gIGNyZWF0ZUFyZ3M6IHRydWUsXG4gIGF0dHJpYnV0ZUhvb2s6IGZhbHNlLFxuICBlbGVtZW50SG9vazogZmFsc2UsXG4gIGR5bmFtaWNTY29wZTogdHJ1ZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgdXBkYXRlSG9vazogdHJ1ZSxcbiAgY3JlYXRlSW5zdGFuY2U6IHRydWUsXG4gIHdyYXBwZWQ6IGZhbHNlLFxuICB3aWxsRGVzdHJveTogZmFsc2UsXG4gIGhhc1N1Yk93bmVyOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBjb25zdCBNSU5JTUFMX0NBUEFCSUxJVElFUzogSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMgPSB7XG4gIGR5bmFtaWNMYXlvdXQ6IGZhbHNlLFxuICBkeW5hbWljVGFnOiBmYWxzZSxcbiAgcHJlcGFyZUFyZ3M6IGZhbHNlLFxuICBjcmVhdGVBcmdzOiBmYWxzZSxcbiAgYXR0cmlidXRlSG9vazogZmFsc2UsXG4gIGVsZW1lbnRIb29rOiBmYWxzZSxcbiAgZHluYW1pY1Njb3BlOiBmYWxzZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgdXBkYXRlSG9vazogZmFsc2UsXG4gIGNyZWF0ZUluc3RhbmNlOiBmYWxzZSxcbiAgd3JhcHBlZDogZmFsc2UsXG4gIHdpbGxEZXN0cm95OiBmYWxzZSxcbiAgaGFzU3ViT3duZXI6IGZhbHNlLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlckRlbGVnYXRlPFIgPSB1bmtub3duPiB7XG4gIGxvb2t1cEhlbHBlcj8obmFtZTogc3RyaW5nLCByZWZlcnJlcjogUik6IE9wdGlvbjxudW1iZXI+IHwgdm9pZDtcbiAgbG9va3VwTW9kaWZpZXI/KG5hbWU6IHN0cmluZywgcmVmZXJyZXI6IFIpOiBPcHRpb248bnVtYmVyPiB8IHZvaWQ7XG4gIGxvb2t1cENvbXBvbmVudD8obmFtZTogc3RyaW5nLCByZWZlcnJlcjogUik6IE9wdGlvbjxDb21waWxlVGltZUNvbXBvbmVudD4gfCB2b2lkO1xuXG4gIC8vIEZvciBkZWJ1Z2dpbmdcbiAgcmVzb2x2ZT8oaGFuZGxlOiBudW1iZXIpOiBSO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -244,4 +244,3 @@ import { DEBUG } from '@glimmer/env';

export function resolveOptionalHelper(resolver, constants, meta, [, expr, {
ifHelper,
ifFallback
ifHelper
}]) {

@@ -256,5 +255,3 @@ (false && assert(isGetFreeOptionalHelper(expr) || isGetFreeDeprecatedHelper(expr), 'Attempted to resolve a helper with incorrect opcode'));

if (helper === null) {
ifFallback(name, meta.moduleName);
} else {
if (helper) {
ifHelper(constants.helper(helper, name), name, meta.moduleName);

@@ -270,4 +267,3 @@ }

ifHelper,
ifValue,
ifFallback
ifValue
}]) {

@@ -328,6 +324,3 @@ (false && assert(isGetFreeOptionalComponentOrHelper(expr), 'Attempted to resolve an optional component or helper with incorrect opcode'));

ifHelper(constants.helper(helper, name));
return;
}
ifFallback(name);
}

@@ -351,2 +344,2 @@ }

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsS0FBVCxRQUFzQixjQUF0QjtBQWdCQSxTQUFTLE1BQVQsRUFBaUIsYUFBakIsUUFBOEMsZUFBOUM7O0FBRUEsU0FBUyxjQUFULENBQXdCLE1BQXhCLEVBQXNEO0FBQ3BELFNBQU8sS0FBSyxDQUFDLE9BQU4sQ0FBYyxNQUFkLEtBQXlCLE1BQU0sQ0FBQyxNQUFQLEtBQWtCLENBQWxEO0FBQ0Q7O0FBRUQsU0FBUywwQkFBVCxDQUFvQyxZQUFwQyxFQUE2RDtBQUMzRCxTQUNFLE1BREssSUFFNEQ7QUFDakUsUUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFELENBQW5CLEVBQTZCLE9BQU8sS0FBUDtBQUU3QixRQUFJLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBRCxDQUFqQjtBQUVBLFdBQ0UsSUFBSSxLQUFBO0FBQUE7QUFBSixPQUNBLElBQUksS0FBQTtBQUFBO0FBREosT0FFQSxJQUFJLEtBQUssWUFIWDtBQUtELEdBWkQ7QUFhRDs7QUFFRCxPQUFPLE1BQU0sa0JBQWtCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXJEO0FBRVAsT0FBTyxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFwRDtBQUVQLE9BQU8sTUFBTSxlQUFlLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQWxEO0FBRVAsT0FBTyxNQUFNLDBCQUEwQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUE3RDtBQUlQLE9BQU8sTUFBTSx1QkFBdUIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBMUQ7QUFJUCxPQUFNLFNBQVUseUJBQVYsQ0FDSixNQURJLEVBQzBCO0FBRTlCLFNBQ0UsS0FBSyxDQUFDLE9BQU4sQ0FB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QUFJLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUQsQ0FBTCxDQUFqQjtBQUNBLE1BQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxtQkFBVCxDQUE2QixJQUE3QixDQUFiOztBQUVBLE1BQUksS0FBSyxJQUFJLE1BQU0sS0FBSyxJQUF4QixFQUE4QjtBQUM1QjtBQUNBO0FBQ0EsVUFBTSxJQUFJLEtBQUosQ0FDSiwwQkFBMEIsSUFBSSxnRUFDNUIsSUFBSSxDQUFDLE1BQUwsQ0FBYSxJQUFJLENBQUMsQ0FBRCxDQUFqQixDQUNGLEVBSEksQ0FBTjtBQUtEOztBQUVELFNBQU8sU0FBUyxDQUFDLE1BQVYsQ0FBaUIsTUFBakIsRUFBMEIsSUFBMUIsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgQ29tcGlsZVRpbWVDb25zdGFudHMsXG4gIENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgRXhwcmVzc2lvbnMsXG4gIE93bmVyLFxuICBSZXNvbHZlQ29tcG9uZW50T3AsXG4gIFJlc29sdmVDb21wb25lbnRPckhlbHBlck9wLFxuICBSZXNvbHZlSGVscGVyT3AsXG4gIFJlc29sdmVNb2RpZmllck9wLFxuICBSZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlck9wLFxuICBSZXNvbHZlT3B0aW9uYWxIZWxwZXJPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGFzc2VydCwgZGVidWdUb1N0cmluZywgZXhwZWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmZ1bmN0aW9uIGlzR2V0TGlrZVR1cGxlKG9wY29kZTogRXhwcmVzc2lvbnMuRXhwcmVzc2lvbik6IG9wY29kZSBpcyBFeHByZXNzaW9ucy5UdXBsZUV4cHJlc3Npb24ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShvcGNvZGUpICYmIG9wY29kZS5sZW5ndGggPT09IDI7XG59XG5cbmZ1bmN0aW9uIG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKHR5cGVUb1ZlcmlmeTogU2V4cE9wY29kZXMpIHtcbiAgcmV0dXJuIChcbiAgICBvcGNvZGU6IEV4cHJlc3Npb25zLkV4cHJlc3Npb25cbiAgKTogb3Bjb2RlIGlzIEV4cHJlc3Npb25zLkdldEZyZWUgfCBFeHByZXNzaW9ucy5HZXRUZW1wbGF0ZVN5bWJvbCA9PiB7XG4gICAgaWYgKCFpc0dldExpa2VUdXBsZShvcGNvZGUpKSByZXR1cm4gZmFsc2U7XG5cbiAgICBsZXQgdHlwZSA9IG9wY29kZVswXTtcblxuICAgIHJldHVybiAoXG4gICAgICB0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlIHx8XG4gICAgICB0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCB8fFxuICAgICAgdHlwZSA9PT0gdHlwZVRvVmVyaWZ5XG4gICAgKTtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUNvbXBvbmVudCA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudEhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlTW9kaWZpZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNNb2RpZmllckhlYWQpO1xuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlSGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzSGVscGVySGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVDb21wb25lbnRPckhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFxuICBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRcbik7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVPcHRpb25hbEhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFxuICBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2tcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0dldEZyZWVEZXByZWNhdGVkSGVscGVyKFxuICBvcGNvZGU6IEV4cHJlc3Npb25zLkV4cHJlc3Npb25cbik6IG9wY29kZSBpcyBFeHByZXNzaW9ucy5HZXRQYXRoRnJlZUFzRGVwcmVjYXRlZEhlbHBlckhlYWRPclRoaXNGYWxsYmFjayB7XG4gIHJldHVybiAoXG4gICAgQXJyYXkuaXNBcnJheShvcGNvZGUpICYmIG9wY29kZVswXSA9PT0gU2V4cE9wY29kZXMuR2V0RnJlZUFzRGVwcmVjYXRlZEhlbHBlckhlYWRPclRoaXNGYWxsYmFja1xuICApO1xufVxuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFxuICBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFja1xuKTtcblxuaW50ZXJmYWNlIFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhIGV4dGVuZHMgQ29udGFpbmluZ01ldGFkYXRhIHtcbiAgb3duZXI6IE93bmVyO1xuICB1cHZhcnM6IHN0cmluZ1tdO1xufVxuXG5mdW5jdGlvbiBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YTogQ29udGFpbmluZ01ldGFkYXRhKTogUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGEge1xuICBpZiAoREVCVUcpIHtcbiAgICBpZiAoIW1ldGEudXB2YXJzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCwgaGVscGVyLCBvciBtb2RpZmllciwgYnV0IG5vIGZyZWUgdmFycyB3ZXJlIGZvdW5kJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIW1ldGEub3duZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50LCBoZWxwZXIsIG9yIG1vZGlmaWVyLCBidXQgbm8gb3duZXIgd2FzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGVtcGxhdGUgaXQgd2FzIGJlaW5nIHJlc29sdmVkIGZyb20nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAobWV0YSBhcyB1bmtub3duKSBhcyBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YTtcbn1cblxuLyoqXG4gKiA8Rm9vLz5cbiAqIDxGb28+PC9Gb28+XG4gKiA8Rm9vIEBhcmc9e3t0cnVlfX0gLz5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnQoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVDb21wb25lbnRPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVDb21wb25lbnQoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKERFQlVHICYmIGV4cHJbMF0gPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQgaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IHRoYXQgdmFsdWUgd2FzIG5vdCBpbiBzY29wZTogJHtcbiAgICAgICAgbWV0YS51cHZhcnMhW2V4cHJbMV1dXG4gICAgICB9YFxuICAgICk7XG4gIH1cblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcywgb3duZXIgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihcbiAgICAgIGNvbnN0YW50cy5jb21wb25lbnQoXG4gICAgICAgIGRlZmluaXRpb24gYXMgb2JqZWN0LFxuICAgICAgICBleHBlY3Qob3duZXIsICdCVUc6IGV4cGVjdGVkIG93bmVyIHdoZW4gcmVzb2x2aW5nIGNvbXBvbmVudCBkZWZpbml0aW9uJylcbiAgICAgIClcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBkZWZpbml0aW9uID0gcmVzb2x2ZXIubG9va3VwQ29tcG9uZW50KG5hbWUsIG93bmVyKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgY29tcG9uZW50LCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiAoaGVscGVyKVxuICogKGhlbHBlciBhcmcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlSGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlSGVscGVyKGV4cHIpLCAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uIGFzIG9iamVjdCkpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICB0aGVuKFxuICAgICAgbG9va3VwQnVpbHRJbkhlbHBlcihleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsIHJlc29sdmVyLCBtZXRhLCBjb25zdGFudHMsICdoZWxwZXInKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lciEpITtcblxuICAgIGlmIChERUJVRyAmJiBoZWxwZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGhlbHBlciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICogPGRpdiB7e21vZGlmaWVyfX0vPlxuICogPGRpdiB7e21vZGlmaWVyIGFyZ319Lz5cbiAqIDxGb28ge3ttb2RpZmllcn19Lz5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVNb2RpZmllcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZU1vZGlmaWVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoaXNHZXRGcmVlTW9kaWZpZXIoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIG1vZGlmaWVyIHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcyB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihkZWZpbml0aW9uIGFzIG9iamVjdCkpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBsZXQgeyB1cHZhcnMgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgbW9kaWZpZXIgPSByZXNvbHZlci5sb29rdXBCdWlsdEluTW9kaWZpZXIobmFtZSk7XG5cbiAgICBpZiAoREVCVUcgJiYgbW9kaWZpZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgbW9kaWZpZXIgaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IGl0IHdhcyBub3QgaW4gc2NvcGU6ICR7bmFtZX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKG1vZGlmaWVyISwgbmFtZSkpO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgbW9kaWZpZXIgPSByZXNvbHZlci5sb29rdXBNb2RpZmllcihuYW1lLCBvd25lcikhO1xuXG4gICAgaWYgKERFQlVHICYmIG1vZGlmaWVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBtb2RpZmllciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIobW9kaWZpZXIsIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIHt7Y29tcG9uZW50LW9yLWhlbHBlciBhcmd9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHsgaWZDb21wb25lbnQsIGlmSGVscGVyIH1dOiBSZXNvbHZlQ29tcG9uZW50T3JIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChcbiAgICBpc0dldEZyZWVDb21wb25lbnRPckhlbHBlcihleHByKSxcbiAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQgb3IgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZSdcbiAgKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMsIG93bmVyIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIGxldCBjb21wb25lbnQgPSBjb25zdGFudHMuY29tcG9uZW50KFxuICAgICAgZGVmaW5pdGlvbiBhcyBvYmplY3QsXG4gICAgICBleHBlY3Qob3duZXIsICdCVUc6IGV4cGVjdGVkIG93bmVyIHdoZW4gcmVzb2x2aW5nIGNvbXBvbmVudCBkZWZpbml0aW9uJyksXG4gICAgICB0cnVlXG4gICAgKTtcblxuICAgIGlmIChjb21wb25lbnQgIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiBhcyBvYmplY3QsIG51bGwsIHRydWUpO1xuXG4gICAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHVzZSBhIHZhbHVlIGFzIGVpdGhlciBhIGNvbXBvbmVudCBvciBoZWxwZXIsIGJ1dCBpdCBkaWQgbm90IGhhdmUgYSBjb21wb25lbnQgbWFuYWdlciBvciBoZWxwZXIgbWFuYWdlciBhc3NvY2lhdGVkIHdpdGggaXQuIFRoZSB2YWx1ZSB3YXM6ICR7ZGVidWdUb1N0cmluZyEoXG4gICAgICAgICAgZGVmaW5pdGlvblxuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWZIZWxwZXIoZXhwZWN0KGhlbHBlciwgJ0JVRzogaGVscGVyIG11c3QgZXhpc3QnKSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIGlmSGVscGVyKFxuICAgICAgbG9va3VwQnVpbHRJbkhlbHBlcihcbiAgICAgICAgZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLFxuICAgICAgICByZXNvbHZlcixcbiAgICAgICAgbWV0YSxcbiAgICAgICAgY29uc3RhbnRzLFxuICAgICAgICAnY29tcG9uZW50IG9yIGhlbHBlcidcbiAgICAgIClcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBkZWZpbml0aW9uID0gcmVzb2x2ZXIubG9va3VwQ29tcG9uZW50KG5hbWUsIG93bmVyKTtcblxuICAgIGlmIChkZWZpbml0aW9uICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyKTtcblxuICAgICAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIGNvbXBvbmVudCBvciBoZWxwZXIsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyISwgbmFtZSkpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIDxGb28gQGFyZz17e2hlbHBlcn19PlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU9wdGlvbmFsSGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHsgaWZIZWxwZXIsIGlmRmFsbGJhY2sgfV06IFJlc29sdmVPcHRpb25hbEhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KFxuICAgIGlzR2V0RnJlZU9wdGlvbmFsSGVscGVyKGV4cHIpIHx8IGlzR2V0RnJlZURlcHJlY2F0ZWRIZWxwZXIoZXhwciksXG4gICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZSdcbiAgKTtcbiAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyKTtcblxuICBpZiAoaGVscGVyID09PSBudWxsKSB7XG4gICAgaWZGYWxsYmFjayhuYW1lLCBtZXRhLm1vZHVsZU5hbWUpO1xuICB9IGVsc2Uge1xuICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSwgbmFtZSwgbWV0YS5tb2R1bGVOYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIHt7bWF5YmVIZWxwZXJPckNvbXBvbmVudH19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB7IGlmQ29tcG9uZW50LCBpZkhlbHBlciwgaWZWYWx1ZSwgaWZGYWxsYmFjayB9XTogUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChcbiAgICBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhbiBvcHRpb25hbCBjb21wb25lbnQgb3IgaGVscGVyIHdpdGggaW5jb3JyZWN0IG9wY29kZSdcbiAgKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMsIG93bmVyIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBkZWZpbml0aW9uICE9PSAnZnVuY3Rpb24nICYmXG4gICAgICAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpXG4gICAgKSB7XG4gICAgICAvLyBUaGUgdmFsdWUgaXMgbm90IGFuIG9iamVjdCwgc28gaXQgY2FuJ3QgYmUgYSBjb21wb25lbnQgb3IgaGVscGVyLlxuICAgICAgaWZWYWx1ZShjb25zdGFudHMudmFsdWUoZGVmaW5pdGlvbikpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjb21wb25lbnQgPSBjb25zdGFudHMuY29tcG9uZW50KFxuICAgICAgZGVmaW5pdGlvbixcbiAgICAgIGV4cGVjdChvd25lciwgJ0JVRzogZXhwZWN0ZWQgb3duZXIgd2hlbiByZXNvbHZpbmcgY29tcG9uZW50IGRlZmluaXRpb24nKSxcbiAgICAgIHRydWVcbiAgICApO1xuXG4gICAgaWYgKGNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uLCBudWxsLCB0cnVlKTtcblxuICAgIGlmIChoZWxwZXIgIT09IG51bGwpIHtcbiAgICAgIGlmSGVscGVyKGhlbHBlcik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWZWYWx1ZShjb25zdGFudHMudmFsdWUoZGVmaW5pdGlvbikpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUpIHtcbiAgICBpZkhlbHBlcihcbiAgICAgIGxvb2t1cEJ1aWx0SW5IZWxwZXIoZXhwciBhcyBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLCByZXNvbHZlciwgbWV0YSwgY29uc3RhbnRzLCAndmFsdWUnKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGRlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEhlbHBlcihuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoaGVscGVyICE9PSBudWxsKSB7XG4gICAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmRmFsbGJhY2sobmFtZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbG9va3VwQnVpbHRJbkhlbHBlcihcbiAgZXhwcjogRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSxcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgY29uc3RhbnRzOiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgdHlwZTogc3RyaW5nXG4pOiBudW1iZXIge1xuICBsZXQgeyB1cHZhcnMgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEJ1aWx0SW5IZWxwZXIobmFtZSk7XG5cbiAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgIC8vIEtleXdvcmQgaGVscGVyIGRpZCBub3QgZXhpc3QsIHdoaWNoIG1lYW5zIHRoYXQgd2UncmUgYXR0ZW1wdGluZyB0byB1c2UgYVxuICAgIC8vIHZhbHVlIG9mIHNvbWUga2luZCB0aGF0IGlzIG5vdCBpbiBzY29wZVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhICR7dHlwZX0gaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IHRoYXQgdmFsdWUgd2FzIG5vdCBpbiBzY29wZTogJHtcbiAgICAgICAgbWV0YS51cHZhcnMhW2V4cHJbMV1dXG4gICAgICB9YFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gY29uc3RhbnRzLmhlbHBlcihoZWxwZXIhLCBuYW1lKTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsS0FBVCxRQUFzQixjQUF0QjtBQWdCQSxTQUFTLE1BQVQsRUFBaUIsYUFBakIsUUFBOEMsZUFBOUM7O0FBRUEsU0FBUyxjQUFULENBQXdCLE1BQXhCLEVBQXNEO0FBQ3BELFNBQU8sS0FBSyxDQUFDLE9BQU4sQ0FBYyxNQUFkLEtBQXlCLE1BQU0sQ0FBQyxNQUFQLEtBQWtCLENBQWxEO0FBQ0Q7O0FBRUQsU0FBUywwQkFBVCxDQUFvQyxZQUFwQyxFQUE2RDtBQUMzRCxTQUNFLE1BREssSUFFNEQ7QUFDakUsUUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFELENBQW5CLEVBQTZCLE9BQU8sS0FBUDtBQUU3QixRQUFJLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBRCxDQUFqQjtBQUVBLFdBQ0UsSUFBSSxLQUFBO0FBQUE7QUFBSixPQUNBLElBQUksS0FBQTtBQUFBO0FBREosT0FFQSxJQUFJLEtBQUssWUFIWDtBQUtELEdBWkQ7QUFhRDs7QUFFRCxPQUFPLE1BQU0sa0JBQWtCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQXJEO0FBRVAsT0FBTyxNQUFNLGlCQUFpQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFwRDtBQUVQLE9BQU8sTUFBTSxlQUFlLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQWxEO0FBRVAsT0FBTyxNQUFNLDBCQUEwQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUE3RDtBQUlQLE9BQU8sTUFBTSx1QkFBdUIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBMUQ7QUFJUCxPQUFNLFNBQVUseUJBQVYsQ0FDSixNQURJLEVBQzBCO0FBRTlCLFNBQ0UsS0FBSyxDQUFDLE9BQU4sQ0FB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O0FBQzVCO0FBQ0E7QUFDQSxVQUFNLElBQUksS0FBSixDQUNKLDBCQUEwQixJQUFJLGdFQUM1QixJQUFJLENBQUMsTUFBTCxDQUFhLElBQUksQ0FBQyxDQUFELENBQWpCLENBQ0YsRUFISSxDQUFOO0FBS0Q7O0FBRUQsU0FBTyxTQUFTLENBQUMsTUFBVixDQUFpQixNQUFqQixFQUEwQixJQUExQixDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQge1xuICBDb21waWxlVGltZUNvbnN0YW50cyxcbiAgQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgQ29udGFpbmluZ01ldGFkYXRhLFxuICBFeHByZXNzaW9ucyxcbiAgT3duZXIsXG4gIFJlc29sdmVDb21wb25lbnRPcCxcbiAgUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyT3AsXG4gIFJlc29sdmVIZWxwZXJPcCxcbiAgUmVzb2x2ZU1vZGlmaWVyT3AsXG4gIFJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyT3AsXG4gIFJlc29sdmVPcHRpb25hbEhlbHBlck9wLFxuICBTZXhwT3Bjb2RlcyxcbiAgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYXNzZXJ0LCBkZWJ1Z1RvU3RyaW5nLCBleHBlY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuZnVuY3Rpb24gaXNHZXRMaWtlVHVwbGUob3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uKTogb3Bjb2RlIGlzIEV4cHJlc3Npb25zLlR1cGxlRXhwcmVzc2lvbiB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KG9wY29kZSkgJiYgb3Bjb2RlLmxlbmd0aCA9PT0gMjtcbn1cblxuZnVuY3Rpb24gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIodHlwZVRvVmVyaWZ5OiBTZXhwT3Bjb2Rlcykge1xuICByZXR1cm4gKFxuICAgIG9wY29kZTogRXhwcmVzc2lvbnMuRXhwcmVzc2lvblxuICApOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuR2V0RnJlZSB8IEV4cHJlc3Npb25zLkdldFRlbXBsYXRlU3ltYm9sID0+IHtcbiAgICBpZiAoIWlzR2V0TGlrZVR1cGxlKG9wY29kZSkpIHJldHVybiBmYWxzZTtcblxuICAgIGxldCB0eXBlID0gb3Bjb2RlWzBdO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUgfHxcbiAgICAgIHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sIHx8XG4gICAgICB0eXBlID09PSB0eXBlVG9WZXJpZnlcbiAgICApO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlQ29tcG9uZW50ID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50SGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVNb2RpZmllciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc01vZGlmaWVySGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZFxuKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU9wdGlvbmFsSGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFja1xuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzR2V0RnJlZURlcHJlY2F0ZWRIZWxwZXIoXG4gIG9wY29kZTogRXhwcmVzc2lvbnMuRXhwcmVzc2lvblxuKTogb3Bjb2RlIGlzIEV4cHJlc3Npb25zLkdldFBhdGhGcmVlQXNEZXByZWNhdGVkSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrIHtcbiAgcmV0dXJuIChcbiAgICBBcnJheS5pc0FycmF5KG9wY29kZSkgJiYgb3Bjb2RlWzBdID09PSBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNEZXByZWNhdGVkSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4gICk7XG59XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4pO1xuXG5pbnRlcmZhY2UgUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGEgZXh0ZW5kcyBDb250YWluaW5nTWV0YWRhdGEge1xuICBvd25lcjogT3duZXI7XG4gIHVwdmFyczogc3RyaW5nW107XG59XG5cbmZ1bmN0aW9uIGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhOiBDb250YWluaW5nTWV0YWRhdGEpOiBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YSB7XG4gIGlmIChERUJVRykge1xuICAgIGlmICghbWV0YS51cHZhcnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50LCBoZWxwZXIsIG9yIG1vZGlmaWVyLCBidXQgbm8gZnJlZSB2YXJzIHdlcmUgZm91bmQnXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghbWV0YS5vd25lcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQsIGhlbHBlciwgb3IgbW9kaWZpZXIsIGJ1dCBubyBvd25lciB3YXMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0ZW1wbGF0ZSBpdCB3YXMgYmVpbmcgcmVzb2x2ZWQgZnJvbSdcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChtZXRhIGFzIHVua25vd24pIGFzIFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhO1xufVxuXG4vKipcbiAqIDxGb28vPlxuICogPEZvbz48L0Zvbz5cbiAqIDxGb28gQGFyZz17e3RydWV9fSAvPlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbXBvbmVudChcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZUNvbXBvbmVudE9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZUNvbXBvbmVudChleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAoREVCVUcgJiYgZXhwclswXSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke1xuICAgICAgICBtZXRhLnVwdmFycyFbZXhwclsxXV1cbiAgICAgIH1gXG4gICAgKTtcbiAgfVxuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzLCBvd25lciB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKFxuICAgICAgY29uc3RhbnRzLmNvbXBvbmVudChcbiAgICAgICAgZGVmaW5pdGlvbiBhcyBvYmplY3QsXG4gICAgICAgIGV4cGVjdChvd25lciwgJ0JVRzogZXhwZWN0ZWQgb3duZXIgd2hlbiByZXNvbHZpbmcgY29tcG9uZW50IGRlZmluaXRpb24nKVxuICAgICAgKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpITtcblxuICAgIGlmIChERUJVRyAmJiAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBjb21wb25lbnQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIChoZWxwZXIpXG4gKiAoaGVscGVyIGFyZylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVIZWxwZXIoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24gYXMgb2JqZWN0KSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIHRoZW4oXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSwgcmVzb2x2ZXIsIG1ldGEsIGNvbnN0YW50cywgJ2hlbHBlcicpXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyISkhO1xuXG4gICAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgaGVscGVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiA8ZGl2IHt7bW9kaWZpZXJ9fS8+XG4gKiA8ZGl2IHt7bW9kaWZpZXIgYXJnfX0vPlxuICogPEZvbyB7e21vZGlmaWVyfX0vPlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU1vZGlmaWVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlTW9kaWZpZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVNb2RpZmllcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgbW9kaWZpZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKGRlZmluaXRpb24gYXMgb2JqZWN0KSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIGxldCB7IHVwdmFycyB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBtb2RpZmllciA9IHJlc29sdmVyLmxvb2t1cEJ1aWx0SW5Nb2RpZmllcihuYW1lKTtcblxuICAgIGlmIChERUJVRyAmJiBtb2RpZmllciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBtb2RpZmllciBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgaXQgd2FzIG5vdCBpbiBzY29wZTogJHtuYW1lfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIobW9kaWZpZXIhLCBuYW1lKSk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBtb2RpZmllciA9IHJlc29sdmVyLmxvb2t1cE1vZGlmaWVyKG5hbWUsIG93bmVyKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgbW9kaWZpZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIG1vZGlmaWVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihtb2RpZmllciwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICoge3tjb21wb25lbnQtb3ItaGVscGVyIGFyZ319XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29tcG9uZW50T3JIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkNvbXBvbmVudCwgaWZIZWxwZXIgfV06IFJlc29sdmVDb21wb25lbnRPckhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KFxuICAgIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCBvciBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJ1xuICApO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcywgb3duZXIgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgbGV0IGNvbXBvbmVudCA9IGNvbnN0YW50cy5jb21wb25lbnQoXG4gICAgICBkZWZpbml0aW9uIGFzIG9iamVjdCxcbiAgICAgIGV4cGVjdChvd25lciwgJ0JVRzogZXhwZWN0ZWQgb3duZXIgd2hlbiByZXNvbHZpbmcgY29tcG9uZW50IGRlZmluaXRpb24nKSxcbiAgICAgIHRydWVcbiAgICApO1xuXG4gICAgaWYgKGNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uIGFzIG9iamVjdCwgbnVsbCwgdHJ1ZSk7XG5cbiAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgZWl0aGVyIGEgY29tcG9uZW50IG9yIGhlbHBlciwgYnV0IGl0IGRpZCBub3QgaGF2ZSBhIGNvbXBvbmVudCBtYW5hZ2VyIG9yIGhlbHBlciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIHZhbHVlIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgICBkZWZpbml0aW9uXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZkhlbHBlcihleHBlY3QoaGVscGVyLCAnQlVHOiBoZWxwZXIgbXVzdCBleGlzdCcpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgaWZIZWxwZXIoXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKFxuICAgICAgICBleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsXG4gICAgICAgIHJlc29sdmVyLFxuICAgICAgICBtZXRhLFxuICAgICAgICBjb25zdGFudHMsXG4gICAgICAgICdjb21wb25lbnQgb3IgaGVscGVyJ1xuICAgICAgKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGRlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgY29tcG9uZW50IG9yIGhlbHBlciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIhLCBuYW1lKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogPEZvbyBAYXJnPXt7aGVscGVyfX0+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3B0aW9uYWxIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkhlbHBlciB9XTogUmVzb2x2ZU9wdGlvbmFsSGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlT3B0aW9uYWxIZWxwZXIoZXhwcikgfHwgaXNHZXRGcmVlRGVwcmVjYXRlZEhlbHBlcihleHByKSxcbiAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJ1xuICApO1xuICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gIGlmIChoZWxwZXIpIHtcbiAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSksIG5hbWUsIG1ldGEubW9kdWxlTmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiB7e21heWJlSGVscGVyT3JDb21wb25lbnR9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkNvbXBvbmVudCwgaWZIZWxwZXIsIGlmVmFsdWUgfV06IFJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihleHByKSxcbiAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYW4gb3B0aW9uYWwgY29tcG9uZW50IG9yIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzLCBvd25lciB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKVxuICAgICkge1xuICAgICAgLy8gVGhlIHZhbHVlIGlzIG5vdCBhbiBvYmplY3QsIHNvIGl0IGNhbid0IGJlIGEgY29tcG9uZW50IG9yIGhlbHBlci5cbiAgICAgIGlmVmFsdWUoY29uc3RhbnRzLnZhbHVlKGRlZmluaXRpb24pKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY29tcG9uZW50ID0gY29uc3RhbnRzLmNvbXBvbmVudChcbiAgICAgIGRlZmluaXRpb24sXG4gICAgICBleHBlY3Qob3duZXIsICdCVUc6IGV4cGVjdGVkIG93bmVyIHdoZW4gcmVzb2x2aW5nIGNvbXBvbmVudCBkZWZpbml0aW9uJyksXG4gICAgICB0cnVlXG4gICAgKTtcblxuICAgIGlmIChjb21wb25lbnQgIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiwgbnVsbCwgdHJ1ZSk7XG5cbiAgICBpZiAoaGVscGVyICE9PSBudWxsKSB7XG4gICAgICBpZkhlbHBlcihoZWxwZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmVmFsdWUoY29uc3RhbnRzLnZhbHVlKGRlZmluaXRpb24pKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgaWZIZWxwZXIoXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSwgcmVzb2x2ZXIsIG1ldGEsIGNvbnN0YW50cywgJ3ZhbHVlJylcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBkZWZpbml0aW9uID0gcmVzb2x2ZXIubG9va3VwQ29tcG9uZW50KG5hbWUsIG93bmVyKTtcblxuICAgIGlmIChkZWZpbml0aW9uICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGhlbHBlciAhPT0gbnVsbCkge1xuICAgICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbG9va3VwQnVpbHRJbkhlbHBlcihcbiAgZXhwcjogRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSxcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgY29uc3RhbnRzOiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgdHlwZTogc3RyaW5nXG4pOiBudW1iZXIge1xuICBsZXQgeyB1cHZhcnMgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEJ1aWx0SW5IZWxwZXIobmFtZSk7XG5cbiAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgIC8vIEtleXdvcmQgaGVscGVyIGRpZCBub3QgZXhpc3QsIHdoaWNoIG1lYW5zIHRoYXQgd2UncmUgYXR0ZW1wdGluZyB0byB1c2UgYVxuICAgIC8vIHZhbHVlIG9mIHNvbWUga2luZCB0aGF0IGlzIG5vdCBpbiBzY29wZVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhICR7dHlwZX0gaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IHRoYXQgdmFsdWUgd2FzIG5vdCBpbiBzY29wZTogJHtcbiAgICAgICAgbWV0YS51cHZhcnMhW2V4cHJbMV1dXG4gICAgICB9YFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gY29uc3RhbnRzLmhlbHBlcihoZWxwZXIhLCBuYW1lKTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -8,3 +8,2 @@ import { $v0 } from '@glimmer/vm';

import { Compilers } from './compilers';
import { DEBUG } from '@glimmer/env';
export const EXPRESSIONS = new Compilers();

@@ -71,20 +70,3 @@ EXPRESSIONS.add(29

/* GetFreeAsFallback */
, (op, [, freeVar, path]) => {
op(1010
/* ResolveLocal */
, freeVar, (name, moduleName) => {
if (DEBUG) {
let propertyPath = path ? [name, ...path].join('.') : name;
deprecate(`The \`${propertyPath}\` property path was used in the \`${moduleName}\` template without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${propertyPath}}}`, false, {
id: 'this-property-fallback'
});
}
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
});
, (op, [,, path]) => {
withPath(op, path);

@@ -113,13 +95,2 @@ });

Call(op, handle, null, null);
},
ifFallback: (name, moduleName) => {
deprecate(`The \`${name}\` property was used in the \`${moduleName}\` template without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, {
id: 'this-property-fallback'
});
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
}

@@ -146,13 +117,2 @@ });

Call(op, handle, null, null);
},
ifFallback: (name, moduleName) => {
deprecate(`The \`${name}\` property was used in the \`${moduleName}\` template without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, {
id: 'this-property-fallback'
});
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
}

@@ -242,2 +202,2 @@ });

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLFNBQVMsR0FBVCxRQUFvQixhQUFwQjtBQUNBLFNBQVMsTUFBVCxFQUFpQixTQUFqQixRQUFrQyx5QkFBbEM7QUFDQSxTQUFTLElBQVQsUUFBcUIsZ0NBQXJCO0FBQ0EsU0FBUyxlQUFULFFBQWdDLHNDQUFoQztBQUNBLFNBQVMsVUFBVCxRQUEyQixrQ0FBM0I7QUFDQSxTQUFTLElBQVQsRUFBZSxXQUFmLEVBQTRCLEtBQTVCLEVBQW1DLHNCQUFuQyxRQUFpRSw4QkFBakU7QUFDQSxTQUFTLFNBQVQsUUFBNEMsYUFBNUM7QUFDQSxTQUFTLEtBQVQsUUFBc0IsY0FBdEI7QUFFQSxPQUFPLE1BQU0sV0FBVyxHQUFHLElBQUksU0FBSixFQUFwQjtBQUVQLFdBQVcsQ0FBQyxHQUFaLENBQWU7QUFBQTtBQUFmLEVBQW9DLENBQUMsRUFBRCxFQUFLLEdBQUcsS0FBSCxDQUFMLEtBQWtCO0FBQ3BELE9BQUssSUFBSSxJQUFULElBQWlCLEtBQWpCLEVBQXdCO0FBQ3RCLElBQUEsSUFBSSxDQUFDLEVBQUQsRUFBSyxJQUFMLENBQUo7QUFDRDs7QUFFRCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBWSxLQUFLLENBQUMsTUFBbEIsQ0FBRjtBQUNELENBTkQ7QUFRQSxXQUFXLENBQUMsR0FBWixDQUFlO0FBQUE7QUFBZixFQUFrQyxDQUFDLEVBQUQsRUFBSyxHQUFHLFVBQUgsRUFBZSxVQUFmLEVBQTJCLEtBQTNCLENBQUwsS0FBMEM7QUFDMUUsTUFBSSxlQUFlLENBQUMsVUFBRCxDQUFuQixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBMEMsVUFBMUMsRUFBdUQsTUFBRCxJQUFtQjtBQUN6RSxNQUFBLElBQUksQ0FBQyxFQUFELEVBQUssTUFBTCxFQUFh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O0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDRCxDQUhEO0FBS0EsV0FBVyxDQUFDLEdBQVosQ0FBZTtBQUFBO0FBQWYsRUFBMkMsQ0FBQyxFQUFELEVBQUssR0FBRyxVQUFILENBQUwsS0FBdUI7QUFDaEUsRUFBQSxJQUFJLENBQUMsRUFBRCxFQUFLLFVBQUwsQ0FBSjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0QsQ0FIRDtBQUtBLFdBQVcsQ0FBQyxHQUFaLENBQWU7QUFBQTtBQUFmLEVBQWlDLENBQUMsRUFBRCxFQUFLLEdBQUcsVUFBSCxDQUFMLEtBQXVCO0FBQ3RELEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxVQUFVLENBQUMsRUFBRCxFQUFLLFVBQUwsRUFBaUIsSUFBakIsRUFBdUIsS0FBdkIsQ0FBVjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBVyxHQUFYLENBQUY7QUFDRCxDQU5EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRXhwcmVzc2lvblNleHBPcGNvZGUsXG4gIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUsXG4gIE1hY2hpbmVPcCxcbiAgT3AsXG4gIFNleHBPcGNvZGVzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICR2MCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IGFzc2VydCwgZGVwcmVjYXRlIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvZXhwcic7XG5pbXBvcnQgeyBpc0dldEZyZWVIZWxwZXIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgU2ltcGxlQXJncyB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcbmltcG9ydCB7IENhbGwsIENhbGxEeW5hbWljLCBDdXJyeSwgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZSB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvdm0nO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoRXhwcmVzc2lvbk9wIH0gZnJvbSAnLi9jb21waWxlcnMnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuXG5leHBvcnQgY29uc3QgRVhQUkVTU0lPTlMgPSBuZXcgQ29tcGlsZXJzPFB1c2hFeHByZXNzaW9uT3AsIEV4cHJlc3Npb25TZXhwT3Bjb2RlPigpO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ29uY2F0LCAob3AsIFssIHBhcnRzXSkgPT4ge1xuICBmb3IgKGxldCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgZXhwcihvcCwgcGFydCk7XG4gIH1cblxuICBvcChPcC5Db25jYXQsIHBhcnRzLmxlbmd0aCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkNhbGwsIChvcCwgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVIZWxwZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgQ2FsbChvcCwgaGFuZGxlLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgQ2FsbER5bmFtaWMob3AsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgfVxufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5DdXJyeSwgKG9wLCBbLCBleHByLCB0eXBlLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgQ3Vycnkob3AsIHR5cGUsIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3ltYm9sLCAob3AsIFssIHN5bSwgcGF0aF0pID0+IHtcbiAgb3AoT3AuR2V0VmFyaWFibGUsIHN5bSk7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVUZW1wbGF0ZUxvY2FsLCBzeW0sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgIG9wKE9wLkNvbnN0YW50UmVmZXJlbmNlLCBoYW5kbGUpO1xuICAgIHdpdGhQYXRoKG9wLCBwYXRoKTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUsIChvcCwgWywgc3ltLCBfcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlRnJlZSwgc3ltLCAoX2hhbmRsZTogdW5rbm93bikgPT4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBzdHJpY3QgbW9kZVxuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzRmFsbGJhY2ssIChvcCwgWywgZnJlZVZhciwgcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGZyZWVWYXIsIChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgIGlmIChERUJVRykge1xuICAgICAgbGV0IHByb3BlcnR5UGF0aCA9IHBhdGggPyBbbmFtZSwgLi4ucGF0aF0uam9pbignLicpIDogbmFtZTtcblxuICAgICAgZGVwcmVjYXRlKFxuICAgICAgICBgVGhlIFxcYCR7cHJvcGVydHlQYXRofVxcYCBwcm9wZXJ0eSBwYXRoIHdhcyB1c2VkIGluIHRoZSBcXGAke21vZHVsZU5hbWV9XFxgIHRlbXBsYXRlIHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke3Byb3BlcnR5UGF0aH19fWAsXG4gICAgICAgIGZhbHNlLFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICB9KTtcbiAgd2l0aFBhdGgob3AsIHBhdGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjaywgKCkgPT4ge1xuICAvLyBUT0RPOiBUaGUgbG9naWMgZm9yIHRoaXMgb3Bjb2RlIGN1cnJlbnRseSBleGlzdHMgaW4gU1RBVEVNRU5UUy5BcHBlbmQsIHNpbmNlXG4gIC8vIHdlIHdhbnQgZGlmZmVyZW50IHdyYXBwaW5nIGxvZ2ljIGRlcGVuZGluZyBvbiBpZiB3ZSBhcmUgaW52b2tpbmcgYSBjb21wb25lbnQsXG4gIC8vIGhlbHBlciwgb3Ige3t0aGlzfX0gZmFsbGJhY2suIEV2ZW50dWFsbHkgd2UgZml4IHRoZSBvcGNvZGVzIHNvIHRoYXQgd2UgY2FuXG4gIC8vIHRyYXZlcnNlIHRoZSBzdWJleHByZXNzaW9uIHRyZWUgbGlrZSBub3JtYWwgaW4gdGhpcyBsb2NhdGlvbi5cbiAgdGhyb3cgbmV3IEVycm9yKCd1bmltcGxlbWVudGVkIG9wY29kZScpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8ZGl2IGlkPXt7YmF6fX0+XG5cbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGV4cHJbMV0sIChfbmFtZTogc3RyaW5nKSA9PiB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxIZWxwZXIsIGV4cHIsIHtcbiAgICAgIGlmSGVscGVyOiAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2s6IChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgYFRoZSBcXGAke25hbWV9XFxgIHByb3BlcnR5IHdhcyB1c2VkIGluIHRoZSBcXGAke21vZHVsZU5hbWV9XFxgIHRlbXBsYXRlIHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke25hbWV9fX1gLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndGhpcy1wcm9wZXJ0eS1mYWxsYmFjaycsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIG9wKE9wLkdldFZhcmlhYmxlLCAwKTtcbiAgICAgICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8Rm9vIEBiYXI9e3tiYXp9fT5cblxuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZXhwclsxXSwgKF9uYW1lOiBzdHJpbmcpID0+IHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbEhlbHBlciwgZXhwciwge1xuICAgICAgaWZIZWxwZXI6IChoYW5kbGU6IG51bWJlciwgbmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgYXNzZXJ0KGV4cHJbMl0gJiYgZXhwclsyXS5sZW5ndGggPT09IDEsICdbQlVHXSBNaXNzaW5nIGFyZ3VtZW50IG5hbWUnKTtcblxuICAgICAgICBsZXQgYXJnID0gZXhwclsyXVswXTtcblxuICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgYFRoZSBcXGAke25hbWV9XFxgIGhlbHBlciB3YXMgdXNlZCBpbiB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCB0ZW1wbGF0ZSBhcyBcXGAke2FyZ309e3ske25hbWV9fX1cXGAuIGAgK1xuICAgICAgICAgICAgYFRoaXMgaXMgYW1iaWdpb3VzIGJldHdlZW4gd2FudGluZyB0aGUgXFxgJHthcmd9XFxgIGFyZ3VtZW50IHRvIGJlIHRoZSBcXGAke25hbWV9XFxgIGhlbHBlciBpdHNlbGYsIGAgK1xuICAgICAgICAgICAgYG9yIHRoZSByZXN1bHQgb2YgaW52b2tpbmcgdGhlIFxcYCR7bmFtZX1cXGAgaGVscGVyIChjdXJyZW50IGJlaGF2aW9yKS4gYCArXG4gICAgICAgICAgICBgVGhpcyBpbXBsaWNpdCBpbnZvY2F0aW9uIGJlaGF2aW9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQuXFxuXFxuYCArXG4gICAgICAgICAgICBgSW5zdGVhZCwgcGxlYXNlIGV4cGxpY2l0bHkgaW52b2tlIHRoZSBoZWxwZXIgd2l0aCBwYXJlbnRoZXNpcywgaS5lLiBcXGAke2FyZ309e3soJHtuYW1lfSl9fVxcYC5cXG5cXG5gICtcbiAgICAgICAgICAgIGBOb3RlOiB0aGUgcGFyZW50aGVzaXMgYXJlIG9ubHkgcmVxdWlyZWQgaW4gdGhpcyBleGFjdCBzY2VuYXJpbyB3aGVyZSBhbiBhbWJpZ3VpdHkgaXMgcHJlc2VudCDigJMgd2hlcmUgYCArXG4gICAgICAgICAgICBgXFxgJHtuYW1lfVxcYCByZWZlcmVzIHRvIGEgZ2xvYmFsIGhlbHBlciAoYXMgb3Bwb3NlZCB0byBhIGxvY2FsIHZhcmlhYmxlKSwgQU5EIGAgK1xuICAgICAgICAgICAgYHRoZSBcXGAke25hbWV9XFxgIGhlbHBlciBpbnZvY2F0aW9uIGRvZXMgbm90IHRha2UgYW55IGFyZ3VtZW50cywgQU5EIGAgK1xuICAgICAgICAgICAgYHRoaXMgb2NjdXJzIGluIGEgbmFtZWQgYXJndW1lbnQgcG9zaXRpb24gb2YgYSBjb21wb25lbnQgaW52b2NhdGlvbi5cXG5cXG5gICtcbiAgICAgICAgICAgIGBXZSBleHBlY3QgdGhpcyBjb21iaW5hdGlvbiB0byBiZSBxdWl0ZSByYXJlLCBhcyBtb3N0IGhlbHBlcnMgcmVxdWlyZSBhdCBsZWFzdCBvbmUgYXJndW1lbnQuIGAgK1xuICAgICAgICAgICAgYFRoZXJlIGlzIG5vIG5lZWQgdG8gcmVmYWN0b3IgaGVscGVyIGludm9jYXRpb25zIGluIGNhc2VzIHdoZXJlIHRoaXMgZGVwcmVjYXRpb24gd2FzIG5vdCB0cmlnZ2VyZWQuYCxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2FyZ3VtZW50LWxlc3MtaGVscGVyLXBhcmVuLWxlc3MtaW52b2NhdGlvbicsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIENhbGwob3AsIGhhbmRsZSwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkZhbGxiYWNrOiAobmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgZGVwcmVjYXRlKFxuICAgICAgICAgIGBUaGUgXFxgJHtuYW1lfVxcYCBwcm9wZXJ0eSB3YXMgdXNlZCBpbiB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCB0ZW1wbGF0ZSB3aXRob3V0IHVzaW5nIFxcYHRoaXNcXGAuIFRoaXMgZmFsbGJhY2sgYmVoYXZpb3IgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYWxsIHByb3BlcnRpZXMgbXVzdCBiZSBsb29rZWQgdXAgb24gXFxgdGhpc1xcYCB3aGVuIHVzZWQgaW4gdGhlIHRlbXBsYXRlOiB7e3RoaXMuJHtuYW1lfX19YCxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ3RoaXMtcHJvcGVydHktZmFsbGJhY2snLFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmZ1bmN0aW9uIHdpdGhQYXRoKG9wOiBQdXNoRXhwcmVzc2lvbk9wLCBwYXRoPzogc3RyaW5nW10pIHtcbiAgaWYgKHBhdGggPT09IHVuZGVmaW5lZCB8fCBwYXRoLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aC5sZW5ndGg7IGkrKykge1xuICAgIG9wKE9wLkdldFByb3BlcnR5LCBwYXRoW2ldKTtcbiAgfVxufVxuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuVW5kZWZpbmVkLCAob3ApID0+IFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCkpO1xuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkhhc0Jsb2NrLCAob3AsIFssIGJsb2NrXSkgPT4ge1xuICBleHByKG9wLCBibG9jayk7XG4gIG9wKE9wLkhhc0Jsb2NrKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuSGFzQmxvY2tQYXJhbXMsIChvcCwgWywgYmxvY2tdKSA9PiB7XG4gIGV4cHIob3AsIGJsb2NrKTtcbiAgb3AoT3AuU3ByZWFkQmxvY2spO1xuICBvcChPcC5Db21waWxlQmxvY2spO1xuICBvcChPcC5IYXNCbG9ja1BhcmFtcyk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLklmSW5saW5lLCAob3AsIFssIGNvbmRpdGlvbiwgdHJ1dGh5LCBmYWxzeV0pID0+IHtcbiAgLy8gUHVzaCBpbiByZXZlcnNlIG9yZGVyXG4gIGV4cHIob3AsIGZhbHN5KTtcbiAgZXhwcihvcCwgdHJ1dGh5KTtcbiAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgb3AoT3AuSWZJbmxpbmUpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Ob3QsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuTm90KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RHluYW1pY1ZhciwgKG9wLCBbLCBleHByZXNzaW9uXSkgPT4ge1xuICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgb3AoT3AuR2V0RHluYW1pY1Zhcik7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkxvZywgKG9wLCBbLCBwb3NpdGlvbmFsXSkgPT4ge1xuICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbnVsbCwgZmFsc2UpO1xuICBvcChPcC5Mb2cpO1xuICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICBvcChPcC5GZXRjaCwgJHYwKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLFNBQVMsR0FBVCxRQUFvQixhQUFwQjtBQUNBLFNBQVMsTUFBVCxFQUFpQixTQUFqQixRQUFrQyx5QkFBbEM7QUFDQSxTQUFTLElBQVQsUUFBcUIsZ0NBQXJCO0FBQ0EsU0FBUyxlQUFULFFBQWdDLHNDQUFoQztBQUNBLFNBQVMsVUFBVCxRQUEyQixrQ0FBM0I7QUFDQSxTQUFTLElBQVQsRUFBZSxXQUFmLEVBQTRCLEtBQTVCLEVBQW1DLHNCQUFuQyxRQUFpRSw4QkFBakU7QUFDQSxTQUFTLFNBQVQsUUFBNEMsYUFBNUM7QUFFQSxPQUFPLE1BQU0sV0FBVyxHQUFHLElBQUksU0FBSixFQUFwQjtBQUVQLFdBQVcsQ0FBQyxHQUFaLENBQWU7QUFBQTtBQUFmLEVBQW9DLENBQUMsRUFBRCxFQUFLLEdBQUcsS0FBSCxDQUFMLEtBQWtCO0FBQ3BELE9BQUssSUFBSSxJQUFULElBQWlCLEtBQWpCLEVBQXdCO0FBQ3RCLElBQUEsSUFBSSxDQUFDLEVBQUQsRUFBSyxJQUFMLENBQUo7QUFDRDs7QUFFRCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBWSxLQUFLLENBQUMsTUFBbEIsQ0FBRjtBQUNELENBTkQ7QUFRQSxXQUFXLENBQUMsR0FBWixDQUFlO0FBQUE7QUFBZixFQUFrQyxDQUFDLEVBQUQsRUFBSyxHQUFHLFVBQUgsRUFBZSxVQUFmLEVBQTJCLEtBQTNCLENBQUwsS0FBMEM7QUFDMUUsTUFBSSxlQUFlLENBQUMsVUFBRCxDQUFuQixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBMEMsVUFBMUMsRUFBdUQsTUFBRCxJQUFtQjtBQUN6RSxNQUFBLElBQUksQ0FBQyxFQUFELEVBQUssTUFBTCxFQUFhLFVBQWIsRUFBeUIsS0FBekIsQ0FBSjtBQUNE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QyxFQUFELEVBQUssR0FBRyxVQUFILENBQUwsS0FBdUI7QUFDaEUsRUFBQSxJQUFJLENBQUMsRUFBRCxFQUFLLFVBQUwsQ0FBSjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0QsQ0FIRDtBQUtBLFdBQVcsQ0FBQyxHQUFaLENBQWU7QUFBQTtBQUFmLEVBQWlDLENBQUMsRUFBRCxFQUFLLEdBQUcsVUFBSCxDQUFMLEtBQXVCO0FBQ3RELEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxVQUFVLENBQUMsRUFBRCxFQUFLLFVBQUwsRUFBaUIsSUFBakIsRUFBdUIsS0FBdkIsQ0FBVjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBVyxHQUFYLENBQUY7QUFDRCxDQU5EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRXhwcmVzc2lvblNleHBPcGNvZGUsXG4gIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUsXG4gIE1hY2hpbmVPcCxcbiAgT3AsXG4gIFNleHBPcGNvZGVzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICR2MCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IGFzc2VydCwgZGVwcmVjYXRlIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvZXhwcic7XG5pbXBvcnQgeyBpc0dldEZyZWVIZWxwZXIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgU2ltcGxlQXJncyB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcbmltcG9ydCB7IENhbGwsIENhbGxEeW5hbWljLCBDdXJyeSwgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZSB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvdm0nO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoRXhwcmVzc2lvbk9wIH0gZnJvbSAnLi9jb21waWxlcnMnO1xuXG5leHBvcnQgY29uc3QgRVhQUkVTU0lPTlMgPSBuZXcgQ29tcGlsZXJzPFB1c2hFeHByZXNzaW9uT3AsIEV4cHJlc3Npb25TZXhwT3Bjb2RlPigpO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ29uY2F0LCAob3AsIFssIHBhcnRzXSkgPT4ge1xuICBmb3IgKGxldCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgZXhwcihvcCwgcGFydCk7XG4gIH1cblxuICBvcChPcC5Db25jYXQsIHBhcnRzLmxlbmd0aCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkNhbGwsIChvcCwgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVIZWxwZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgQ2FsbChvcCwgaGFuZGxlLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgQ2FsbER5bmFtaWMob3AsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgfVxufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5DdXJyeSwgKG9wLCBbLCBleHByLCB0eXBlLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgQ3Vycnkob3AsIHR5cGUsIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3ltYm9sLCAob3AsIFssIHN5bSwgcGF0aF0pID0+IHtcbiAgb3AoT3AuR2V0VmFyaWFibGUsIHN5bSk7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVUZW1wbGF0ZUxvY2FsLCBzeW0sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgIG9wKE9wLkNvbnN0YW50UmVmZXJlbmNlLCBoYW5kbGUpO1xuICAgIHdpdGhQYXRoKG9wLCBwYXRoKTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUsIChvcCwgWywgc3ltLCBfcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlRnJlZSwgc3ltLCAoX2hhbmRsZTogdW5rbm93bikgPT4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBzdHJpY3QgbW9kZVxuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzRmFsbGJhY2ssIChvcCwgWywgLCBwYXRoXSkgPT4ge1xuICB3aXRoUGF0aChvcCwgcGF0aCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrLCAoKSA9PiB7XG4gIC8vIFRPRE86IFRoZSBsb2dpYyBmb3IgdGhpcyBvcGNvZGUgY3VycmVudGx5IGV4aXN0cyBpbiBTVEFURU1FTlRTLkFwcGVuZCwgc2luY2VcbiAgLy8gd2Ugd2FudCBkaWZmZXJlbnQgd3JhcHBpbmcgbG9naWMgZGVwZW5kaW5nIG9uIGlmIHdlIGFyZSBpbnZva2luZyBhIGNvbXBvbmVudCxcbiAgLy8gaGVscGVyLCBvciB7e3RoaXN9fSBmYWxsYmFjay4gRXZlbnR1YWxseSB3ZSBmaXggdGhlIG9wY29kZXMgc28gdGhhdCB3ZSBjYW5cbiAgLy8gdHJhdmVyc2UgdGhlIHN1YmV4cHJlc3Npb24gdHJlZSBsaWtlIG5vcm1hbCBpbiB0aGlzIGxvY2F0aW9uLlxuICB0aHJvdyBuZXcgRXJyb3IoJ3VuaW1wbGVtZW50ZWQgb3Bjb2RlJyk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFjaywgKG9wLCBleHByKSA9PiB7XG4gIC8vIDxkaXYgaWQ9e3tiYXp9fT5cblxuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZXhwclsxXSwgKF9uYW1lOiBzdHJpbmcpID0+IHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbEhlbHBlciwgZXhwciwge1xuICAgICAgaWZIZWxwZXI6IChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIG51bGwsIG51bGwpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8Rm9vIEBiYXI9e3tiYXp9fT5cblxuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZXhwclsxXSwgKF9uYW1lOiBzdHJpbmcpID0+IHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbEhlbHBlciwgZXhwciwge1xuICAgICAgaWZIZWxwZXI6IChoYW5kbGU6IG51bWJlciwgbmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgYXNzZXJ0KGV4cHJbMl0gJiYgZXhwclsyXS5sZW5ndGggPT09IDEsICdbQlVHXSBNaXNzaW5nIGFyZ3VtZW50IG5hbWUnKTtcblxuICAgICAgICBsZXQgYXJnID0gZXhwclsyXVswXTtcblxuICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgYFRoZSBcXGAke25hbWV9XFxgIGhlbHBlciB3YXMgdXNlZCBpbiB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCB0ZW1wbGF0ZSBhcyBcXGAke2FyZ309e3ske25hbWV9fX1cXGAuIGAgK1xuICAgICAgICAgICAgYFRoaXMgaXMgYW1iaWdpb3VzIGJldHdlZW4gd2FudGluZyB0aGUgXFxgJHthcmd9XFxgIGFyZ3VtZW50IHRvIGJlIHRoZSBcXGAke25hbWV9XFxgIGhlbHBlciBpdHNlbGYsIGAgK1xuICAgICAgICAgICAgYG9yIHRoZSByZXN1bHQgb2YgaW52b2tpbmcgdGhlIFxcYCR7bmFtZX1cXGAgaGVscGVyIChjdXJyZW50IGJlaGF2aW9yKS4gYCArXG4gICAgICAgICAgICBgVGhpcyBpbXBsaWNpdCBpbnZvY2F0aW9uIGJlaGF2aW9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQuXFxuXFxuYCArXG4gICAgICAgICAgICBgSW5zdGVhZCwgcGxlYXNlIGV4cGxpY2l0bHkgaW52b2tlIHRoZSBoZWxwZXIgd2l0aCBwYXJlbnRoZXNpcywgaS5lLiBcXGAke2FyZ309e3soJHtuYW1lfSl9fVxcYC5cXG5cXG5gICtcbiAgICAgICAgICAgIGBOb3RlOiB0aGUgcGFyZW50aGVzaXMgYXJlIG9ubHkgcmVxdWlyZWQgaW4gdGhpcyBleGFjdCBzY2VuYXJpbyB3aGVyZSBhbiBhbWJpZ3VpdHkgaXMgcHJlc2VudCDigJMgd2hlcmUgYCArXG4gICAgICAgICAgICBgXFxgJHtuYW1lfVxcYCByZWZlcmVzIHRvIGEgZ2xvYmFsIGhlbHBlciAoYXMgb3Bwb3NlZCB0byBhIGxvY2FsIHZhcmlhYmxlKSwgQU5EIGAgK1xuICAgICAgICAgICAgYHRoZSBcXGAke25hbWV9XFxgIGhlbHBlciBpbnZvY2F0aW9uIGRvZXMgbm90IHRha2UgYW55IGFyZ3VtZW50cywgQU5EIGAgK1xuICAgICAgICAgICAgYHRoaXMgb2NjdXJzIGluIGEgbmFtZWQgYXJndW1lbnQgcG9zaXRpb24gb2YgYSBjb21wb25lbnQgaW52b2NhdGlvbi5cXG5cXG5gICtcbiAgICAgICAgICAgIGBXZSBleHBlY3QgdGhpcyBjb21iaW5hdGlvbiB0byBiZSBxdWl0ZSByYXJlLCBhcyBtb3N0IGhlbHBlcnMgcmVxdWlyZSBhdCBsZWFzdCBvbmUgYXJndW1lbnQuIGAgK1xuICAgICAgICAgICAgYFRoZXJlIGlzIG5vIG5lZWQgdG8gcmVmYWN0b3IgaGVscGVyIGludm9jYXRpb25zIGluIGNhc2VzIHdoZXJlIHRoaXMgZGVwcmVjYXRpb24gd2FzIG5vdCB0cmlnZ2VyZWQuYCxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2FyZ3VtZW50LWxlc3MtaGVscGVyLXBhcmVuLWxlc3MtaW52b2NhdGlvbicsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIENhbGwob3AsIGhhbmRsZSwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5mdW5jdGlvbiB3aXRoUGF0aChvcDogUHVzaEV4cHJlc3Npb25PcCwgcGF0aD86IHN0cmluZ1tdKSB7XG4gIGlmIChwYXRoID09PSB1bmRlZmluZWQgfHwgcGF0aC5sZW5ndGggPT09IDApIHJldHVybjtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICBvcChPcC5HZXRQcm9wZXJ0eSwgcGF0aFtpXSk7XG4gIH1cbn1cblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLlVuZGVmaW5lZCwgKG9wKSA9PiBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wLCB1bmRlZmluZWQpKTtcbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5IYXNCbG9jaywgKG9wLCBbLCBibG9ja10pID0+IHtcbiAgZXhwcihvcCwgYmxvY2spO1xuICBvcChPcC5IYXNCbG9jayk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkhhc0Jsb2NrUGFyYW1zLCAob3AsIFssIGJsb2NrXSkgPT4ge1xuICBleHByKG9wLCBibG9jayk7XG4gIG9wKE9wLlNwcmVhZEJsb2NrKTtcbiAgb3AoT3AuQ29tcGlsZUJsb2NrKTtcbiAgb3AoT3AuSGFzQmxvY2tQYXJhbXMpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5JZklubGluZSwgKG9wLCBbLCBjb25kaXRpb24sIHRydXRoeSwgZmFsc3ldKSA9PiB7XG4gIC8vIFB1c2ggaW4gcmV2ZXJzZSBvcmRlclxuICBleHByKG9wLCBmYWxzeSk7XG4gIGV4cHIob3AsIHRydXRoeSk7XG4gIGV4cHIob3AsIGNvbmRpdGlvbik7XG4gIG9wKE9wLklmSW5saW5lKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuTm90LCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLk5vdCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldER5bmFtaWNWYXIsIChvcCwgWywgZXhwcmVzc2lvbl0pID0+IHtcbiAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gIG9wKE9wLkdldER5bmFtaWNWYXIpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Mb2csIChvcCwgWywgcG9zaXRpb25hbF0pID0+IHtcbiAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG51bGwsIGZhbHNlKTtcbiAgb3AoT3AuTG9nKTtcbiAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgb3AoT3AuRmV0Y2gsICR2MCk7XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -1,2 +0,1 @@

import { deprecate } from '@glimmer/global-context';
import { $fp, $sp } from '@glimmer/vm';

@@ -150,23 +149,2 @@ import { InvokeStaticBlock, InvokeStaticBlockWithStack, YieldBlock } from '../opcode-builder/helpers/blocks';

});
STATEMENTS.add(19
/* Partial */
, (op, [, name, evalInfo]) => {
ReplayableIf(op, () => {
expr(op, name);
op(33
/* Dup */
, $sp, 0);
return 2;
}, () => {
op(101
/* InvokePartial */
, evalSymbolsOperand(), evalInfo);
op(40
/* PopScope */
);
op(1
/* PopFrame */
);
});
});
STATEMENTS.add(18

@@ -225,27 +203,2 @@ /* Yield */

);
},
ifFallback(_name) {
op(0
/* PushFrame */
);
op(1010
/* ResolveLocal */
, value[1], (name, moduleName) => {
deprecate(`The \`${name}\` property was used in the \`${moduleName}\` template without using \`this\`. This fallback behavior has been deprecated, all properties must be looked up on \`this\` when used in the template: {{this.${name}}}`, false, {
id: 'this-property-fallback'
});
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
});
op(3
/* InvokeStatic */
, stdlibOperand('cautious-append'));
op(1
/* PopFrame */
);
}

@@ -521,2 +474,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxTQUFULFFBQTBCLHlCQUExQjtBQWNBLFNBQVMsR0FBVCxFQUFjLEdBQWQsUUFBeUIsYUFBekI7QUFDQSxTQUNFLGlCQURGLEVBRUUsMEJBRkYsRUFHRSxVQUhGLFFBSU8sa0NBSlA7QUFLQSxTQUNFLGVBREYsRUFFRSxzQkFGRixFQUdFLHdCQUhGLFFBSU8sc0NBSlA7QUFLQSxTQUFTLFdBQVQsRUFBc0IsVUFBdEIsRUFBa0MsWUFBbEMsUUFBc0QsdUNBQXREO0FBQ0EsU0FBUyxJQUFULFFBQXFCLGdDQUFyQjtBQUNBLFNBQVMsaUJBQVQsRUFBNEIsVUFBNUIsUUFBOEMsa0NBQTlDO0FBQ0EsU0FDRSxJQURGLEVBRUUsV0FGRixFQUdFLFlBSEYsRUFJRSxzQkFKRixRQUtPLDhCQUxQO0FBTUEsU0FBUyxrQkFBVCxFQUE2QixZQUE3QixFQUEyQyxhQUEzQyxRQUFnRSw0QkFBaEU7QUFDQSxTQUFTLFNBQVQsUUFBMkMsYUFBM0M7QUFDQSxTQUNFLGtCQURGLEVBRUUsMEJBRkYsRUFHRSxpQkFIRixFQUlFLGtDQUpGLFFBS08sc0NBTFA7QUFNQSxTQUFTLFdBQVQsUUFBNEIsVUFBNUI7QUFFQSxPQUFPLE1BQU0sVUFBVSxHQUFHLElBQUksU0FBSixFQUFuQjtBQUVQLE1BQU0sa0JBQWtCLEdBRXBCLENBQUMsT0FBRCxFQUFVLElBQVYsRUFBZ0IsT0FBaEIsRUFBeUIsTUFBekIsRUFBaUMsTUFBakMsRUFBeUMsT0FBekMsRUFBa0QsTUFBbEQsQ0FGSjtBQUdBLE1BQU0saUJBQWlCLEdBRW5CLENBQUMsS0FBRCxFQUFRLE1BQVIsRUFBZ0IsR0FBaEIsRUFBcUIsR0FBckIsQ0FGSjtBQUlBLE9BQU0sU0FBVSxjQUFWLENBQXlCLE9BQXpCLEVBQTJEO0FBQy9ELFNBQU8s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LFNBQUQsSUFBb0M7QUFDdkYsTUFBQSxlQUFlLENBQUMsRUFBRCxFQUFLLFNBQUwsRUFBZ0IsSUFBaEIsRUFBc0IsVUFBdEIsRUFBa0MsVUFBVSxDQUFDLEtBQUQsQ0FBNUMsRUFBcUQsTUFBckQsQ0FBZjtBQUNELEtBRkMsQ0FBRjtBQUdELEdBSkQsTUFJTztBQUNMLElBQUEsc0JBQXNCLENBQUMsRUFBRCxFQUFLLElBQUwsRUFBVyxJQUFYLEVBQWlCLFVBQWpCLEVBQTZCLEtBQTdCLEVBQW9DLE1BQXBDLEVBQTRDLEtBQTVDLEVBQW1ELEtBQW5ELENBQXRCO0FBQ0Q7QUFDRixDQVJEOztBQVVBLFNBQVMsVUFBVCxDQUFvQixJQUFwQixFQUFxRDtBQUNuRCxNQUFJLElBQUksS0FBSyxJQUFiLEVBQW1CLE9BQU8sSUFBUDtBQUNuQixNQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBRCxDQUFKLENBQVEsR0FBUixDQUFhLEdBQUQsSUFBUyxJQUFJLEdBQUcsRUFBNUIsQ0FBWjtBQUNBLFNBQU8sQ0FBQyxLQUFELEVBQWlDLElBQUksQ0FBQyxDQUFELENBQXJDLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlcHJlY2F0ZSB9IGZyb20gJ0BnbGltbWVyL2dsb2JhbC1jb250ZXh0JztcbmltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29tcG9uZW50LFxuICBDb250ZW50VHlwZSxcbiAgSGlnaExldmVsQnVpbGRlck9wY29kZSxcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFN0YXRlbWVudFNleHBPcGNvZGUsXG4gIFdlbGxLbm93bkF0dHJOYW1lLFxuICBXZWxsS25vd25UYWdOYW1lLFxuICBXaXJlRm9ybWF0LFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICRmcCwgJHNwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHtcbiAgSW52b2tlU3RhdGljQmxvY2ssXG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrLFxuICBZaWVsZEJsb2NrLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2Jsb2Nrcyc7XG5pbXBvcnQge1xuICBJbnZva2VDb21wb25lbnQsXG4gIEludm9rZUR5bmFtaWNDb21wb25lbnQsXG4gIEludm9rZU5vblN0YXRpY0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9jb21wb25lbnRzJztcbmltcG9ydCB7IFN3aXRjaENhc2VzLCBSZXBsYXlhYmxlLCBSZXBsYXlhYmxlSWYgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2NvbmRpdGlvbmFsJztcbmltcG9ydCB7IGV4cHIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2V4cHInO1xuaW1wb3J0IHsgQ29tcGlsZVBvc2l0aW9uYWwsIFNpbXBsZUFyZ3MgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3NoYXJlZCc7XG5pbXBvcnQge1xuICBDYWxsLFxuICBDYWxsRHluYW1pYyxcbiAgRHluYW1pY1Njb3BlLFxuICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3ZtJztcbmltcG9ydCB7IGV2YWxTeW1ib2xzT3BlcmFuZCwgbGFiZWxPcGVyYW5kLCBzdGRsaWJPcGVyYW5kIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvb3BlcmFuZHMnO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoU3RhdGVtZW50T3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5pbXBvcnQge1xuICBpc0dldEZyZWVDb21wb25lbnQsXG4gIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyLFxuICBpc0dldEZyZWVNb2RpZmllcixcbiAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcixcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uJztcbmltcG9ydCB7IG5hbWVkQmxvY2tzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgU1RBVEVNRU5UUyA9IG5ldyBDb21waWxlcnM8UHVzaFN0YXRlbWVudE9wLCBTdGF0ZW1lbnRTZXhwT3Bjb2RlPigpO1xuXG5jb25zdCBJTkZMQVRFX0FUVFJfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duQXR0ck5hbWVdOiBzdHJpbmc7XG59ID0gWydjbGFzcycsICdpZCcsICd2YWx1ZScsICduYW1lJywgJ3R5cGUnLCAnc3R5bGUnLCAnaHJlZiddO1xuY29uc3QgSU5GTEFURV9UQUdfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duVGFnTmFtZV06IHN0cmluZztcbn0gPSBbJ2RpdicsICdzcGFuJywgJ3AnLCAnYSddO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5mbGF0ZVRhZ05hbWUodGFnTmFtZTogc3RyaW5nIHwgV2VsbEtub3duVGFnTmFtZSk6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgdGFnTmFtZSA9PT0gJ3N0cmluZycgPyB0YWdOYW1lIDogSU5GTEFURV9UQUdfVEFCTEVbdGFnTmFtZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlQXR0ck5hbWUoYXR0ck5hbWU6IHN0cmluZyB8IFdlbGxLbm93bkF0dHJOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiBhdHRyTmFtZSA9PT0gJ3N0cmluZycgPyBhdHRyTmFtZSA6IElORkxBVEVfQVRUUl9UQUJMRVthdHRyTmFtZV07XG59XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbW1lbnQsIChvcCwgc2V4cCkgPT4gb3AoT3AuQ29tbWVudCwgc2V4cFsxXSkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ2xvc2VFbGVtZW50LCAob3ApID0+IG9wKE9wLkNsb3NlRWxlbWVudCkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRmx1c2hFbGVtZW50LCAob3ApID0+IG9wKE9wLkZsdXNoRWxlbWVudCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Nb2RpZmllciwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZU1vZGlmaWVyKGV4cHJlc3Npb24pKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTW9kaWZpZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICAgICAgb3AoT3AuTW9kaWZpZXIsIGhhbmRsZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgIG9wKE9wLkR5bmFtaWNNb2RpZmllcik7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlN0YXRpY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgb3AoT3AuU3RhdGljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB2YWx1ZSBhcyBzdHJpbmcsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5TdGF0aWNDb21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIG9wKE9wLlN0YXRpY0NvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdmFsdWUgYXMgc3RyaW5nLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCBmYWxzZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB0cnVlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkNvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgZmFsc2UsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0NvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Db21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHRydWUsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLk9wZW5FbGVtZW50LCBpbmZsYXRlVGFnTmFtZSh0YWcpKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudFdpdGhTcGxhdCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLlB1dENvbXBvbmVudE9wZXJhdGlvbnMpO1xuICBvcChPcC5PcGVuRWxlbWVudCwgaW5mbGF0ZVRhZ05hbWUodGFnKSk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIGVsZW1lbnRCbG9jaywgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBlbGVtZW50QmxvY2ssIG51bGwsIG5hbWVkLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIC8vIG90aGVyd2lzZSwgdGhlIGNvbXBvbmVudCBuYW1lIHdhcyBhbiBleHByZXNzaW9uLCBzbyByZXNvbHZlIHRoZSBleHByZXNzaW9uXG4gICAgLy8gYW5kIGludm9rZSBpdCBhcyBhIGR5bmFtaWMgY29tcG9uZW50XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgZWxlbWVudEJsb2NrLCBudWxsLCBuYW1lZCwgYmxvY2tzLCB0cnVlLCB0cnVlKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlBhcnRpYWwsIChvcCwgWywgbmFtZSwgZXZhbEluZm9dKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBuYW1lKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkludm9rZVBhcnRpYWwsIGV2YWxTeW1ib2xzT3BlcmFuZCgpLCBldmFsSW5mbyk7XG4gICAgICBvcChPcC5Qb3BTY29wZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5ZaWVsZCwgKG9wLCBbLCB0bywgcGFyYW1zXSkgPT4gWWllbGRCbG9jayhvcCwgdG8sIHBhcmFtcykpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BdHRyU3BsYXQsIChvcCwgWywgdG9dKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgbnVsbCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5EZWJ1Z2dlciwgKG9wLCBbLCBldmFsSW5mb10pID0+XG4gIG9wKE9wLkRlYnVnZ2VyLCBldmFsU3ltYm9sc09wZXJhbmQoKSwgZXZhbEluZm8pXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BcHBlbmQsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIC8vIFNwZWNpYWwgY2FzZSBmb3Igc3RhdGljIHZhbHVlc1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSBpZiAoaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcih2YWx1ZSkpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLCB2YWx1ZSwge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkge1xuICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcblxuICAgICAgaWZWYWx1ZShoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2soX25hbWU6IHN0cmluZykge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIHZhbHVlWzFdLCAobmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgICBgVGhlIFxcYCR7bmFtZX1cXGAgcHJvcGVydHkgd2FzIHVzZWQgaW4gdGhlIFxcYCR7bW9kdWxlTmFtZX1cXGAgdGVtcGxhdGUgd2l0aG91dCB1c2luZyBcXGB0aGlzXFxgLiBUaGlzIGZhbGxiYWNrIGJlaGF2aW9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGFsbCBwcm9wZXJ0aWVzIG11c3QgYmUgbG9va2VkIHVwIG9uIFxcYHRoaXNcXGAgd2hlbiB1c2VkIGluIHRoZSB0ZW1wbGF0ZToge3t0aGlzLiR7bmFtZX19fWAsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgICAgICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAodmFsdWVbMF0gPT09IFNleHBPcGNvZGVzLkNhbGwpIHtcbiAgICBsZXQgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdID0gdmFsdWU7XG5cbiAgICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyLCBleHByZXNzaW9uLCB7XG4gICAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpIHtcbiAgICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIG51bGwpO1xuICAgICAgICB9LFxuICAgICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICAgIENhbGwob3AsIGhhbmRsZSwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFN3aXRjaENhc2VzKFxuICAgICAgICBvcCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgICAgICAgIG9wKE9wLkR5bmFtaWNDb250ZW50VHlwZSk7XG4gICAgICAgIH0sXG4gICAgICAgICh3aGVuKSA9PiB7XG4gICAgICAgICAgd2hlbihDb250ZW50VHlwZS5Db21wb25lbnQsICgpID0+IHtcbiAgICAgICAgICAgIG9wKE9wLlJlc29sdmVDdXJyaWVkQ29tcG9uZW50KTtcbiAgICAgICAgICAgIG9wKE9wLlB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UpO1xuICAgICAgICAgICAgSW52b2tlTm9uU3RhdGljQ29tcG9uZW50KG9wLCB7XG4gICAgICAgICAgICAgIGNhcGFiaWxpdGllczogdHJ1ZSxcbiAgICAgICAgICAgICAgZWxlbWVudEJsb2NrOiBudWxsLFxuICAgICAgICAgICAgICBwb3NpdGlvbmFsLFxuICAgICAgICAgICAgICBuYW1lZCxcbiAgICAgICAgICAgICAgYXROYW1lczogZmFsc2UsXG4gICAgICAgICAgICAgIGJsb2NrczogbmFtZWRCbG9ja3MobnVsbCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHdoZW4oQ29udGVudFR5cGUuSGVscGVyLCAoKSA9PiB7XG4gICAgICAgICAgICBDYWxsRHluYW1pYyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsICgpID0+IHtcbiAgICAgICAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1hcHBlbmQnKSk7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nQXBwZW5kLCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSB7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgZXhwcihvcCwgdmFsdWUpO1xuICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ3RydXN0aW5nLWFwcGVuZCcpKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQmxvY2ssIChvcCwgWywgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBudWxsLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzLCBmYWxzZSwgZmFsc2UpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW5FbGVtZW50LCAob3AsIFssIGJsb2NrLCBndWlkLCBkZXN0aW5hdGlvbiwgaW5zZXJ0QmVmb3JlXSkgPT4ge1xuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBndWlkKTtcblxuICAgICAgaWYgKGluc2VydEJlZm9yZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHByKG9wLCBpbnNlcnRCZWZvcmUpO1xuICAgICAgfVxuXG4gICAgICBleHByKG9wLCBkZXN0aW5hdGlvbik7XG4gICAgICBvcChPcC5EdXAsICRzcCwgMCk7XG5cbiAgICAgIHJldHVybiA0O1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBvcChPcC5QdXNoUmVtb3RlRWxlbWVudCk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgICAgb3AoT3AuUG9wUmVtb3RlRWxlbWVudCk7XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLklmLCAob3AsIFssIGNvbmRpdGlvbiwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAxO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgIH0sXG5cbiAgICBpbnZlcnNlXG4gICAgICA/ICgpID0+IHtcbiAgICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkXG4gIClcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkVhY2gsIChvcCwgWywgdmFsdWUsIGtleSwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKGtleSkge1xuICAgICAgICBleHByKG9wLCBrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkVudGVyTGlzdCwgbGFiZWxPcGVyYW5kKCdCT0RZJyksIGxhYmVsT3BlcmFuZCgnRUxTRScpKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgICAgb3AoTWFjaGluZU9wLlJldHVyblRvLCBsYWJlbE9wZXJhbmQoJ0lURVInKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnSVRFUicpO1xuICAgICAgb3AoT3AuSXRlcmF0ZSwgbGFiZWxPcGVyYW5kKCdCUkVBSycpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdCT0RZJyk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDIpO1xuICAgICAgb3AoT3AuUG9wLCAyKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5KdW1wLCBsYWJlbE9wZXJhbmQoJ0ZJTkFMTFknKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnQlJFQUsnKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICBvcChPcC5FeGl0TGlzdCk7XG4gICAgICBvcChNYWNoaW5lT3AuSnVtcCwgbGFiZWxPcGVyYW5kKCdGSU5BTExZJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0VMU0UnKTtcblxuICAgICAgaWYgKGludmVyc2UpIHtcbiAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgKVxuKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuV2l0aCwgKG9wLCBbLCB2YWx1ZSwgYmxvY2ssIGludmVyc2VdKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAyO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDEpO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBpZiAoaW52ZXJzZSkge1xuICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICB9XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkxldCwgKG9wLCBbLCBwb3NpdGlvbmFsLCBibG9ja10pID0+IHtcbiAgbGV0IGNvdW50ID0gQ29tcGlsZVBvc2l0aW9uYWwob3AsIHBvc2l0aW9uYWwpO1xuICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIGNvdW50KTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5XaXRoRHluYW1pY1ZhcnMsIChvcCwgWywgbmFtZWQsIGJsb2NrXSkgPT4ge1xuICBpZiAobmFtZWQpIHtcbiAgICBsZXQgW25hbWVzLCBleHByZXNzaW9uc10gPSBuYW1lZDtcblxuICAgIENvbXBpbGVQb3NpdGlvbmFsKG9wLCBleHByZXNzaW9ucyk7XG4gICAgRHluYW1pY1Njb3BlKG9wLCBuYW1lcywgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW52b2tlQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgbnVsbCwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2NrcywgZmFsc2UsIGZhbHNlKTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGhhc2hUb0FyZ3MoaGFzaDogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsKTogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsIHtcbiAgaWYgKGhhc2ggPT09IG51bGwpIHJldHVybiBudWxsO1xuICBsZXQgbmFtZXMgPSBoYXNoWzBdLm1hcCgoa2V5KSA9PiBgQCR7a2V5fWApO1xuICByZXR1cm4gW25hbWVzIGFzIFtzdHJpbmcsIC4uLnN0cmluZ1tdXSwgaGFzaFsxXV07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsU0FBUyxHQUFULEVBQWMsR0FBZCxRQUF5QixhQUF6QjtBQUNBLFNBQ0UsaUJBREYsRUFFRSwwQkFGRixFQUdFLFVBSEYsUUFJTyxrQ0FKUDtBQUtBLFNBQ0UsZUFERixFQUVFLHNCQUZGLEVBR0Usd0JBSEYsUUFJTyxzQ0FKUDtBQUtBLFNBQVMsV0FBVCxFQUFzQixVQUF0QixFQUFrQyxZQUFsQyxRQUFzRCx1Q0FBdEQ7QUFDQSxTQUFTLElBQVQsUUFBcUIsZ0NBQXJCO0FBQ0EsU0FBUyxpQkFBVCxFQUE0QixVQUE1QixRQUE4QyxrQ0FBOUM7QUFDQSxTQUNFLElBREYsRUFFRSxXQUZGLEVBR0UsWUFIRixFQUlFLHNCQUpGLFFBS08sOEJBTFA7QUFNQSxTQUFTLGtCQUFULEVBQTZCLFlBQTdCLEVBQTJDLGFBQTNDLFFBQWdFLDRCQUFoRTtBQUNBLFNBQVMsU0FBVCxRQUEyQyxhQUEzQztBQUNBLFNBQ0Usa0JBREYsRUFFRSwwQkFGRixFQUdFLGlCQUhGLEVBSUUsa0NBSkYsUUFLTyxzQ0FMUDtBQU1BLFNBQVMsV0FBVCxRQUE0QixVQUE1QjtBQUVBLE9BQU8sTUFBTSxVQUFVLEdBQUcsSUFBSSxTQUFKLEVBQW5CO0FBRVAsTUFBTSxrQkFBa0IsR0FFcEIsQ0FBQyxPQUFELEVBQVUsSUFBVixFQUFnQixPQUFoQixFQUF5QixNQUF6QixFQUFpQyxNQUFqQyxFQUF5QyxPQUF6QyxFQUFrRCxNQUFsRCxDQUZKO0FBR0EsTUFBTSxpQkFBaUIsR0FFbkIsQ0FBQyxLQUFELEVBQVEsTUFBUixFQUFnQixHQUFoQixFQUFxQixHQUFyQixDQUZKO0FBSUEsT0FBTSxTQUFVLGNBQVYsQ0FBeUIsT0FBekIsRUFBMkQ7QUFDL0QsU0FBTyxPQUFPLE9BQVAsS0FBbUIsUUFBbkIsR0FBOEIs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LEVBQUQsRUFBSyxTQUFMLEVBQWdCLElBQWhCLEVBQXNCLFVBQXRCLEVBQWtDLFVBQVUsQ0FBQyxLQUFELENBQTVDLEVBQXFELE1BQXJELENBQWY7QUFDRCxLQUZDLENBQUY7QUFHRCxHQUpELE1BSU87QUFDTCxJQUFBLHNCQUFzQixDQUFDLEVBQUQsRUFBSyxJQUFMLEVBQVcsSUFBWCxFQUFpQixVQUFqQixFQUE2QixLQUE3QixFQUFvQyxNQUFwQyxFQUE0QyxLQUE1QyxFQUFtRCxLQUFuRCxDQUF0QjtBQUNEO0FBQ0YsQ0FSRDs7QUFVQSxTQUFTLFVBQVQsQ0FBb0IsSUFBcEIsRUFBcUQ7QUFDbkQsTUFBSSxJQUFJLEtBQUssSUFBYixFQUFtQixPQUFPLElBQVA7QUFDbkIsTUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUQsQ0FBSixDQUFRLEdBQVIsQ0FBYSxHQUFELElBQVMsSUFBSSxHQUFHLEVBQTVCLENBQVo7QUFDQSxTQUFPLENBQUMsS0FBRCxFQUFpQyxJQUFJLENBQUMsQ0FBRCxDQUFyQyxDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21waWxlVGltZUNvbXBvbmVudCxcbiAgQ29udGVudFR5cGUsXG4gIEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUsXG4gIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUsXG4gIE1hY2hpbmVPcCxcbiAgT3AsXG4gIFNleHBPcGNvZGVzLFxuICBTdGF0ZW1lbnRTZXhwT3Bjb2RlLFxuICBXZWxsS25vd25BdHRyTmFtZSxcbiAgV2VsbEtub3duVGFnTmFtZSxcbiAgV2lyZUZvcm1hdCxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyAkZnAsICRzcCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7XG4gIEludm9rZVN0YXRpY0Jsb2NrLFxuICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayxcbiAgWWllbGRCbG9jayxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9ibG9ja3MnO1xuaW1wb3J0IHtcbiAgSW52b2tlQ29tcG9uZW50LFxuICBJbnZva2VEeW5hbWljQ29tcG9uZW50LFxuICBJbnZva2VOb25TdGF0aWNDb21wb25lbnQsXG59IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBTd2l0Y2hDYXNlcywgUmVwbGF5YWJsZSwgUmVwbGF5YWJsZUlmIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9jb25kaXRpb25hbCc7XG5pbXBvcnQgeyBleHByIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9leHByJztcbmltcG9ydCB7IENvbXBpbGVQb3NpdGlvbmFsLCBTaW1wbGVBcmdzIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9zaGFyZWQnO1xuaW1wb3J0IHtcbiAgQ2FsbCxcbiAgQ2FsbER5bmFtaWMsXG4gIER5bmFtaWNTY29wZSxcbiAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZSxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy92bSc7XG5pbXBvcnQgeyBldmFsU3ltYm9sc09wZXJhbmQsIGxhYmVsT3BlcmFuZCwgc3RkbGliT3BlcmFuZCB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL29wZXJhbmRzJztcbmltcG9ydCB7IENvbXBpbGVycywgUHVzaFN0YXRlbWVudE9wIH0gZnJvbSAnLi9jb21waWxlcnMnO1xuaW1wb3J0IHtcbiAgaXNHZXRGcmVlQ29tcG9uZW50LFxuICBpc0dldEZyZWVDb21wb25lbnRPckhlbHBlcixcbiAgaXNHZXRGcmVlTW9kaWZpZXIsXG4gIGlzR2V0RnJlZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIsXG59IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvcmVzb2x1dGlvbic7XG5pbXBvcnQgeyBuYW1lZEJsb2NrcyB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IFNUQVRFTUVOVFMgPSBuZXcgQ29tcGlsZXJzPFB1c2hTdGF0ZW1lbnRPcCwgU3RhdGVtZW50U2V4cE9wY29kZT4oKTtcblxuY29uc3QgSU5GTEFURV9BVFRSX1RBQkxFOiB7XG4gIFtJIGluIFdlbGxLbm93bkF0dHJOYW1lXTogc3RyaW5nO1xufSA9IFsnY2xhc3MnLCAnaWQnLCAndmFsdWUnLCAnbmFtZScsICd0eXBlJywgJ3N0eWxlJywgJ2hyZWYnXTtcbmNvbnN0IElORkxBVEVfVEFHX1RBQkxFOiB7XG4gIFtJIGluIFdlbGxLbm93blRhZ05hbWVdOiBzdHJpbmc7XG59ID0gWydkaXYnLCAnc3BhbicsICdwJywgJ2EnXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluZmxhdGVUYWdOYW1lKHRhZ05hbWU6IHN0cmluZyB8IFdlbGxLbm93blRhZ05hbWUpOiBzdHJpbmcge1xuICByZXR1cm4gdHlwZW9mIHRhZ05hbWUgPT09ICdzdHJpbmcnID8gdGFnTmFtZSA6IElORkxBVEVfVEFHX1RBQkxFW3RhZ05hbWVdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5mbGF0ZUF0dHJOYW1lKGF0dHJOYW1lOiBzdHJpbmcgfCBXZWxsS25vd25BdHRyTmFtZSk6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgYXR0ck5hbWUgPT09ICdzdHJpbmcnID8gYXR0ck5hbWUgOiBJTkZMQVRFX0FUVFJfVEFCTEVbYXR0ck5hbWVdO1xufVxuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Db21tZW50LCAob3AsIHNleHApID0+IG9wKE9wLkNvbW1lbnQsIHNleHBbMV0pKTtcblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNsb3NlRWxlbWVudCwgKG9wKSA9PiBvcChPcC5DbG9zZUVsZW1lbnQpKTtcblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkZsdXNoRWxlbWVudCwgKG9wKSA9PiBvcChPcC5GbHVzaEVsZW1lbnQpKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuTW9kaWZpZXIsIChvcCwgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVNb2RpZmllcihleHByZXNzaW9uKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU1vZGlmaWVyLCBleHByZXNzaW9uLCAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsIGZhbHNlKTtcbiAgICAgIG9wKE9wLk1vZGlmaWVyLCBoYW5kbGUpO1xuICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICAgIG9wKE9wLkR1cCwgJGZwLCAxKTtcbiAgICBvcChPcC5EeW5hbWljTW9kaWZpZXIpO1xuICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5TdGF0aWNBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIG9wKE9wLlN0YXRpY0F0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdmFsdWUgYXMgc3RyaW5nLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuU3RhdGljQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBvcChPcC5TdGF0aWNDb21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHZhbHVlIGFzIHN0cmluZywgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkR5bmFtaWNBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuRHluYW1pY0F0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgZmFsc2UsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0R5bmFtaWNBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuRHluYW1pY0F0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdHJ1ZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Db21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIGZhbHNlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuVHJ1c3RpbmdDb21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuQ29tcG9uZW50QXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB0cnVlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuT3BlbkVsZW1lbnQsIChvcCwgWywgdGFnXSkgPT4ge1xuICBvcChPcC5PcGVuRWxlbWVudCwgaW5mbGF0ZVRhZ05hbWUodGFnKSk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuT3BlbkVsZW1lbnRXaXRoU3BsYXQsIChvcCwgWywgdGFnXSkgPT4ge1xuICBvcChPcC5QdXRDb21wb25lbnRPcGVyYXRpb25zKTtcbiAgb3AoT3AuT3BlbkVsZW1lbnQsIGluZmxhdGVUYWdOYW1lKHRhZykpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbXBvbmVudCwgKG9wLCBbLCBleHByLCBlbGVtZW50QmxvY2ssIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgZWxlbWVudEJsb2NrLCBudWxsLCBuYW1lZCwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICAvLyBvdGhlcndpc2UsIHRoZSBjb21wb25lbnQgbmFtZSB3YXMgYW4gZXhwcmVzc2lvbiwgc28gcmVzb2x2ZSB0aGUgZXhwcmVzc2lvblxuICAgIC8vIGFuZCBpbnZva2UgaXQgYXMgYSBkeW5hbWljIGNvbXBvbmVudFxuICAgIEludm9rZUR5bmFtaWNDb21wb25lbnQob3AsIGV4cHIsIGVsZW1lbnRCbG9jaywgbnVsbCwgbmFtZWQsIGJsb2NrcywgdHJ1ZSwgdHJ1ZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5ZaWVsZCwgKG9wLCBbLCB0bywgcGFyYW1zXSkgPT4gWWllbGRCbG9jayhvcCwgdG8sIHBhcmFtcykpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BdHRyU3BsYXQsIChvcCwgWywgdG9dKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgbnVsbCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5EZWJ1Z2dlciwgKG9wLCBbLCBldmFsSW5mb10pID0+XG4gIG9wKE9wLkRlYnVnZ2VyLCBldmFsU3ltYm9sc09wZXJhbmQoKSwgZXZhbEluZm8pXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BcHBlbmQsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIC8vIFNwZWNpYWwgY2FzZSBmb3Igc3RhdGljIHZhbHVlc1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSBpZiAoaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcih2YWx1ZSkpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLCB2YWx1ZSwge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkge1xuICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcblxuICAgICAgaWZWYWx1ZShoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAodmFsdWVbMF0gPT09IFNleHBPcGNvZGVzLkNhbGwpIHtcbiAgICBsZXQgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdID0gdmFsdWU7XG5cbiAgICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyLCBleHByZXNzaW9uLCB7XG4gICAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpIHtcbiAgICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIG51bGwpO1xuICAgICAgICB9LFxuICAgICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICAgIENhbGwob3AsIGhhbmRsZSwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFN3aXRjaENhc2VzKFxuICAgICAgICBvcCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgICAgICAgIG9wKE9wLkR5bmFtaWNDb250ZW50VHlwZSk7XG4gICAgICAgIH0sXG4gICAgICAgICh3aGVuKSA9PiB7XG4gICAgICAgICAgd2hlbihDb250ZW50VHlwZS5Db21wb25lbnQsICgpID0+IHtcbiAgICAgICAgICAgIG9wKE9wLlJlc29sdmVDdXJyaWVkQ29tcG9uZW50KTtcbiAgICAgICAgICAgIG9wKE9wLlB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UpO1xuICAgICAgICAgICAgSW52b2tlTm9uU3RhdGljQ29tcG9uZW50KG9wLCB7XG4gICAgICAgICAgICAgIGNhcGFiaWxpdGllczogdHJ1ZSxcbiAgICAgICAgICAgICAgZWxlbWVudEJsb2NrOiBudWxsLFxuICAgICAgICAgICAgICBwb3NpdGlvbmFsLFxuICAgICAgICAgICAgICBuYW1lZCxcbiAgICAgICAgICAgICAgYXROYW1lczogZmFsc2UsXG4gICAgICAgICAgICAgIGJsb2NrczogbmFtZWRCbG9ja3MobnVsbCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHdoZW4oQ29udGVudFR5cGUuSGVscGVyLCAoKSA9PiB7XG4gICAgICAgICAgICBDYWxsRHluYW1pYyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsICgpID0+IHtcbiAgICAgICAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1hcHBlbmQnKSk7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nQXBwZW5kLCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSB7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgZXhwcihvcCwgdmFsdWUpO1xuICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ3RydXN0aW5nLWFwcGVuZCcpKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQmxvY2ssIChvcCwgWywgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBudWxsLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzLCBmYWxzZSwgZmFsc2UpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW5FbGVtZW50LCAob3AsIFssIGJsb2NrLCBndWlkLCBkZXN0aW5hdGlvbiwgaW5zZXJ0QmVmb3JlXSkgPT4ge1xuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBndWlkKTtcblxuICAgICAgaWYgKGluc2VydEJlZm9yZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHByKG9wLCBpbnNlcnRCZWZvcmUpO1xuICAgICAgfVxuXG4gICAgICBleHByKG9wLCBkZXN0aW5hdGlvbik7XG4gICAgICBvcChPcC5EdXAsICRzcCwgMCk7XG5cbiAgICAgIHJldHVybiA0O1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBvcChPcC5QdXNoUmVtb3RlRWxlbWVudCk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgICAgb3AoT3AuUG9wUmVtb3RlRWxlbWVudCk7XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLklmLCAob3AsIFssIGNvbmRpdGlvbiwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAxO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgIH0sXG5cbiAgICBpbnZlcnNlXG4gICAgICA/ICgpID0+IHtcbiAgICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkXG4gIClcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkVhY2gsIChvcCwgWywgdmFsdWUsIGtleSwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKGtleSkge1xuICAgICAgICBleHByKG9wLCBrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkVudGVyTGlzdCwgbGFiZWxPcGVyYW5kKCdCT0RZJyksIGxhYmVsT3BlcmFuZCgnRUxTRScpKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgICAgb3AoTWFjaGluZU9wLlJldHVyblRvLCBsYWJlbE9wZXJhbmQoJ0lURVInKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnSVRFUicpO1xuICAgICAgb3AoT3AuSXRlcmF0ZSwgbGFiZWxPcGVyYW5kKCdCUkVBSycpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdCT0RZJyk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDIpO1xuICAgICAgb3AoT3AuUG9wLCAyKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5KdW1wLCBsYWJlbE9wZXJhbmQoJ0ZJTkFMTFknKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnQlJFQUsnKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICBvcChPcC5FeGl0TGlzdCk7XG4gICAgICBvcChNYWNoaW5lT3AuSnVtcCwgbGFiZWxPcGVyYW5kKCdGSU5BTExZJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0VMU0UnKTtcblxuICAgICAgaWYgKGludmVyc2UpIHtcbiAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgKVxuKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuV2l0aCwgKG9wLCBbLCB2YWx1ZSwgYmxvY2ssIGludmVyc2VdKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAyO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDEpO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBpZiAoaW52ZXJzZSkge1xuICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICB9XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkxldCwgKG9wLCBbLCBwb3NpdGlvbmFsLCBibG9ja10pID0+IHtcbiAgbGV0IGNvdW50ID0gQ29tcGlsZVBvc2l0aW9uYWwob3AsIHBvc2l0aW9uYWwpO1xuICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIGNvdW50KTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5XaXRoRHluYW1pY1ZhcnMsIChvcCwgWywgbmFtZWQsIGJsb2NrXSkgPT4ge1xuICBpZiAobmFtZWQpIHtcbiAgICBsZXQgW25hbWVzLCBleHByZXNzaW9uc10gPSBuYW1lZDtcblxuICAgIENvbXBpbGVQb3NpdGlvbmFsKG9wLCBleHByZXNzaW9ucyk7XG4gICAgRHluYW1pY1Njb3BlKG9wLCBuYW1lcywgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW52b2tlQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgbnVsbCwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2NrcywgZmFsc2UsIGZhbHNlKTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGhhc2hUb0FyZ3MoaGFzaDogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsKTogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsIHtcbiAgaWYgKGhhc2ggPT09IG51bGwpIHJldHVybiBudWxsO1xuICBsZXQgbmFtZXMgPSBoYXNoWzBdLm1hcCgoa2V5KSA9PiBgQCR7a2V5fWApO1xuICByZXR1cm4gW25hbWVzIGFzIFtzdHJpbmcsIC4uLnN0cmluZ1tdXSwgaGFzaFsxXV07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9

@@ -10,6 +10,5 @@ export * from './lib/program-context';

export { StdLib } from './lib/opcode-builder/stdlib';
export { PartialDefinitionImpl } from './lib/partial-template';
export { default as templateFactory, templateCacheCounters } from './lib/template';
export { WrappedBuilder } from './lib/wrapped-component';
export { EMPTY_BLOCKS } from './lib/utils';
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFBLHVCQUFBO0FBRUEsU0FBQSxhQUFBLFFBQUEsZ0JBQUE7QUFFQSxTQUFBLGlCQUFBLEVBQUEsVUFBQSxRQUFBLDJCQUFBO0FBRUEsY0FBQSw4QkFBQTtBQUNBLGNBQUEsK0JBQUE7QUFFQSxTQUNFLDBCQUEwQixJQUQ1QiwwQkFBQSxFQUVFLGlCQUFpQixJQUZuQixpQkFBQSxRQUFBLHFDQUFBO0FBSUEsU0FBQSxVQUFBLFFBQUEscUNBQUE7QUFDQSxTQUFBLElBQUEsUUFBQSxxQ0FBQTtBQUVBLFNBQUEsTUFBQSxRQUFBLDZCQUFBO0FBRUEsU0FBQSxxQkFBQSxRQUFBLHdCQUFBO0FBRUEsU0FDRSxPQUFPLElBRFQsZUFBQSxFQUFBLHFCQUFBLFFBQUEsZ0JBQUE7QUFPQSxTQUFBLGNBQUEsUUFBQSx5QkFBQTtBQUVBLFNBQUEsWUFBQSxRQUFBLGFBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9wcm9ncmFtLWNvbnRleHQnO1xuXG5leHBvcnQgeyBkZWJ1Z0NvbXBpbGVyIH0gZnJvbSAnLi9saWIvY29tcGlsZXInO1xuXG5leHBvcnQgeyBjb21waWxlU3RhdGVtZW50cywgY29tcGlsYWJsZSB9IGZyb20gJy4vbGliL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlci9jb250ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyL2RlbGVnYXRlJztcblxuZXhwb3J0IHtcbiAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sgYXMgaW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2ssXG4gIEludm9rZVN0YXRpY0Jsb2NrIGFzIGludm9rZVN0YXRpY0Jsb2NrLFxufSBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2Jsb2Nrcyc7XG5leHBvcnQgeyBjb21waWxlU3RkIH0gZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9zdGRsaWInO1xuZXhwb3J0IHsgbWV0YSB9IGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcblxuZXhwb3J0IHsgU3RkTGliIH0gZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXIvc3RkbGliJztcblxuZXhwb3J0IHsgUGFydGlhbERlZmluaXRpb25JbXBsIH0gZnJvbSAnLi9saWIvcGFydGlhbC10ZW1wbGF0ZSc7XG5cbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMgdGVtcGxhdGVGYWN0b3J5LFxuICB0ZW1wbGF0ZUNhY2hlQ291bnRlcnMsXG4gIFRlbXBsYXRlRmFjdG9yeVdpdGhJZEFuZE1ldGEsXG4gIFRlbXBsYXRlV2l0aElkQW5kUmVmZXJyZXIsXG59IGZyb20gJy4vbGliL3RlbXBsYXRlJztcblxuZXhwb3J0IHsgV3JhcHBlZEJ1aWxkZXIgfSBmcm9tICcuL2xpYi93cmFwcGVkLWNvbXBvbmVudCc7XG5cbmV4cG9ydCB7IEVNUFRZX0JMT0NLUyB9IGZyb20gJy4vbGliL3V0aWxzJztcbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFBLHVCQUFBO0FBRUEsU0FBQSxhQUFBLFFBQUEsZ0JBQUE7QUFFQSxTQUFBLGlCQUFBLEVBQUEsVUFBQSxRQUFBLDJCQUFBO0FBRUEsY0FBQSw4QkFBQTtBQUNBLGNBQUEsK0JBQUE7QUFFQSxTQUNFLDBCQUEwQixJQUQ1QiwwQkFBQSxFQUVFLGlCQUFpQixJQUZuQixpQkFBQSxRQUFBLHFDQUFBO0FBSUEsU0FBQSxVQUFBLFFBQUEscUNBQUE7QUFDQSxTQUFBLElBQUEsUUFBQSxxQ0FBQTtBQUVBLFNBQUEsTUFBQSxRQUFBLDZCQUFBO0FBRUEsU0FDRSxPQUFPLElBRFQsZUFBQSxFQUFBLHFCQUFBLFFBQUEsZ0JBQUE7QUFPQSxTQUFBLGNBQUEsUUFBQSx5QkFBQTtBQUVBLFNBQUEsWUFBQSxRQUFBLGFBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9wcm9ncmFtLWNvbnRleHQnO1xuXG5leHBvcnQgeyBkZWJ1Z0NvbXBpbGVyIH0gZnJvbSAnLi9saWIvY29tcGlsZXInO1xuXG5leHBvcnQgeyBjb21waWxlU3RhdGVtZW50cywgY29tcGlsYWJsZSB9IGZyb20gJy4vbGliL2NvbXBpbGFibGUtdGVtcGxhdGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlci9jb250ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyL2RlbGVnYXRlJztcblxuZXhwb3J0IHtcbiAgSW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2sgYXMgaW52b2tlU3RhdGljQmxvY2tXaXRoU3RhY2ssXG4gIEludm9rZVN0YXRpY0Jsb2NrIGFzIGludm9rZVN0YXRpY0Jsb2NrLFxufSBmcm9tICcuL2xpYi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2Jsb2Nrcyc7XG5leHBvcnQgeyBjb21waWxlU3RkIH0gZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9zdGRsaWInO1xuZXhwb3J0IHsgbWV0YSB9IGZyb20gJy4vbGliL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcblxuZXhwb3J0IHsgU3RkTGliIH0gZnJvbSAnLi9saWIvb3Bjb2RlLWJ1aWxkZXIvc3RkbGliJztcblxuZXhwb3J0IHtcbiAgZGVmYXVsdCBhcyB0ZW1wbGF0ZUZhY3RvcnksXG4gIHRlbXBsYXRlQ2FjaGVDb3VudGVycyxcbiAgVGVtcGxhdGVGYWN0b3J5V2l0aElkQW5kTWV0YSxcbiAgVGVtcGxhdGVXaXRoSWRBbmRSZWZlcnJlcixcbn0gZnJvbSAnLi9saWIvdGVtcGxhdGUnO1xuXG5leHBvcnQgeyBXcmFwcGVkQnVpbGRlciB9IGZyb20gJy4vbGliL3dyYXBwZWQtY29tcG9uZW50JztcblxuZXhwb3J0IHsgRU1QVFlfQkxPQ0tTIH0gZnJvbSAnLi9saWIvdXRpbHMnO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -31,2 +31,2 @@ export var DEFAULT_CAPABILITIES = {

};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvZGVsZWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxJQUFNLG9CQUFvQixHQUFrQztBQUNqRSxFQUFBLGFBQWEsRUFEb0QsSUFBQTtBQUVqRSxFQUFBLFVBQVUsRUFGdUQsSUFBQTtBQUdqRSxFQUFBLFdBQVcsRUFIc0QsSUFBQTtBQUlqRSxFQUFBLFVBQVUsRUFKdUQsSUFBQTtBQUtqRSxFQUFBLGFBQWEsRUFMb0QsS0FBQTtBQU1qRSxFQUFBLFdBQVcsRUFOc0QsS0FBQTtBQU9qRSxFQUFBLFlBQVksRUFQcUQsSUFBQTtBQVFqRSxFQUFBLFlBQVksRUFScUQsS0FBQTtBQVNqRSxFQUFBLFVBQVUsRUFUdUQsSUFBQTtBQVVqRSxFQUFBLGNBQWMsRUFWbUQsSUFBQTtBQVdqRSxFQUFBLE9BQU8sRUFYMEQsS0FBQTtBQVlqRSxFQUFBLFdBQVcsRUFac0QsS0FBQTtBQWFqRSxFQUFBLFdBQVcsRUFBRTtBQWJvRCxDQUE1RDtBQWdCUCxPQUFPLElBQU0sb0JBQW9CLEdBQWtDO0FBQ2pFLEVBQUEsYUFBYSxFQURvRCxLQUFBO0FBRWpFLEVBQUEsVUFBVSxFQUZ1RCxLQUFBO0FBR2pFLEVBQUEsV0FBVyxFQUhzRCxLQUFBO0FBSWpFLEVBQUEsVUFBVSxFQUp1RCxLQUFBO0FBS2pFLEVBQUEsYUFBYSxFQUxvRCxLQUFBO0FBTWpFLEVBQUEsV0FBVyxFQU5zRCxLQUFBO0FBT2pFLEVBQUEsWUFBWSxFQVBxRCxLQUFBO0FBUWpFLEVBQUEsWUFBWSxFQVJxRCxLQUFBO0FBU2pFLEVBQUEsVUFBVSxFQVR1RCxLQUFBO0FBVWpFLEVBQUEsY0FBYyxFQVZtRCxLQUFBO0FBV2pFLEVBQUEsT0FBTyxFQVgwRCxLQUFBO0FBWWpFLEVBQUEsV0FBVyxFQVpzRCxLQUFBO0FBYWpFLEVBQUEsV0FBVyxFQUFFO0FBYm9ELENBQTVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMsIE9wdGlvbiwgQ29tcGlsZVRpbWVDb21wb25lbnQgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ0FQQUJJTElUSUVTOiBJbnRlcm5hbENvbXBvbmVudENhcGFiaWxpdGllcyA9IHtcbiAgZHluYW1pY0xheW91dDogdHJ1ZSxcbiAgZHluYW1pY1RhZzogdHJ1ZSxcbiAgcHJlcGFyZUFyZ3M6IHRydWUsXG4gIGNyZWF0ZUFyZ3M6IHRydWUsXG4gIGF0dHJpYnV0ZUhvb2s6IGZhbHNlLFxuICBlbGVtZW50SG9vazogZmFsc2UsXG4gIGR5bmFtaWNTY29wZTogdHJ1ZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgdXBkYXRlSG9vazogdHJ1ZSxcbiAgY3JlYXRlSW5zdGFuY2U6IHRydWUsXG4gIHdyYXBwZWQ6IGZhbHNlLFxuICB3aWxsRGVzdHJveTogZmFsc2UsXG4gIGhhc1N1Yk93bmVyOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBjb25zdCBNSU5JTUFMX0NBUEFCSUxJVElFUzogSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMgPSB7XG4gIGR5bmFtaWNMYXlvdXQ6IGZhbHNlLFxuICBkeW5hbWljVGFnOiBmYWxzZSxcbiAgcHJlcGFyZUFyZ3M6IGZhbHNlLFxuICBjcmVhdGVBcmdzOiBmYWxzZSxcbiAgYXR0cmlidXRlSG9vazogZmFsc2UsXG4gIGVsZW1lbnRIb29rOiBmYWxzZSxcbiAgZHluYW1pY1Njb3BlOiBmYWxzZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgdXBkYXRlSG9vazogZmFsc2UsXG4gIGNyZWF0ZUluc3RhbmNlOiBmYWxzZSxcbiAgd3JhcHBlZDogZmFsc2UsXG4gIHdpbGxEZXN0cm95OiBmYWxzZSxcbiAgaGFzU3ViT3duZXI6IGZhbHNlLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlckRlbGVnYXRlPFIgPSB1bmtub3duPiB7XG4gIGxvb2t1cEhlbHBlcj8obmFtZTogc3RyaW5nLCByZWZlcnJlcjogUik6IE9wdGlvbjxudW1iZXI+IHwgdm9pZDtcbiAgbG9va3VwTW9kaWZpZXI/KG5hbWU6IHN0cmluZywgcmVmZXJyZXI6IFIpOiBPcHRpb248bnVtYmVyPiB8IHZvaWQ7XG4gIGxvb2t1cENvbXBvbmVudD8obmFtZTogc3RyaW5nLCByZWZlcnJlcjogUik6IE9wdGlvbjxDb21waWxlVGltZUNvbXBvbmVudD4gfCB2b2lkO1xuICBsb29rdXBQYXJ0aWFsPyhuYW1lOiBzdHJpbmcsIHJlZmVycmVyOiBSKTogT3B0aW9uPG51bWJlcj4gfCB2b2lkO1xuXG4gIC8vIEZvciBkZWJ1Z2dpbmdcbiAgcmVzb2x2ZT8oaGFuZGxlOiBudW1iZXIpOiBSO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvZGVsZWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxJQUFNLG9CQUFvQixHQUFrQztBQUNqRSxFQUFBLGFBQWEsRUFEb0QsSUFBQTtBQUVqRSxFQUFBLFVBQVUsRUFGdUQsSUFBQTtBQUdqRSxFQUFBLFdBQVcsRUFIc0QsSUFBQTtBQUlqRSxFQUFBLFVBQVUsRUFKdUQsSUFBQTtBQUtqRSxFQUFBLGFBQWEsRUFMb0QsS0FBQTtBQU1qRSxFQUFBLFdBQVcsRUFOc0QsS0FBQTtBQU9qRSxFQUFBLFlBQVksRUFQcUQsSUFBQTtBQVFqRSxFQUFBLFlBQVksRUFScUQsS0FBQTtBQVNqRSxFQUFBLFVBQVUsRUFUdUQsSUFBQTtBQVVqRSxFQUFBLGNBQWMsRUFWbUQsSUFBQTtBQVdqRSxFQUFBLE9BQU8sRUFYMEQsS0FBQTtBQVlqRSxFQUFBLFdBQVcsRUFac0QsS0FBQTtBQWFqRSxFQUFBLFdBQVcsRUFBRTtBQWJvRCxDQUE1RDtBQWdCUCxPQUFPLElBQU0sb0JBQW9CLEdBQWtDO0FBQ2pFLEVBQUEsYUFBYSxFQURvRCxLQUFBO0FBRWpFLEVBQUEsVUFBVSxFQUZ1RCxLQUFBO0FBR2pFLEVBQUEsV0FBVyxFQUhzRCxLQUFBO0FBSWpFLEVBQUEsVUFBVSxFQUp1RCxLQUFBO0FBS2pFLEVBQUEsYUFBYSxFQUxvRCxLQUFBO0FBTWpFLEVBQUEsV0FBVyxFQU5zRCxLQUFBO0FBT2pFLEVBQUEsWUFBWSxFQVBxRCxLQUFBO0FBUWpFLEVBQUEsWUFBWSxFQVJxRCxLQUFBO0FBU2pFLEVBQUEsVUFBVSxFQVR1RCxLQUFBO0FBVWpFLEVBQUEsY0FBYyxFQVZtRCxLQUFBO0FBV2pFLEVBQUEsT0FBTyxFQVgwRCxLQUFBO0FBWWpFLEVBQUEsV0FBVyxFQVpzRCxLQUFBO0FBYWpFLEVBQUEsV0FBVyxFQUFFO0FBYm9ELENBQTVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMsIE9wdGlvbiwgQ29tcGlsZVRpbWVDb21wb25lbnQgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ0FQQUJJTElUSUVTOiBJbnRlcm5hbENvbXBvbmVudENhcGFiaWxpdGllcyA9IHtcbiAgZHluYW1pY0xheW91dDogdHJ1ZSxcbiAgZHluYW1pY1RhZzogdHJ1ZSxcbiAgcHJlcGFyZUFyZ3M6IHRydWUsXG4gIGNyZWF0ZUFyZ3M6IHRydWUsXG4gIGF0dHJpYnV0ZUhvb2s6IGZhbHNlLFxuICBlbGVtZW50SG9vazogZmFsc2UsXG4gIGR5bmFtaWNTY29wZTogdHJ1ZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgdXBkYXRlSG9vazogdHJ1ZSxcbiAgY3JlYXRlSW5zdGFuY2U6IHRydWUsXG4gIHdyYXBwZWQ6IGZhbHNlLFxuICB3aWxsRGVzdHJveTogZmFsc2UsXG4gIGhhc1N1Yk93bmVyOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBjb25zdCBNSU5JTUFMX0NBUEFCSUxJVElFUzogSW50ZXJuYWxDb21wb25lbnRDYXBhYmlsaXRpZXMgPSB7XG4gIGR5bmFtaWNMYXlvdXQ6IGZhbHNlLFxuICBkeW5hbWljVGFnOiBmYWxzZSxcbiAgcHJlcGFyZUFyZ3M6IGZhbHNlLFxuICBjcmVhdGVBcmdzOiBmYWxzZSxcbiAgYXR0cmlidXRlSG9vazogZmFsc2UsXG4gIGVsZW1lbnRIb29rOiBmYWxzZSxcbiAgZHluYW1pY1Njb3BlOiBmYWxzZSxcbiAgY3JlYXRlQ2FsbGVyOiBmYWxzZSxcbiAgdXBkYXRlSG9vazogZmFsc2UsXG4gIGNyZWF0ZUluc3RhbmNlOiBmYWxzZSxcbiAgd3JhcHBlZDogZmFsc2UsXG4gIHdpbGxEZXN0cm95OiBmYWxzZSxcbiAgaGFzU3ViT3duZXI6IGZhbHNlLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlckRlbGVnYXRlPFIgPSB1bmtub3duPiB7XG4gIGxvb2t1cEhlbHBlcj8obmFtZTogc3RyaW5nLCByZWZlcnJlcjogUik6IE9wdGlvbjxudW1iZXI+IHwgdm9pZDtcbiAgbG9va3VwTW9kaWZpZXI/KG5hbWU6IHN0cmluZywgcmVmZXJyZXI6IFIpOiBPcHRpb248bnVtYmVyPiB8IHZvaWQ7XG4gIGxvb2t1cENvbXBvbmVudD8obmFtZTogc3RyaW5nLCByZWZlcnJlcjogUik6IE9wdGlvbjxDb21waWxlVGltZUNvbXBvbmVudD4gfCB2b2lkO1xuXG4gIC8vIEZvciBkZWJ1Z2dpbmdcbiAgcmVzb2x2ZT8oaGFuZGxlOiBudW1iZXIpOiBSO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -247,5 +247,3 @@ import { DEBUG } from '@glimmer/env';

var expr = _ref5[1],
_ref5$ = _ref5[2],
ifHelper = _ref5$.ifHelper,
ifFallback = _ref5$.ifFallback;
ifHelper = _ref5[2].ifHelper;
false && assert(isGetFreeOptionalHelper(expr) || isGetFreeDeprecatedHelper(expr), 'Attempted to resolve a helper with incorrect opcode');

@@ -260,5 +258,3 @@

if (helper === null) {
ifFallback(name, meta.moduleName);
} else {
if (helper) {
ifHelper(constants.helper(helper, name), name, meta.moduleName);

@@ -276,4 +272,3 @@ }

ifHelper = _ref6$.ifHelper,
ifValue = _ref6$.ifValue,
ifFallback = _ref6$.ifFallback;
ifValue = _ref6$.ifValue;
false && assert(isGetFreeOptionalComponentOrHelper(expr), 'Attempted to resolve an optional component or helper with incorrect opcode');

@@ -332,6 +327,3 @@ var type = expr[0];

ifHelper(constants.helper(_helper2, name));
return;
}
ifFallback(name);
}

@@ -355,2 +347,2 @@ }

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQUEsS0FBQSxRQUFBLGNBQUE7QUFnQkEsU0FBQSxNQUFBLEVBQUEsYUFBQSxRQUFBLGVBQUE7O0FBRUEsU0FBQSxjQUFBLENBQUEsTUFBQSxFQUFzRDtBQUNwRCxTQUFPLEtBQUssQ0FBTCxPQUFBLENBQUEsTUFBQSxLQUF5QixNQUFNLENBQU4sTUFBQSxLQUFoQyxDQUFBO0FBQ0Q7O0FBRUQsU0FBQSwwQkFBQSxDQUFBLFlBQUEsRUFBNkQ7QUFDM0QsU0FDRSxVQUFBLE1BREssRUFFNEQ7QUFDakUsUUFBSSxDQUFDLGNBQWMsQ0FBbkIsTUFBbUIsQ0FBbkIsRUFBNkIsT0FBQSxLQUFBO0FBRTdCLFFBQUksSUFBSSxHQUFHLE1BQU0sQ0FBakIsQ0FBaUIsQ0FBakI7QUFFQSxXQUNFLElBQUksS0FBQTtBQUFBO0FBQUosT0FDQSxJQUFJLEtBQUE7QUFBQTtBQURKLE9BRUEsSUFBSSxLQUhOLFlBQUE7QUFQRixHQUFBO0FBYUQ7O0FBRUQsT0FBTyxJQUFNLGtCQUFrQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFyRDtBQUVQLE9BQU8sSUFBTSxpQkFBaUIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBcEQ7QUFFUCxPQUFPLElBQU0sZUFBZSxHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFsRDtBQUVQLE9BQU8sSUFBTSwwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBN0Q7QUFJUCxPQUFPLElBQU0sdUJBQXVCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQTFEO0FBSVAsT0FBTSxTQUFBLHlCQUFBLENBQUEsTUFBQSxFQUMwQjtBQUU5QixTQUNFLEtBQUssQ0FBTCxPQUFBLENBQUEs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Q0FBUjtBQUNBO0FBQ0Q7O0FBRUQsSUFBQSxVQUFVLENBQVYsSUFBVSxDQUFWO0FBQ0Q7QUFDRjs7QUFFRCxTQUFBLG1CQUFBLENBQUEsSUFBQSxFQUFBLFFBQUEsRUFBQSxJQUFBLEVBQUEsU0FBQSxFQUFBLElBQUEsRUFLYztBQUFBLCtCQUVLLHdCQUF3QixDQUF6QyxJQUF5QyxDQUY3QjtBQUFBLE1BRU4sTUFGTSwwQkFFTixNQUZNOztBQUlaLE1BQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQXRCLENBQXNCLENBQUwsQ0FBakI7QUFDQSxNQUFJLE1BQU0sR0FBRyxRQUFRLENBQVIsbUJBQUEsQ0FBYixJQUFhLENBQWI7O0FBRUEsTUFBSSxLQUFLLElBQUksTUFBTSxLQUFuQixJQUFBLEVBQThCO0FBQzVCO0FBQ0E7QUFDQSxVQUFNLElBQUEsS0FBQSw2QkFDc0IsSUFEdEIscUVBRUYsSUFBSSxDQUFKLE1BQUEsQ0FBYSxJQUFJLENBRnJCLENBRXFCLENBQWpCLENBRkUsQ0FBTjtBQUtEOztBQUVELFNBQU8sU0FBUyxDQUFULE1BQUEsQ0FBQSxNQUFBLEVBQVAsSUFBTyxDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQge1xuICBDb21waWxlVGltZUNvbnN0YW50cyxcbiAgQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgQ29udGFpbmluZ01ldGFkYXRhLFxuICBFeHByZXNzaW9ucyxcbiAgT3duZXIsXG4gIFJlc29sdmVDb21wb25lbnRPcCxcbiAgUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyT3AsXG4gIFJlc29sdmVIZWxwZXJPcCxcbiAgUmVzb2x2ZU1vZGlmaWVyT3AsXG4gIFJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyT3AsXG4gIFJlc29sdmVPcHRpb25hbEhlbHBlck9wLFxuICBTZXhwT3Bjb2RlcyxcbiAgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYXNzZXJ0LCBkZWJ1Z1RvU3RyaW5nLCBleHBlY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuZnVuY3Rpb24gaXNHZXRMaWtlVHVwbGUob3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uKTogb3Bjb2RlIGlzIEV4cHJlc3Npb25zLlR1cGxlRXhwcmVzc2lvbiB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KG9wY29kZSkgJiYgb3Bjb2RlLmxlbmd0aCA9PT0gMjtcbn1cblxuZnVuY3Rpb24gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIodHlwZVRvVmVyaWZ5OiBTZXhwT3Bjb2Rlcykge1xuICByZXR1cm4gKFxuICAgIG9wY29kZTogRXhwcmVzc2lvbnMuRXhwcmVzc2lvblxuICApOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuR2V0RnJlZSB8IEV4cHJlc3Npb25zLkdldFRlbXBsYXRlU3ltYm9sID0+IHtcbiAgICBpZiAoIWlzR2V0TGlrZVR1cGxlKG9wY29kZSkpIHJldHVybiBmYWxzZTtcblxuICAgIGxldCB0eXBlID0gb3Bjb2RlWzBdO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUgfHxcbiAgICAgIHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sIHx8XG4gICAgICB0eXBlID09PSB0eXBlVG9WZXJpZnlcbiAgICApO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlQ29tcG9uZW50ID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50SGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVNb2RpZmllciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc01vZGlmaWVySGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZFxuKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU9wdGlvbmFsSGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFja1xuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzR2V0RnJlZURlcHJlY2F0ZWRIZWxwZXIoXG4gIG9wY29kZTogRXhwcmVzc2lvbnMuRXhwcmVzc2lvblxuKTogb3Bjb2RlIGlzIEV4cHJlc3Npb25zLkdldFBhdGhGcmVlQXNEZXByZWNhdGVkSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrIHtcbiAgcmV0dXJuIChcbiAgICBBcnJheS5pc0FycmF5KG9wY29kZSkgJiYgb3Bjb2RlWzBdID09PSBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNEZXByZWNhdGVkSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4gICk7XG59XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4pO1xuXG5pbnRlcmZhY2UgUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGEgZXh0ZW5kcyBDb250YWluaW5nTWV0YWRhdGEge1xuICBvd25lcjogT3duZXI7XG4gIHVwdmFyczogc3RyaW5nW107XG59XG5cbmZ1bmN0aW9uIGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhOiBDb250YWluaW5nTWV0YWRhdGEpOiBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YSB7XG4gIGlmIChERUJVRykge1xuICAgIGlmICghbWV0YS51cHZhcnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50LCBoZWxwZXIsIG9yIG1vZGlmaWVyLCBidXQgbm8gZnJlZSB2YXJzIHdlcmUgZm91bmQnXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghbWV0YS5vd25lcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQsIGhlbHBlciwgb3IgbW9kaWZpZXIsIGJ1dCBubyBvd25lciB3YXMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0ZW1wbGF0ZSBpdCB3YXMgYmVpbmcgcmVzb2x2ZWQgZnJvbSdcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChtZXRhIGFzIHVua25vd24pIGFzIFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhO1xufVxuXG4vKipcbiAqIDxGb28vPlxuICogPEZvbz48L0Zvbz5cbiAqIDxGb28gQGFyZz17e3RydWV9fSAvPlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbXBvbmVudChcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZUNvbXBvbmVudE9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZUNvbXBvbmVudChleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAoREVCVUcgJiYgZXhwclswXSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke1xuICAgICAgICBtZXRhLnVwdmFycyFbZXhwclsxXV1cbiAgICAgIH1gXG4gICAgKTtcbiAgfVxuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzLCBvd25lciB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKFxuICAgICAgY29uc3RhbnRzLmNvbXBvbmVudChcbiAgICAgICAgZGVmaW5pdGlvbiBhcyBvYmplY3QsXG4gICAgICAgIGV4cGVjdChvd25lciwgJ0JVRzogZXhwZWN0ZWQgb3duZXIgd2hlbiByZXNvbHZpbmcgY29tcG9uZW50IGRlZmluaXRpb24nKVxuICAgICAgKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpITtcblxuICAgIGlmIChERUJVRyAmJiAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBjb21wb25lbnQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIChoZWxwZXIpXG4gKiAoaGVscGVyIGFyZylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVIZWxwZXIoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24gYXMgb2JqZWN0KSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIHRoZW4oXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSwgcmVzb2x2ZXIsIG1ldGEsIGNvbnN0YW50cywgJ2hlbHBlcicpXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyISkhO1xuXG4gICAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgaGVscGVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiA8ZGl2IHt7bW9kaWZpZXJ9fS8+XG4gKiA8ZGl2IHt7bW9kaWZpZXIgYXJnfX0vPlxuICogPEZvbyB7e21vZGlmaWVyfX0vPlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU1vZGlmaWVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlTW9kaWZpZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVNb2RpZmllcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgbW9kaWZpZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKGRlZmluaXRpb24gYXMgb2JqZWN0KSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIGxldCB7IHVwdmFycyB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBtb2RpZmllciA9IHJlc29sdmVyLmxvb2t1cEJ1aWx0SW5Nb2RpZmllcihuYW1lKTtcblxuICAgIGlmIChERUJVRyAmJiBtb2RpZmllciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBtb2RpZmllciBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgaXQgd2FzIG5vdCBpbiBzY29wZTogJHtuYW1lfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIobW9kaWZpZXIhLCBuYW1lKSk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBtb2RpZmllciA9IHJlc29sdmVyLmxvb2t1cE1vZGlmaWVyKG5hbWUsIG93bmVyKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgbW9kaWZpZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIG1vZGlmaWVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihtb2RpZmllciwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICoge3tjb21wb25lbnQtb3ItaGVscGVyIGFyZ319XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29tcG9uZW50T3JIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkNvbXBvbmVudCwgaWZIZWxwZXIgfV06IFJlc29sdmVDb21wb25lbnRPckhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KFxuICAgIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCBvciBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJ1xuICApO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcywgb3duZXIgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgbGV0IGNvbXBvbmVudCA9IGNvbnN0YW50cy5jb21wb25lbnQoXG4gICAgICBkZWZpbml0aW9uIGFzIG9iamVjdCxcbiAgICAgIGV4cGVjdChvd25lciwgJ0JVRzogZXhwZWN0ZWQgb3duZXIgd2hlbiByZXNvbHZpbmcgY29tcG9uZW50IGRlZmluaXRpb24nKSxcbiAgICAgIHRydWVcbiAgICApO1xuXG4gICAgaWYgKGNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uIGFzIG9iamVjdCwgbnVsbCwgdHJ1ZSk7XG5cbiAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgZWl0aGVyIGEgY29tcG9uZW50IG9yIGhlbHBlciwgYnV0IGl0IGRpZCBub3QgaGF2ZSBhIGNvbXBvbmVudCBtYW5hZ2VyIG9yIGhlbHBlciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIHZhbHVlIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgICBkZWZpbml0aW9uXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZkhlbHBlcihleHBlY3QoaGVscGVyLCAnQlVHOiBoZWxwZXIgbXVzdCBleGlzdCcpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgaWZIZWxwZXIoXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKFxuICAgICAgICBleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsXG4gICAgICAgIHJlc29sdmVyLFxuICAgICAgICBtZXRhLFxuICAgICAgICBjb25zdGFudHMsXG4gICAgICAgICdjb21wb25lbnQgb3IgaGVscGVyJ1xuICAgICAgKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGRlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgY29tcG9uZW50IG9yIGhlbHBlciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIhLCBuYW1lKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogPEZvbyBAYXJnPXt7aGVscGVyfX0+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3B0aW9uYWxIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkhlbHBlciwgaWZGYWxsYmFjayB9XTogUmVzb2x2ZU9wdGlvbmFsSGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlT3B0aW9uYWxIZWxwZXIoZXhwcikgfHwgaXNHZXRGcmVlRGVwcmVjYXRlZEhlbHBlcihleHByKSxcbiAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJ1xuICApO1xuICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gIGlmIChoZWxwZXIgPT09IG51bGwpIHtcbiAgICBpZkZhbGxiYWNrKG5hbWUsIG1ldGEubW9kdWxlTmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpLCBuYW1lLCBtZXRhLm1vZHVsZU5hbWUpO1xuICB9XG59XG5cbi8qKlxuICoge3ttYXliZUhlbHBlck9yQ29tcG9uZW50fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHsgaWZDb21wb25lbnQsIGlmSGVscGVyLCBpZlZhbHVlLCBpZkZhbGxiYWNrIH1dOiBSZXNvbHZlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KFxuICAgIGlzR2V0RnJlZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIoZXhwciksXG4gICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGFuIG9wdGlvbmFsIGNvbXBvbmVudCBvciBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJ1xuICApO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcywgb3duZXIgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIGRlZmluaXRpb24gIT09ICdmdW5jdGlvbicgJiZcbiAgICAgICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ29iamVjdCcgfHwgZGVmaW5pdGlvbiA9PT0gbnVsbClcbiAgICApIHtcbiAgICAgIC8vIFRoZSB2YWx1ZSBpcyBub3QgYW4gb2JqZWN0LCBzbyBpdCBjYW4ndCBiZSBhIGNvbXBvbmVudCBvciBoZWxwZXIuXG4gICAgICBpZlZhbHVlKGNvbnN0YW50cy52YWx1ZShkZWZpbml0aW9uKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNvbXBvbmVudCA9IGNvbnN0YW50cy5jb21wb25lbnQoXG4gICAgICBkZWZpbml0aW9uLFxuICAgICAgZXhwZWN0KG93bmVyLCAnQlVHOiBleHBlY3RlZCBvd25lciB3aGVuIHJlc29sdmluZyBjb21wb25lbnQgZGVmaW5pdGlvbicpLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICBpZiAoY29tcG9uZW50ICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSBjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24sIG51bGwsIHRydWUpO1xuXG4gICAgaWYgKGhlbHBlciAhPT0gbnVsbCkge1xuICAgICAgaWZIZWxwZXIoaGVscGVyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZlZhbHVlKGNvbnN0YW50cy52YWx1ZShkZWZpbml0aW9uKSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIGlmSGVscGVyKFxuICAgICAgbG9va3VwQnVpbHRJbkhlbHBlcihleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsIHJlc29sdmVyLCBtZXRhLCBjb25zdGFudHMsICd2YWx1ZScpXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IHJlc29sdmVyLmxvb2t1cENvbXBvbmVudChuYW1lLCBvd25lcik7XG5cbiAgICBpZiAoZGVmaW5pdGlvbiAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyKTtcblxuICAgIGlmIChoZWxwZXIgIT09IG51bGwpIHtcbiAgICAgIGlmSGVscGVyKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWZGYWxsYmFjayhuYW1lKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBsb29rdXBCdWlsdEluSGVscGVyKFxuICBleHByOiBFeHByZXNzaW9ucy5HZXRTdHJpY3RGcmVlLFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBjb25zdGFudHM6IFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICB0eXBlOiBzdHJpbmdcbik6IG51bWJlciB7XG4gIGxldCB7IHVwdmFycyB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwQnVpbHRJbkhlbHBlcihuYW1lKTtcblxuICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgLy8gS2V5d29yZCBoZWxwZXIgZGlkIG5vdCBleGlzdCwgd2hpY2ggbWVhbnMgdGhhdCB3ZSdyZSBhdHRlbXB0aW5nIHRvIHVzZSBhXG4gICAgLy8gdmFsdWUgb2Ygc29tZSBraW5kIHRoYXQgaXMgbm90IGluIHNjb3BlXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIGEgJHt0eXBlfSBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke1xuICAgICAgICBtZXRhLnVwdmFycyFbZXhwclsxXV1cbiAgICAgIH1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBjb25zdGFudHMuaGVscGVyKGhlbHBlciEsIG5hbWUpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQUEsS0FBQSxRQUFBLGNBQUE7QUFnQkEsU0FBQSxNQUFBLEVBQUEsYUFBQSxRQUFBLGVBQUE7O0FBRUEsU0FBQSxjQUFBLENBQUEsTUFBQSxFQUFzRDtBQUNwRCxTQUFPLEtBQUssQ0FBTCxPQUFBLENBQUEsTUFBQSxLQUF5QixNQUFNLENBQU4sTUFBQSxLQUFoQyxDQUFBO0FBQ0Q7O0FBRUQsU0FBQSwwQkFBQSxDQUFBLFlBQUEsRUFBNkQ7QUFDM0QsU0FDRSxVQUFBLE1BREssRUFFNEQ7QUFDakUsUUFBSSxDQUFDLGNBQWMsQ0FBbkIsTUFBbUIsQ0FBbkIsRUFBNkIsT0FBQSxLQUFBO0FBRTdCLFFBQUksSUFBSSxHQUFHLE1BQU0sQ0FBakIsQ0FBaUIsQ0FBakI7QUFFQSxXQUNFLElBQUksS0FBQTtBQUFBO0FBQUosT0FDQSxJQUFJLEtBQUE7QUFBQTtBQURKLE9BRUEsSUFBSSxLQUhOLFlBQUE7QUFQRixHQUFBO0FBYUQ7O0FBRUQsT0FBTyxJQUFNLGtCQUFrQixHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFyRDtBQUVQLE9BQU8sSUFBTSxpQkFBaUIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBcEQ7QUFFUCxPQUFPLElBQU0sZUFBZSxHQUFHLDBCQUEwQixDQUFBO0FBQUE7QUFBQSxDQUFsRDtBQUVQLE9BQU8sSUFBTSwwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQTtBQUFBO0FBQUEsQ0FBN0Q7QUFJUCxPQUFPLElBQU0sdUJBQXVCLEdBQUcsMEJBQTBCLENBQUE7QUFBQTtBQUFBLENBQTFEO0FBSVAsT0FBTSxTQUFBLHlCQUFBLENBQUEsTUFBQSxFQUMwQjtBQUU5QixTQUNFLEtBQUssQ0FBTCxPQUFBLENBQUEs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TSwwQkFFTixNQUZNOztBQUlaLE1BQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQXRCLENBQXNCLENBQUwsQ0FBakI7QUFDQSxNQUFJLE1BQU0sR0FBRyxRQUFRLENBQVIsbUJBQUEsQ0FBYixJQUFhLENBQWI7O0FBRUEsTUFBSSxLQUFLLElBQUksTUFBTSxLQUFuQixJQUFBLEVBQThCO0FBQzVCO0FBQ0E7QUFDQSxVQUFNLElBQUEsS0FBQSw2QkFDc0IsSUFEdEIscUVBRUYsSUFBSSxDQUFKLE1BQUEsQ0FBYSxJQUFJLENBRnJCLENBRXFCLENBQWpCLENBRkUsQ0FBTjtBQUtEOztBQUVELFNBQU8sU0FBUyxDQUFULE1BQUEsQ0FBQSxNQUFBLEVBQVAsSUFBTyxDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQge1xuICBDb21waWxlVGltZUNvbnN0YW50cyxcbiAgQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgQ29udGFpbmluZ01ldGFkYXRhLFxuICBFeHByZXNzaW9ucyxcbiAgT3duZXIsXG4gIFJlc29sdmVDb21wb25lbnRPcCxcbiAgUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyT3AsXG4gIFJlc29sdmVIZWxwZXJPcCxcbiAgUmVzb2x2ZU1vZGlmaWVyT3AsXG4gIFJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyT3AsXG4gIFJlc29sdmVPcHRpb25hbEhlbHBlck9wLFxuICBTZXhwT3Bjb2RlcyxcbiAgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYXNzZXJ0LCBkZWJ1Z1RvU3RyaW5nLCBleHBlY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcblxuZnVuY3Rpb24gaXNHZXRMaWtlVHVwbGUob3Bjb2RlOiBFeHByZXNzaW9ucy5FeHByZXNzaW9uKTogb3Bjb2RlIGlzIEV4cHJlc3Npb25zLlR1cGxlRXhwcmVzc2lvbiB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KG9wY29kZSkgJiYgb3Bjb2RlLmxlbmd0aCA9PT0gMjtcbn1cblxuZnVuY3Rpb24gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIodHlwZVRvVmVyaWZ5OiBTZXhwT3Bjb2Rlcykge1xuICByZXR1cm4gKFxuICAgIG9wY29kZTogRXhwcmVzc2lvbnMuRXhwcmVzc2lvblxuICApOiBvcGNvZGUgaXMgRXhwcmVzc2lvbnMuR2V0RnJlZSB8IEV4cHJlc3Npb25zLkdldFRlbXBsYXRlU3ltYm9sID0+IHtcbiAgICBpZiAoIWlzR2V0TGlrZVR1cGxlKG9wY29kZSkpIHJldHVybiBmYWxzZTtcblxuICAgIGxldCB0eXBlID0gb3Bjb2RlWzBdO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUgfHxcbiAgICAgIHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sIHx8XG4gICAgICB0eXBlID09PSB0eXBlVG9WZXJpZnlcbiAgICApO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgaXNHZXRGcmVlQ29tcG9uZW50ID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoU2V4cE9wY29kZXMuR2V0RnJlZUFzQ29tcG9uZW50SGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVNb2RpZmllciA9IG1ha2VSZXNvbHV0aW9uVHlwZVZlcmlmaWVyKFNleHBPcGNvZGVzLkdldEZyZWVBc01vZGlmaWVySGVhZCk7XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVIZWxwZXIgPSBtYWtlUmVzb2x1dGlvblR5cGVWZXJpZmllcihTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZFxuKTtcblxuZXhwb3J0IGNvbnN0IGlzR2V0RnJlZU9wdGlvbmFsSGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFja1xuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzR2V0RnJlZURlcHJlY2F0ZWRIZWxwZXIoXG4gIG9wY29kZTogRXhwcmVzc2lvbnMuRXhwcmVzc2lvblxuKTogb3Bjb2RlIGlzIEV4cHJlc3Npb25zLkdldFBhdGhGcmVlQXNEZXByZWNhdGVkSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrIHtcbiAgcmV0dXJuIChcbiAgICBBcnJheS5pc0FycmF5KG9wY29kZSkgJiYgb3Bjb2RlWzBdID09PSBTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNEZXByZWNhdGVkSGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4gICk7XG59XG5cbmV4cG9ydCBjb25zdCBpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyID0gbWFrZVJlc29sdXRpb25UeXBlVmVyaWZpZXIoXG4gIFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrXG4pO1xuXG5pbnRlcmZhY2UgUmVzb2x2ZWRDb250YWluaW5nTWV0YWRhdGEgZXh0ZW5kcyBDb250YWluaW5nTWV0YWRhdGEge1xuICBvd25lcjogT3duZXI7XG4gIHVwdmFyczogc3RyaW5nW107XG59XG5cbmZ1bmN0aW9uIGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhOiBDb250YWluaW5nTWV0YWRhdGEpOiBSZXNvbHZlZENvbnRhaW5pbmdNZXRhZGF0YSB7XG4gIGlmIChERUJVRykge1xuICAgIGlmICghbWV0YS51cHZhcnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50LCBoZWxwZXIsIG9yIG1vZGlmaWVyLCBidXQgbm8gZnJlZSB2YXJzIHdlcmUgZm91bmQnXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghbWV0YS5vd25lcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBjb21wb25lbnQsIGhlbHBlciwgb3IgbW9kaWZpZXIsIGJ1dCBubyBvd25lciB3YXMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0ZW1wbGF0ZSBpdCB3YXMgYmVpbmcgcmVzb2x2ZWQgZnJvbSdcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChtZXRhIGFzIHVua25vd24pIGFzIFJlc29sdmVkQ29udGFpbmluZ01ldGFkYXRhO1xufVxuXG4vKipcbiAqIDxGb28vPlxuICogPEZvbz48L0Zvbz5cbiAqIDxGb28gQGFyZz17e3RydWV9fSAvPlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUNvbXBvbmVudChcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIGNvbnN0YW50czogQ29tcGlsZVRpbWVDb25zdGFudHMgJiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgbWV0YTogQ29udGFpbmluZ01ldGFkYXRhLFxuICBbLCBleHByLCB0aGVuXTogUmVzb2x2ZUNvbXBvbmVudE9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KGlzR2V0RnJlZUNvbXBvbmVudChleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgY29tcG9uZW50IHdpdGggaW5jb3JyZWN0IG9wY29kZScpO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAoREVCVUcgJiYgZXhwclswXSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgdGhhdCB2YWx1ZSB3YXMgbm90IGluIHNjb3BlOiAke1xuICAgICAgICBtZXRhLnVwdmFycyFbZXhwclsxXV1cbiAgICAgIH1gXG4gICAgKTtcbiAgfVxuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzLCBvd25lciB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICB0aGVuKFxuICAgICAgY29uc3RhbnRzLmNvbXBvbmVudChcbiAgICAgICAgZGVmaW5pdGlvbiBhcyBvYmplY3QsXG4gICAgICAgIGV4cGVjdChvd25lciwgJ0JVRzogZXhwZWN0ZWQgb3duZXIgd2hlbiByZXNvbHZpbmcgY29tcG9uZW50IGRlZmluaXRpb24nKVxuICAgICAgKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpITtcblxuICAgIGlmIChERUJVRyAmJiAodHlwZW9mIGRlZmluaXRpb24gIT09ICdvYmplY3QnIHx8IGRlZmluaXRpb24gPT09IG51bGwpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBcXGAke25hbWV9XFxgLCB3aGljaCB3YXMgZXhwZWN0ZWQgdG8gYmUgYSBjb21wb25lbnQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZC5gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoZW4oY29uc3RhbnRzLnJlc29sdmVkQ29tcG9uZW50KGRlZmluaXRpb24sIG5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIChoZWxwZXIpXG4gKiAoaGVscGVyIGFyZylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgdGhlbl06IFJlc29sdmVIZWxwZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVIZWxwZXIoZXhwciksICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnKTtcblxuICBsZXQgdHlwZSA9IGV4cHJbMF07XG5cbiAgaWYgKHR5cGUgPT09IFNleHBPcGNvZGVzLkdldFRlbXBsYXRlU3ltYm9sKSB7XG4gICAgbGV0IHsgc2NvcGVWYWx1ZXMgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgdGhlbihjb25zdGFudHMuaGVscGVyKGRlZmluaXRpb24gYXMgb2JqZWN0KSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIHRoZW4oXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSwgcmVzb2x2ZXIsIG1ldGEsIGNvbnN0YW50cywgJ2hlbHBlcicpXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgICBsZXQgaGVscGVyID0gcmVzb2x2ZXIubG9va3VwSGVscGVyKG5hbWUsIG93bmVyISkhO1xuXG4gICAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgaGVscGVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5oZWxwZXIoaGVscGVyLCBuYW1lKSk7XG4gIH1cbn1cblxuLyoqXG4gKiA8ZGl2IHt7bW9kaWZpZXJ9fS8+XG4gKiA8ZGl2IHt7bW9kaWZpZXIgYXJnfX0vPlxuICogPEZvbyB7e21vZGlmaWVyfX0vPlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU1vZGlmaWVyKFxuICByZXNvbHZlcjogQ29tcGlsZVRpbWVSZXNvbHZlcixcbiAgY29uc3RhbnRzOiBDb21waWxlVGltZUNvbnN0YW50cyAmIFJlc29sdXRpb25UaW1lQ29uc3RhbnRzLFxuICBtZXRhOiBDb250YWluaW5nTWV0YWRhdGEsXG4gIFssIGV4cHIsIHRoZW5dOiBSZXNvbHZlTW9kaWZpZXJPcFxuKTogdm9pZCB7XG4gIGFzc2VydChpc0dldEZyZWVNb2RpZmllcihleHByKSwgJ0F0dGVtcHRlZCB0byByZXNvbHZlIGEgbW9kaWZpZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJyk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzIH0gPSBtZXRhO1xuICAgIGxldCBkZWZpbml0aW9uID0gZXhwZWN0KHNjb3BlVmFsdWVzLCAnQlVHOiBzY29wZVZhbHVlcyBtdXN0IGV4aXN0IGlmIHRlbXBsYXRlIHN5bWJvbCBpcyB1c2VkJylbXG4gICAgICBleHByWzFdXG4gICAgXTtcblxuICAgIHRoZW4oY29uc3RhbnRzLm1vZGlmaWVyKGRlZmluaXRpb24gYXMgb2JqZWN0KSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0U3RyaWN0RnJlZSkge1xuICAgIGxldCB7IHVwdmFycyB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBtb2RpZmllciA9IHJlc29sdmVyLmxvb2t1cEJ1aWx0SW5Nb2RpZmllcihuYW1lKTtcblxuICAgIGlmIChERUJVRyAmJiBtb2RpZmllciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBtb2RpZmllciBpbiBhIHN0cmljdCBtb2RlIHRlbXBsYXRlLCBidXQgaXQgd2FzIG5vdCBpbiBzY29wZTogJHtuYW1lfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhlbihjb25zdGFudHMubW9kaWZpZXIobW9kaWZpZXIhLCBuYW1lKSk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBtb2RpZmllciA9IHJlc29sdmVyLmxvb2t1cE1vZGlmaWVyKG5hbWUsIG93bmVyKSE7XG5cbiAgICBpZiAoREVCVUcgJiYgbW9kaWZpZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEF0dGVtcHRlZCB0byByZXNvbHZlIFxcYCR7bmFtZX1cXGAsIHdoaWNoIHdhcyBleHBlY3RlZCB0byBiZSBhIG1vZGlmaWVyLCBidXQgbm90aGluZyB3YXMgZm91bmQuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGVuKGNvbnN0YW50cy5tb2RpZmllcihtb2RpZmllciwgbmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICoge3tjb21wb25lbnQtb3ItaGVscGVyIGFyZ319XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ29tcG9uZW50T3JIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkNvbXBvbmVudCwgaWZIZWxwZXIgfV06IFJlc29sdmVDb21wb25lbnRPckhlbHBlck9wXG4pOiB2b2lkIHtcbiAgYXNzZXJ0KFxuICAgIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyKGV4cHIpLFxuICAgICdBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhIGNvbXBvbmVudCBvciBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJ1xuICApO1xuXG4gIGxldCB0eXBlID0gZXhwclswXTtcblxuICBpZiAodHlwZSA9PT0gU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wpIHtcbiAgICBsZXQgeyBzY29wZVZhbHVlcywgb3duZXIgfSA9IG1ldGE7XG4gICAgbGV0IGRlZmluaXRpb24gPSBleHBlY3Qoc2NvcGVWYWx1ZXMsICdCVUc6IHNjb3BlVmFsdWVzIG11c3QgZXhpc3QgaWYgdGVtcGxhdGUgc3ltYm9sIGlzIHVzZWQnKVtcbiAgICAgIGV4cHJbMV1cbiAgICBdO1xuXG4gICAgbGV0IGNvbXBvbmVudCA9IGNvbnN0YW50cy5jb21wb25lbnQoXG4gICAgICBkZWZpbml0aW9uIGFzIG9iamVjdCxcbiAgICAgIGV4cGVjdChvd25lciwgJ0JVRzogZXhwZWN0ZWQgb3duZXIgd2hlbiByZXNvbHZpbmcgY29tcG9uZW50IGRlZmluaXRpb24nKSxcbiAgICAgIHRydWVcbiAgICApO1xuXG4gICAgaWYgKGNvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgaGVscGVyID0gY29uc3RhbnRzLmhlbHBlcihkZWZpbml0aW9uIGFzIG9iamVjdCwgbnVsbCwgdHJ1ZSk7XG5cbiAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBdHRlbXB0ZWQgdG8gdXNlIGEgdmFsdWUgYXMgZWl0aGVyIGEgY29tcG9uZW50IG9yIGhlbHBlciwgYnV0IGl0IGRpZCBub3QgaGF2ZSBhIGNvbXBvbmVudCBtYW5hZ2VyIG9yIGhlbHBlciBtYW5hZ2VyIGFzc29jaWF0ZWQgd2l0aCBpdC4gVGhlIHZhbHVlIHdhczogJHtkZWJ1Z1RvU3RyaW5nIShcbiAgICAgICAgICBkZWZpbml0aW9uXG4gICAgICAgICl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZkhlbHBlcihleHBlY3QoaGVscGVyLCAnQlVHOiBoZWxwZXIgbXVzdCBleGlzdCcpKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgaWZIZWxwZXIoXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKFxuICAgICAgICBleHByIGFzIEV4cHJlc3Npb25zLkdldFN0cmljdEZyZWUsXG4gICAgICAgIHJlc29sdmVyLFxuICAgICAgICBtZXRhLFxuICAgICAgICBjb25zdGFudHMsXG4gICAgICAgICdjb21wb25lbnQgb3IgaGVscGVyJ1xuICAgICAgKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHsgdXB2YXJzLCBvd25lciB9ID0gYXNzZXJ0UmVzb2x2ZXJJbnZhcmlhbnRzKG1ldGEpO1xuXG4gICAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gICAgbGV0IGRlZmluaXRpb24gPSByZXNvbHZlci5sb29rdXBDb21wb25lbnQobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGRlZmluaXRpb24gIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbnN0YW50cy5yZXNvbHZlZENvbXBvbmVudChkZWZpbml0aW9uLCBuYW1lKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgaGVscGVyID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQXR0ZW1wdGVkIHRvIHJlc29sdmUgXFxgJHtuYW1lfVxcYCwgd2hpY2ggd2FzIGV4cGVjdGVkIHRvIGJlIGEgY29tcG9uZW50IG9yIGhlbHBlciwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kLmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIhLCBuYW1lKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogPEZvbyBAYXJnPXt7aGVscGVyfX0+XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3B0aW9uYWxIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkhlbHBlciB9XTogUmVzb2x2ZU9wdGlvbmFsSGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlT3B0aW9uYWxIZWxwZXIoZXhwcikgfHwgaXNHZXRGcmVlRGVwcmVjYXRlZEhlbHBlcihleHByKSxcbiAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYSBoZWxwZXIgd2l0aCBpbmNvcnJlY3Qgb3Bjb2RlJ1xuICApO1xuICBsZXQgeyB1cHZhcnMsIG93bmVyIH0gPSBhc3NlcnRSZXNvbHZlckludmFyaWFudHMobWV0YSk7XG5cbiAgbGV0IG5hbWUgPSB1cHZhcnNbZXhwclsxXV07XG4gIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gIGlmIChoZWxwZXIpIHtcbiAgICBpZkhlbHBlcihjb25zdGFudHMuaGVscGVyKGhlbHBlciwgbmFtZSksIG5hbWUsIG1ldGEubW9kdWxlTmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiB7e21heWJlSGVscGVyT3JDb21wb25lbnR9fVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIoXG4gIHJlc29sdmVyOiBDb21waWxlVGltZVJlc29sdmVyLFxuICBjb25zdGFudHM6IENvbXBpbGVUaW1lQ29uc3RhbnRzICYgUmVzb2x1dGlvblRpbWVDb25zdGFudHMsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgWywgZXhwciwgeyBpZkNvbXBvbmVudCwgaWZIZWxwZXIsIGlmVmFsdWUgfV06IFJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyT3Bcbik6IHZvaWQge1xuICBhc3NlcnQoXG4gICAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcihleHByKSxcbiAgICAnQXR0ZW1wdGVkIHRvIHJlc29sdmUgYW4gb3B0aW9uYWwgY29tcG9uZW50IG9yIGhlbHBlciB3aXRoIGluY29ycmVjdCBvcGNvZGUnXG4gICk7XG5cbiAgbGV0IHR5cGUgPSBleHByWzBdO1xuXG4gIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRUZW1wbGF0ZVN5bWJvbCkge1xuICAgIGxldCB7IHNjb3BlVmFsdWVzLCBvd25lciB9ID0gbWV0YTtcbiAgICBsZXQgZGVmaW5pdGlvbiA9IGV4cGVjdChzY29wZVZhbHVlcywgJ0JVRzogc2NvcGVWYWx1ZXMgbXVzdCBleGlzdCBpZiB0ZW1wbGF0ZSBzeW1ib2wgaXMgdXNlZCcpW1xuICAgICAgZXhwclsxXVxuICAgIF07XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgZGVmaW5pdGlvbiAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgKHR5cGVvZiBkZWZpbml0aW9uICE9PSAnb2JqZWN0JyB8fCBkZWZpbml0aW9uID09PSBudWxsKVxuICAgICkge1xuICAgICAgLy8gVGhlIHZhbHVlIGlzIG5vdCBhbiBvYmplY3QsIHNvIGl0IGNhbid0IGJlIGEgY29tcG9uZW50IG9yIGhlbHBlci5cbiAgICAgIGlmVmFsdWUoY29uc3RhbnRzLnZhbHVlKGRlZmluaXRpb24pKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY29tcG9uZW50ID0gY29uc3RhbnRzLmNvbXBvbmVudChcbiAgICAgIGRlZmluaXRpb24sXG4gICAgICBleHBlY3Qob3duZXIsICdCVUc6IGV4cGVjdGVkIG93bmVyIHdoZW4gcmVzb2x2aW5nIGNvbXBvbmVudCBkZWZpbml0aW9uJyksXG4gICAgICB0cnVlXG4gICAgKTtcblxuICAgIGlmIChjb21wb25lbnQgIT09IG51bGwpIHtcbiAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGhlbHBlciA9IGNvbnN0YW50cy5oZWxwZXIoZGVmaW5pdGlvbiwgbnVsbCwgdHJ1ZSk7XG5cbiAgICBpZiAoaGVscGVyICE9PSBudWxsKSB7XG4gICAgICBpZkhlbHBlcihoZWxwZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmVmFsdWUoY29uc3RhbnRzLnZhbHVlKGRlZmluaXRpb24pKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTZXhwT3Bjb2Rlcy5HZXRTdHJpY3RGcmVlKSB7XG4gICAgaWZIZWxwZXIoXG4gICAgICBsb29rdXBCdWlsdEluSGVscGVyKGV4cHIgYXMgRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSwgcmVzb2x2ZXIsIG1ldGEsIGNvbnN0YW50cywgJ3ZhbHVlJylcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxldCB7IHVwdmFycywgb3duZXIgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICAgIGxldCBuYW1lID0gdXB2YXJzW2V4cHJbMV1dO1xuICAgIGxldCBkZWZpbml0aW9uID0gcmVzb2x2ZXIubG9va3VwQ29tcG9uZW50KG5hbWUsIG93bmVyKTtcblxuICAgIGlmIChkZWZpbml0aW9uICE9PSBudWxsKSB7XG4gICAgICBpZkNvbXBvbmVudChjb25zdGFudHMucmVzb2x2ZWRDb21wb25lbnQoZGVmaW5pdGlvbiwgbmFtZSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWxwZXIgPSByZXNvbHZlci5sb29rdXBIZWxwZXIobmFtZSwgb3duZXIpO1xuXG4gICAgaWYgKGhlbHBlciAhPT0gbnVsbCkge1xuICAgICAgaWZIZWxwZXIoY29uc3RhbnRzLmhlbHBlcihoZWxwZXIsIG5hbWUpKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbG9va3VwQnVpbHRJbkhlbHBlcihcbiAgZXhwcjogRXhwcmVzc2lvbnMuR2V0U3RyaWN0RnJlZSxcbiAgcmVzb2x2ZXI6IENvbXBpbGVUaW1lUmVzb2x2ZXIsXG4gIG1ldGE6IENvbnRhaW5pbmdNZXRhZGF0YSxcbiAgY29uc3RhbnRzOiBSZXNvbHV0aW9uVGltZUNvbnN0YW50cyxcbiAgdHlwZTogc3RyaW5nXG4pOiBudW1iZXIge1xuICBsZXQgeyB1cHZhcnMgfSA9IGFzc2VydFJlc29sdmVySW52YXJpYW50cyhtZXRhKTtcblxuICBsZXQgbmFtZSA9IHVwdmFyc1tleHByWzFdXTtcbiAgbGV0IGhlbHBlciA9IHJlc29sdmVyLmxvb2t1cEJ1aWx0SW5IZWxwZXIobmFtZSk7XG5cbiAgaWYgKERFQlVHICYmIGhlbHBlciA9PT0gbnVsbCkge1xuICAgIC8vIEtleXdvcmQgaGVscGVyIGRpZCBub3QgZXhpc3QsIHdoaWNoIG1lYW5zIHRoYXQgd2UncmUgYXR0ZW1wdGluZyB0byB1c2UgYVxuICAgIC8vIHZhbHVlIG9mIHNvbWUga2luZCB0aGF0IGlzIG5vdCBpbiBzY29wZVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBBdHRlbXB0ZWQgdG8gcmVzb2x2ZSBhICR7dHlwZX0gaW4gYSBzdHJpY3QgbW9kZSB0ZW1wbGF0ZSwgYnV0IHRoYXQgdmFsdWUgd2FzIG5vdCBpbiBzY29wZTogJHtcbiAgICAgICAgbWV0YS51cHZhcnMhW2V4cHJbMV1dXG4gICAgICB9YFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gY29uc3RhbnRzLmhlbHBlcihoZWxwZXIhLCBuYW1lKTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -14,3 +14,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); }

import { Compilers } from './compilers';
import { DEBUG } from '@glimmer/env';
export var EXPRESSIONS = new Compilers();

@@ -95,21 +94,3 @@ EXPRESSIONS.add(29

, function (op, _ref7) {
var freeVar = _ref7[1],
path = _ref7[2];
op(1010
/* ResolveLocal */
, freeVar, function (name, moduleName) {
if (DEBUG) {
var propertyPath = path ? [name].concat(path).join('.') : name;
deprecate("The `" + propertyPath + "` property path was used in the `" + moduleName + "` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this." + propertyPath + "}}", false, {
id: 'this-property-fallback'
});
}
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
});
var path = _ref7[2];
withPath(op, path);

@@ -138,13 +119,2 @@ });

Call(op, handle, null, null);
},
ifFallback: function ifFallback(name, moduleName) {
deprecate("The `" + name + "` property was used in the `" + moduleName + "` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this." + name + "}}", false, {
id: 'this-property-fallback'
});
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
}

@@ -171,13 +141,2 @@ });

Call(op, handle, null, null);
},
ifFallback: function ifFallback(name, moduleName) {
deprecate("The `" + name + "` property was used in the `" + moduleName + "` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this." + name + "}}", false, {
id: 'this-property-fallback'
});
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
}

@@ -277,2 +236,2 @@ });

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQU9BLFNBQUEsR0FBQSxRQUFBLGFBQUE7QUFDQSxTQUFBLE1BQUEsRUFBQSxTQUFBLFFBQUEseUJBQUE7QUFDQSxTQUFBLElBQUEsUUFBQSxnQ0FBQTtBQUNBLFNBQUEsZUFBQSxRQUFBLHNDQUFBO0FBQ0EsU0FBQSxVQUFBLFFBQUEsa0NBQUE7QUFDQSxTQUFBLElBQUEsRUFBQSxXQUFBLEVBQUEsS0FBQSxFQUFBLHNCQUFBLFFBQUEsOEJBQUE7QUFDQSxTQUFBLFNBQUEsUUFBQSxhQUFBO0FBQ0EsU0FBQSxLQUFBLFFBQUEsY0FBQTtBQUVBLE9BQU8sSUFBTSxXQUFXLEdBQUcsSUFBcEIsU0FBb0IsRUFBcEI7QUFFUCxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFvQyxVQUFBLEVBQUEsUUFBa0I7QUFBQSxNQUFsQixLQUFrQjs7QUFDcEQsdURBQUEsS0FBQSx3Q0FBd0I7QUFBQSxRQUF4QixJQUF3QjtBQUN0QixJQUFBLElBQUksQ0FBQSxFQUFBLEVBQUosSUFBSSxDQUFKO0FBQ0Q7O0FBRUQsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLElBQVksS0FBSyxDQUFuQixNQUFFLENBQUY7QUFMRixDQUFBO0FBUUEsV0FBVyxDQUFYLEdBQUEsQ0FBZTtBQUFBO0FBQWYsRUFBa0MsVUFBQSxFQUFBLFNBQTBDO0FBQUEsTUFBckMsVUFBcUM7QUFBQSxNQUFyQyxVQUFxQztBQUFBLE1BQTFDLEtBQTBDOztBQUMxRSxNQUFJLGVBQWUsQ0FBbkIsVUFBbUIsQ0FBbkIsRUFBaUM7QUFDL0IsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQUEsVUFBQSxFQUF1RCxVQUFBLE1BQUQsRUFBbUI7QUFDekUsTUFBQSxJQUFJLENBQUEsRUFBQSxFQUFBLE1BQUEsRUFB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O0FBQ2hFLEVBQUEsSUFBSSxDQUFBLEVBQUEsRUFBSixVQUFJLENBQUo7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUZGLENBQUE7QUFLQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFpQyxVQUFBLEVBQUEsVUFBdUI7QUFBQSxNQUF2QixVQUF1QjtBQUN0RCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsVUFBVSxDQUFBLEVBQUEsRUFBQSxVQUFBLEVBQUEsSUFBQSxFQUFWLEtBQVUsQ0FBVjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBRixHQUFFLENBQUY7QUFMRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRXhwcmVzc2lvblNleHBPcGNvZGUsXG4gIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUsXG4gIE1hY2hpbmVPcCxcbiAgT3AsXG4gIFNleHBPcGNvZGVzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICR2MCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IGFzc2VydCwgZGVwcmVjYXRlIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvZXhwcic7XG5pbXBvcnQgeyBpc0dldEZyZWVIZWxwZXIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgU2ltcGxlQXJncyB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcbmltcG9ydCB7IENhbGwsIENhbGxEeW5hbWljLCBDdXJyeSwgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZSB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvdm0nO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoRXhwcmVzc2lvbk9wIH0gZnJvbSAnLi9jb21waWxlcnMnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuXG5leHBvcnQgY29uc3QgRVhQUkVTU0lPTlMgPSBuZXcgQ29tcGlsZXJzPFB1c2hFeHByZXNzaW9uT3AsIEV4cHJlc3Npb25TZXhwT3Bjb2RlPigpO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ29uY2F0LCAob3AsIFssIHBhcnRzXSkgPT4ge1xuICBmb3IgKGxldCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgZXhwcihvcCwgcGFydCk7XG4gIH1cblxuICBvcChPcC5Db25jYXQsIHBhcnRzLmxlbmd0aCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkNhbGwsIChvcCwgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVIZWxwZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgQ2FsbChvcCwgaGFuZGxlLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgQ2FsbER5bmFtaWMob3AsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgfVxufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5DdXJyeSwgKG9wLCBbLCBleHByLCB0eXBlLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgQ3Vycnkob3AsIHR5cGUsIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3ltYm9sLCAob3AsIFssIHN5bSwgcGF0aF0pID0+IHtcbiAgb3AoT3AuR2V0VmFyaWFibGUsIHN5bSk7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVUZW1wbGF0ZUxvY2FsLCBzeW0sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgIG9wKE9wLkNvbnN0YW50UmVmZXJlbmNlLCBoYW5kbGUpO1xuICAgIHdpdGhQYXRoKG9wLCBwYXRoKTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUsIChvcCwgWywgc3ltLCBfcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlRnJlZSwgc3ltLCAoX2hhbmRsZTogdW5rbm93bikgPT4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBzdHJpY3QgbW9kZVxuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzRmFsbGJhY2ssIChvcCwgWywgZnJlZVZhciwgcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGZyZWVWYXIsIChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgIGlmIChERUJVRykge1xuICAgICAgbGV0IHByb3BlcnR5UGF0aCA9IHBhdGggPyBbbmFtZSwgLi4ucGF0aF0uam9pbignLicpIDogbmFtZTtcblxuICAgICAgZGVwcmVjYXRlKFxuICAgICAgICBgVGhlIFxcYCR7cHJvcGVydHlQYXRofVxcYCBwcm9wZXJ0eSBwYXRoIHdhcyB1c2VkIGluIHRoZSBcXGAke21vZHVsZU5hbWV9XFxgIHRlbXBsYXRlIHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke3Byb3BlcnR5UGF0aH19fWAsXG4gICAgICAgIGZhbHNlLFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICB9KTtcbiAgd2l0aFBhdGgob3AsIHBhdGgpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNDb21wb25lbnRPckhlbHBlckhlYWRPclRoaXNGYWxsYmFjaywgKCkgPT4ge1xuICAvLyBUT0RPOiBUaGUgbG9naWMgZm9yIHRoaXMgb3Bjb2RlIGN1cnJlbnRseSBleGlzdHMgaW4gU1RBVEVNRU5UUy5BcHBlbmQsIHNpbmNlXG4gIC8vIHdlIHdhbnQgZGlmZmVyZW50IHdyYXBwaW5nIGxvZ2ljIGRlcGVuZGluZyBvbiBpZiB3ZSBhcmUgaW52b2tpbmcgYSBjb21wb25lbnQsXG4gIC8vIGhlbHBlciwgb3Ige3t0aGlzfX0gZmFsbGJhY2suIEV2ZW50dWFsbHkgd2UgZml4IHRoZSBvcGNvZGVzIHNvIHRoYXQgd2UgY2FuXG4gIC8vIHRyYXZlcnNlIHRoZSBzdWJleHByZXNzaW9uIHRyZWUgbGlrZSBub3JtYWwgaW4gdGhpcyBsb2NhdGlvbi5cbiAgdGhyb3cgbmV3IEVycm9yKCd1bmltcGxlbWVudGVkIG9wY29kZScpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5HZXRGcmVlQXNIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8ZGl2IGlkPXt7YmF6fX0+XG5cbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIGV4cHJbMV0sIChfbmFtZTogc3RyaW5nKSA9PiB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlT3B0aW9uYWxIZWxwZXIsIGV4cHIsIHtcbiAgICAgIGlmSGVscGVyOiAoaGFuZGxlOiBudW1iZXIpID0+IHtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2s6IChuYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgYFRoZSBcXGAke25hbWV9XFxgIHByb3BlcnR5IHdhcyB1c2VkIGluIHRoZSBcXGAke21vZHVsZU5hbWV9XFxgIHRlbXBsYXRlIHdpdGhvdXQgdXNpbmcgXFxgdGhpc1xcYC4gVGhpcyBmYWxsYmFjayBiZWhhdmlvciBoYXMgYmVlbiBkZXByZWNhdGVkLCBhbGwgcHJvcGVydGllcyBtdXN0IGJlIGxvb2tlZCB1cCBvbiBcXGB0aGlzXFxgIHdoZW4gdXNlZCBpbiB0aGUgdGVtcGxhdGU6IHt7dGhpcy4ke25hbWV9fX1gLFxuICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAndGhpcy1wcm9wZXJ0eS1mYWxsYmFjaycsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIG9wKE9wLkdldFZhcmlhYmxlLCAwKTtcbiAgICAgICAgb3AoT3AuR2V0UHJvcGVydHksIG5hbWUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8Rm9vIEBiYXI9e3tiYXp9fT5cblxuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZXhwclsxXSwgKF9uYW1lOiBzdHJpbmcpID0+IHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbEhlbHBlciwgZXhwciwge1xuICAgICAgaWZIZWxwZXI6IChoYW5kbGU6IG51bWJlciwgbmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgYXNzZXJ0KGV4cHJbMl0gJiYgZXhwclsyXS5sZW5ndGggPT09IDEsICdbQlVHXSBNaXNzaW5nIGFyZ3VtZW50IG5hbWUnKTtcblxuICAgICAgICBsZXQgYXJnID0gZXhwclsyXVswXTtcblxuICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgYFRoZSBcXGAke25hbWV9XFxgIGhlbHBlciB3YXMgdXNlZCBpbiB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCB0ZW1wbGF0ZSBhcyBcXGAke2FyZ309e3ske25hbWV9fX1cXGAuIGAgK1xuICAgICAgICAgICAgYFRoaXMgaXMgYW1iaWdpb3VzIGJldHdlZW4gd2FudGluZyB0aGUgXFxgJHthcmd9XFxgIGFyZ3VtZW50IHRvIGJlIHRoZSBcXGAke25hbWV9XFxgIGhlbHBlciBpdHNlbGYsIGAgK1xuICAgICAgICAgICAgYG9yIHRoZSByZXN1bHQgb2YgaW52b2tpbmcgdGhlIFxcYCR7bmFtZX1cXGAgaGVscGVyIChjdXJyZW50IGJlaGF2aW9yKS4gYCArXG4gICAgICAgICAgICBgVGhpcyBpbXBsaWNpdCBpbnZvY2F0aW9uIGJlaGF2aW9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQuXFxuXFxuYCArXG4gICAgICAgICAgICBgSW5zdGVhZCwgcGxlYXNlIGV4cGxpY2l0bHkgaW52b2tlIHRoZSBoZWxwZXIgd2l0aCBwYXJlbnRoZXNpcywgaS5lLiBcXGAke2FyZ309e3soJHtuYW1lfSl9fVxcYC5cXG5cXG5gICtcbiAgICAgICAgICAgIGBOb3RlOiB0aGUgcGFyZW50aGVzaXMgYXJlIG9ubHkgcmVxdWlyZWQgaW4gdGhpcyBleGFjdCBzY2VuYXJpbyB3aGVyZSBhbiBhbWJpZ3VpdHkgaXMgcHJlc2VudCDigJMgd2hlcmUgYCArXG4gICAgICAgICAgICBgXFxgJHtuYW1lfVxcYCByZWZlcmVzIHRvIGEgZ2xvYmFsIGhlbHBlciAoYXMgb3Bwb3NlZCB0byBhIGxvY2FsIHZhcmlhYmxlKSwgQU5EIGAgK1xuICAgICAgICAgICAgYHRoZSBcXGAke25hbWV9XFxgIGhlbHBlciBpbnZvY2F0aW9uIGRvZXMgbm90IHRha2UgYW55IGFyZ3VtZW50cywgQU5EIGAgK1xuICAgICAgICAgICAgYHRoaXMgb2NjdXJzIGluIGEgbmFtZWQgYXJndW1lbnQgcG9zaXRpb24gb2YgYSBjb21wb25lbnQgaW52b2NhdGlvbi5cXG5cXG5gICtcbiAgICAgICAgICAgIGBXZSBleHBlY3QgdGhpcyBjb21iaW5hdGlvbiB0byBiZSBxdWl0ZSByYXJlLCBhcyBtb3N0IGhlbHBlcnMgcmVxdWlyZSBhdCBsZWFzdCBvbmUgYXJndW1lbnQuIGAgK1xuICAgICAgICAgICAgYFRoZXJlIGlzIG5vIG5lZWQgdG8gcmVmYWN0b3IgaGVscGVyIGludm9jYXRpb25zIGluIGNhc2VzIHdoZXJlIHRoaXMgZGVwcmVjYXRpb24gd2FzIG5vdCB0cmlnZ2VyZWQuYCxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2FyZ3VtZW50LWxlc3MtaGVscGVyLXBhcmVuLWxlc3MtaW52b2NhdGlvbicsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIENhbGwob3AsIGhhbmRsZSwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkZhbGxiYWNrOiAobmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgZGVwcmVjYXRlKFxuICAgICAgICAgIGBUaGUgXFxgJHtuYW1lfVxcYCBwcm9wZXJ0eSB3YXMgdXNlZCBpbiB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCB0ZW1wbGF0ZSB3aXRob3V0IHVzaW5nIFxcYHRoaXNcXGAuIFRoaXMgZmFsbGJhY2sgYmVoYXZpb3IgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYWxsIHByb3BlcnRpZXMgbXVzdCBiZSBsb29rZWQgdXAgb24gXFxgdGhpc1xcYCB3aGVuIHVzZWQgaW4gdGhlIHRlbXBsYXRlOiB7e3RoaXMuJHtuYW1lfX19YCxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ3RoaXMtcHJvcGVydHktZmFsbGJhY2snLFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBvcChPcC5HZXRWYXJpYWJsZSwgMCk7XG4gICAgICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmZ1bmN0aW9uIHdpdGhQYXRoKG9wOiBQdXNoRXhwcmVzc2lvbk9wLCBwYXRoPzogc3RyaW5nW10pIHtcbiAgaWYgKHBhdGggPT09IHVuZGVmaW5lZCB8fCBwYXRoLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aC5sZW5ndGg7IGkrKykge1xuICAgIG9wKE9wLkdldFByb3BlcnR5LCBwYXRoW2ldKTtcbiAgfVxufVxuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuVW5kZWZpbmVkLCAob3ApID0+IFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCkpO1xuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkhhc0Jsb2NrLCAob3AsIFssIGJsb2NrXSkgPT4ge1xuICBleHByKG9wLCBibG9jayk7XG4gIG9wKE9wLkhhc0Jsb2NrKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuSGFzQmxvY2tQYXJhbXMsIChvcCwgWywgYmxvY2tdKSA9PiB7XG4gIGV4cHIob3AsIGJsb2NrKTtcbiAgb3AoT3AuU3ByZWFkQmxvY2spO1xuICBvcChPcC5Db21waWxlQmxvY2spO1xuICBvcChPcC5IYXNCbG9ja1BhcmFtcyk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLklmSW5saW5lLCAob3AsIFssIGNvbmRpdGlvbiwgdHJ1dGh5LCBmYWxzeV0pID0+IHtcbiAgLy8gUHVzaCBpbiByZXZlcnNlIG9yZGVyXG4gIGV4cHIob3AsIGZhbHN5KTtcbiAgZXhwcihvcCwgdHJ1dGh5KTtcbiAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgb3AoT3AuSWZJbmxpbmUpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Ob3QsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIGV4cHIob3AsIHZhbHVlKTtcbiAgb3AoT3AuTm90KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RHluYW1pY1ZhciwgKG9wLCBbLCBleHByZXNzaW9uXSkgPT4ge1xuICBleHByKG9wLCBleHByZXNzaW9uKTtcbiAgb3AoT3AuR2V0RHluYW1pY1Zhcik7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkxvZywgKG9wLCBbLCBwb3NpdGlvbmFsXSkgPT4ge1xuICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgU2ltcGxlQXJncyhvcCwgcG9zaXRpb25hbCwgbnVsbCwgZmFsc2UpO1xuICBvcChPcC5Mb2cpO1xuICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICBvcChPcC5GZXRjaCwgJHYwKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L2V4cHJlc3Npb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQU9BLFNBQUEsR0FBQSxRQUFBLGFBQUE7QUFDQSxTQUFBLE1BQUEsRUFBQSxTQUFBLFFBQUEseUJBQUE7QUFDQSxTQUFBLElBQUEsUUFBQSxnQ0FBQTtBQUNBLFNBQUEsZUFBQSxRQUFBLHNDQUFBO0FBQ0EsU0FBQSxVQUFBLFFBQUEsa0NBQUE7QUFDQSxTQUFBLElBQUEsRUFBQSxXQUFBLEVBQUEsS0FBQSxFQUFBLHNCQUFBLFFBQUEsOEJBQUE7QUFDQSxTQUFBLFNBQUEsUUFBQSxhQUFBO0FBRUEsT0FBTyxJQUFNLFdBQVcsR0FBRyxJQUFwQixTQUFvQixFQUFwQjtBQUVQLFdBQVcsQ0FBWCxHQUFBLENBQWU7QUFBQTtBQUFmLEVBQW9DLFVBQUEsRUFBQSxRQUFrQjtBQUFBLE1BQWxCLEtBQWtCOztBQUNwRCx1REFBQSxLQUFBLHdDQUF3QjtBQUFBLFFBQXhCLElBQXdCO0FBQ3RCLElBQUEsSUFBSSxDQUFBLEVBQUEsRUFBSixJQUFJLENBQUo7QUFDRDs7QUFFRCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBWSxLQUFLLENBQW5CLE1BQUUsQ0FBRjtBQUxGLENBQUE7QUFRQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFrQyxVQUFBLEVBQUEsU0FBMEM7QUFBQSxNQUFyQyxVQUFxQztBQUFBLE1BQXJDLFVBQXFDO0FBQUEsTUFBMUMsS0FBMEM7O0FBQzFFLE1BQUksZUFBZSxDQUFuQixVQUFtQixDQUFuQixFQUFpQztBQUMvQixJQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsTUFBQSxVQUFBLEVBQXVELFVBQUEsTUFBRCxFQUFtQjtBQUN6RSxNQUFBLElBQUksQ0FBQSxFQUFBLEVBQUEsTUFBQSxFQUFBLFVBQUEsRUFBSixLQUFJLENBQUo7QUFE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LENBQUo7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUZGLENBQUE7QUFLQSxXQUFXLENBQVgsR0FBQSxDQUFlO0FBQUE7QUFBZixFQUFpQyxVQUFBLEVBQUEsVUFBdUI7QUFBQSxNQUF2QixVQUF1QjtBQUN0RCxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsR0FBRjtBQUNBLEVBQUEsVUFBVSxDQUFBLEVBQUEsRUFBQSxVQUFBLEVBQUEsSUFBQSxFQUFWLEtBQVUsQ0FBVjtBQUNBLEVBQUEsRUFBRSxDQUFBO0FBQUE7QUFBQSxHQUFGO0FBQ0EsRUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLEdBQUY7QUFDQSxFQUFBLEVBQUUsQ0FBQTtBQUFBO0FBQUEsSUFBRixHQUFFLENBQUY7QUFMRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRXhwcmVzc2lvblNleHBPcGNvZGUsXG4gIEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUsXG4gIE1hY2hpbmVPcCxcbiAgT3AsXG4gIFNleHBPcGNvZGVzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICR2MCB9IGZyb20gJ0BnbGltbWVyL3ZtJztcbmltcG9ydCB7IGFzc2VydCwgZGVwcmVjYXRlIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuaW1wb3J0IHsgZXhwciB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvZXhwcic7XG5pbXBvcnQgeyBpc0dldEZyZWVIZWxwZXIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3Jlc29sdXRpb24nO1xuaW1wb3J0IHsgU2ltcGxlQXJncyB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvc2hhcmVkJztcbmltcG9ydCB7IENhbGwsIENhbGxEeW5hbWljLCBDdXJyeSwgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZSB9IGZyb20gJy4uL29wY29kZS1idWlsZGVyL2hlbHBlcnMvdm0nO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoRXhwcmVzc2lvbk9wIH0gZnJvbSAnLi9jb21waWxlcnMnO1xuXG5leHBvcnQgY29uc3QgRVhQUkVTU0lPTlMgPSBuZXcgQ29tcGlsZXJzPFB1c2hFeHByZXNzaW9uT3AsIEV4cHJlc3Npb25TZXhwT3Bjb2RlPigpO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuQ29uY2F0LCAob3AsIFssIHBhcnRzXSkgPT4ge1xuICBmb3IgKGxldCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgZXhwcihvcCwgcGFydCk7XG4gIH1cblxuICBvcChPcC5Db25jYXQsIHBhcnRzLmxlbmd0aCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkNhbGwsIChvcCwgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVIZWxwZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgQ2FsbChvcCwgaGFuZGxlLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgQ2FsbER5bmFtaWMob3AsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbiAgfVxufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5DdXJyeSwgKG9wLCBbLCBleHByLCB0eXBlLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgQ3Vycnkob3AsIHR5cGUsIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0U3ltYm9sLCAob3AsIFssIHN5bSwgcGF0aF0pID0+IHtcbiAgb3AoT3AuR2V0VmFyaWFibGUsIHN5bSk7XG4gIHdpdGhQYXRoKG9wLCBwYXRoKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0VGVtcGxhdGVTeW1ib2wsIChvcCwgWywgc3ltLCBwYXRoXSkgPT4ge1xuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVUZW1wbGF0ZUxvY2FsLCBzeW0sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgIG9wKE9wLkNvbnN0YW50UmVmZXJlbmNlLCBoYW5kbGUpO1xuICAgIHdpdGhQYXRoKG9wLCBwYXRoKTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldFN0cmljdEZyZWUsIChvcCwgWywgc3ltLCBfcGF0aF0pID0+IHtcbiAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlRnJlZSwgc3ltLCAoX2hhbmRsZTogdW5rbm93bikgPT4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBzdHJpY3QgbW9kZVxuICB9KTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuR2V0RnJlZUFzRmFsbGJhY2ssIChvcCwgWywgLCBwYXRoXSkgPT4ge1xuICB3aXRoUGF0aChvcCwgcGF0aCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldEZyZWVBc0NvbXBvbmVudE9ySGVscGVySGVhZE9yVGhpc0ZhbGxiYWNrLCAoKSA9PiB7XG4gIC8vIFRPRE86IFRoZSBsb2dpYyBmb3IgdGhpcyBvcGNvZGUgY3VycmVudGx5IGV4aXN0cyBpbiBTVEFURU1FTlRTLkFwcGVuZCwgc2luY2VcbiAgLy8gd2Ugd2FudCBkaWZmZXJlbnQgd3JhcHBpbmcgbG9naWMgZGVwZW5kaW5nIG9uIGlmIHdlIGFyZSBpbnZva2luZyBhIGNvbXBvbmVudCxcbiAgLy8gaGVscGVyLCBvciB7e3RoaXN9fSBmYWxsYmFjay4gRXZlbnR1YWxseSB3ZSBmaXggdGhlIG9wY29kZXMgc28gdGhhdCB3ZSBjYW5cbiAgLy8gdHJhdmVyc2UgdGhlIHN1YmV4cHJlc3Npb24gdHJlZSBsaWtlIG5vcm1hbCBpbiB0aGlzIGxvY2F0aW9uLlxuICB0aHJvdyBuZXcgRXJyb3IoJ3VuaW1wbGVtZW50ZWQgb3Bjb2RlJyk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldEZyZWVBc0hlbHBlckhlYWRPclRoaXNGYWxsYmFjaywgKG9wLCBleHByKSA9PiB7XG4gIC8vIDxkaXYgaWQ9e3tiYXp9fT5cblxuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZXhwclsxXSwgKF9uYW1lOiBzdHJpbmcpID0+IHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbEhlbHBlciwgZXhwciwge1xuICAgICAgaWZIZWxwZXI6IChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIG51bGwsIG51bGwpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldEZyZWVBc0RlcHJlY2F0ZWRIZWxwZXJIZWFkT3JUaGlzRmFsbGJhY2ssIChvcCwgZXhwcikgPT4ge1xuICAvLyA8Rm9vIEBiYXI9e3tiYXp9fT5cblxuICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVMb2NhbCwgZXhwclsxXSwgKF9uYW1lOiBzdHJpbmcpID0+IHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbEhlbHBlciwgZXhwciwge1xuICAgICAgaWZIZWxwZXI6IChoYW5kbGU6IG51bWJlciwgbmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgYXNzZXJ0KGV4cHJbMl0gJiYgZXhwclsyXS5sZW5ndGggPT09IDEsICdbQlVHXSBNaXNzaW5nIGFyZ3VtZW50IG5hbWUnKTtcblxuICAgICAgICBsZXQgYXJnID0gZXhwclsyXVswXTtcblxuICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgYFRoZSBcXGAke25hbWV9XFxgIGhlbHBlciB3YXMgdXNlZCBpbiB0aGUgXFxgJHttb2R1bGVOYW1lfVxcYCB0ZW1wbGF0ZSBhcyBcXGAke2FyZ309e3ske25hbWV9fX1cXGAuIGAgK1xuICAgICAgICAgICAgYFRoaXMgaXMgYW1iaWdpb3VzIGJldHdlZW4gd2FudGluZyB0aGUgXFxgJHthcmd9XFxgIGFyZ3VtZW50IHRvIGJlIHRoZSBcXGAke25hbWV9XFxgIGhlbHBlciBpdHNlbGYsIGAgK1xuICAgICAgICAgICAgYG9yIHRoZSByZXN1bHQgb2YgaW52b2tpbmcgdGhlIFxcYCR7bmFtZX1cXGAgaGVscGVyIChjdXJyZW50IGJlaGF2aW9yKS4gYCArXG4gICAgICAgICAgICBgVGhpcyBpbXBsaWNpdCBpbnZvY2F0aW9uIGJlaGF2aW9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQuXFxuXFxuYCArXG4gICAgICAgICAgICBgSW5zdGVhZCwgcGxlYXNlIGV4cGxpY2l0bHkgaW52b2tlIHRoZSBoZWxwZXIgd2l0aCBwYXJlbnRoZXNpcywgaS5lLiBcXGAke2FyZ309e3soJHtuYW1lfSl9fVxcYC5cXG5cXG5gICtcbiAgICAgICAgICAgIGBOb3RlOiB0aGUgcGFyZW50aGVzaXMgYXJlIG9ubHkgcmVxdWlyZWQgaW4gdGhpcyBleGFjdCBzY2VuYXJpbyB3aGVyZSBhbiBhbWJpZ3VpdHkgaXMgcHJlc2VudCDigJMgd2hlcmUgYCArXG4gICAgICAgICAgICBgXFxgJHtuYW1lfVxcYCByZWZlcmVzIHRvIGEgZ2xvYmFsIGhlbHBlciAoYXMgb3Bwb3NlZCB0byBhIGxvY2FsIHZhcmlhYmxlKSwgQU5EIGAgK1xuICAgICAgICAgICAgYHRoZSBcXGAke25hbWV9XFxgIGhlbHBlciBpbnZvY2F0aW9uIGRvZXMgbm90IHRha2UgYW55IGFyZ3VtZW50cywgQU5EIGAgK1xuICAgICAgICAgICAgYHRoaXMgb2NjdXJzIGluIGEgbmFtZWQgYXJndW1lbnQgcG9zaXRpb24gb2YgYSBjb21wb25lbnQgaW52b2NhdGlvbi5cXG5cXG5gICtcbiAgICAgICAgICAgIGBXZSBleHBlY3QgdGhpcyBjb21iaW5hdGlvbiB0byBiZSBxdWl0ZSByYXJlLCBhcyBtb3N0IGhlbHBlcnMgcmVxdWlyZSBhdCBsZWFzdCBvbmUgYXJndW1lbnQuIGAgK1xuICAgICAgICAgICAgYFRoZXJlIGlzIG5vIG5lZWQgdG8gcmVmYWN0b3IgaGVscGVyIGludm9jYXRpb25zIGluIGNhc2VzIHdoZXJlIHRoaXMgZGVwcmVjYXRpb24gd2FzIG5vdCB0cmlnZ2VyZWQuYCxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ2FyZ3VtZW50LWxlc3MtaGVscGVyLXBhcmVuLWxlc3MtaW52b2NhdGlvbicsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIENhbGwob3AsIGhhbmRsZSwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5mdW5jdGlvbiB3aXRoUGF0aChvcDogUHVzaEV4cHJlc3Npb25PcCwgcGF0aD86IHN0cmluZ1tdKSB7XG4gIGlmIChwYXRoID09PSB1bmRlZmluZWQgfHwgcGF0aC5sZW5ndGggPT09IDApIHJldHVybjtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICBvcChPcC5HZXRQcm9wZXJ0eSwgcGF0aFtpXSk7XG4gIH1cbn1cblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLlVuZGVmaW5lZCwgKG9wKSA9PiBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wLCB1bmRlZmluZWQpKTtcbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5IYXNCbG9jaywgKG9wLCBbLCBibG9ja10pID0+IHtcbiAgZXhwcihvcCwgYmxvY2spO1xuICBvcChPcC5IYXNCbG9jayk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkhhc0Jsb2NrUGFyYW1zLCAob3AsIFssIGJsb2NrXSkgPT4ge1xuICBleHByKG9wLCBibG9jayk7XG4gIG9wKE9wLlNwcmVhZEJsb2NrKTtcbiAgb3AoT3AuQ29tcGlsZUJsb2NrKTtcbiAgb3AoT3AuSGFzQmxvY2tQYXJhbXMpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5JZklubGluZSwgKG9wLCBbLCBjb25kaXRpb24sIHRydXRoeSwgZmFsc3ldKSA9PiB7XG4gIC8vIFB1c2ggaW4gcmV2ZXJzZSBvcmRlclxuICBleHByKG9wLCBmYWxzeSk7XG4gIGV4cHIob3AsIHRydXRoeSk7XG4gIGV4cHIob3AsIGNvbmRpdGlvbik7XG4gIG9wKE9wLklmSW5saW5lKTtcbn0pO1xuXG5FWFBSRVNTSU9OUy5hZGQoU2V4cE9wY29kZXMuTm90LCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLk5vdCk7XG59KTtcblxuRVhQUkVTU0lPTlMuYWRkKFNleHBPcGNvZGVzLkdldER5bmFtaWNWYXIsIChvcCwgWywgZXhwcmVzc2lvbl0pID0+IHtcbiAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gIG9wKE9wLkdldER5bmFtaWNWYXIpO1xufSk7XG5cbkVYUFJFU1NJT05TLmFkZChTZXhwT3Bjb2Rlcy5Mb2csIChvcCwgWywgcG9zaXRpb25hbF0pID0+IHtcbiAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG51bGwsIGZhbHNlKTtcbiAgb3AoT3AuTG9nKTtcbiAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgb3AoT3AuRmV0Y2gsICR2MCk7XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -1,2 +0,1 @@

import { deprecate } from '@glimmer/global-context';
import { $fp, $sp } from '@glimmer/vm';

@@ -185,30 +184,7 @@ import { InvokeStaticBlock, InvokeStaticBlockWithStack, YieldBlock } from '../opcode-builder/helpers/blocks';

});
STATEMENTS.add(19
/* Partial */
, function (op, _ref11) {
var name = _ref11[1],
evalInfo = _ref11[2];
ReplayableIf(op, function () {
expr(op, name);
op(33
/* Dup */
, $sp, 0);
return 2;
}, function () {
op(101
/* InvokePartial */
, evalSymbolsOperand(), evalInfo);
op(40
/* PopScope */
);
op(1
/* PopFrame */
);
});
});
STATEMENTS.add(18
/* Yield */
, function (op, _ref12) {
var to = _ref12[1],
params = _ref12[2];
, function (op, _ref11) {
var to = _ref11[1],
params = _ref11[2];
return YieldBlock(op, to, params);

@@ -218,4 +194,4 @@ });

/* AttrSplat */
, function (op, _ref13) {
var to = _ref13[1];
, function (op, _ref12) {
var to = _ref12[1];
return YieldBlock(op, to, null);

@@ -225,4 +201,4 @@ });

/* Debugger */
, function (op, _ref14) {
var evalInfo = _ref14[1];
, function (op, _ref13) {
var evalInfo = _ref13[1];
return op(103

@@ -234,4 +210,4 @@ /* Debugger */

/* Append */
, function (op, _ref15) {
var value = _ref15[1];
, function (op, _ref14) {
var value = _ref14[1];

@@ -275,26 +251,2 @@ // Special case for static values

);
},
ifFallback: function ifFallback(_name) {
op(0
/* PushFrame */
);
op(1010
/* ResolveLocal */
, value[1], function (name, moduleName) {
deprecate("The `" + name + "` property was used in the `" + moduleName + "` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this." + name + "}}", false, {
id: 'this-property-fallback'
});
op(21
/* GetVariable */
, 0);
op(22
/* GetProperty */
, name);
});
op(3
/* InvokeStatic */
, stdlibOperand('cautious-append'));
op(1
/* PopFrame */
);
}

@@ -380,4 +332,4 @@ });

/* TrustingAppend */
, function (op, _ref16) {
var value = _ref16[1];
, function (op, _ref15) {
var value = _ref15[1];

@@ -403,7 +355,7 @@ if (!Array.isArray(value)) {

/* Block */
, function (op, _ref17) {
var expr = _ref17[1],
positional = _ref17[2],
named = _ref17[3],
blocks = _ref17[4];
, function (op, _ref16) {
var expr = _ref16[1],
positional = _ref16[2],
named = _ref16[3],
blocks = _ref16[4];

@@ -422,7 +374,7 @@ if (isGetFreeComponent(expr)) {

/* InElement */
, function (op, _ref18) {
var block = _ref18[1],
guid = _ref18[2],
destination = _ref18[3],
insertBefore = _ref18[4];
, function (op, _ref17) {
var block = _ref17[1],
guid = _ref17[2],
destination = _ref17[3],
insertBefore = _ref17[4];
ReplayableIf(op, function () {

@@ -454,6 +406,6 @@ expr(op, guid);

/* If */
, function (op, _ref19) {
var condition = _ref19[1],
block = _ref19[2],
inverse = _ref19[3];
, function (op, _ref18) {
var condition = _ref18[1],
block = _ref18[2],
inverse = _ref18[3];
return ReplayableIf(op, function () {

@@ -473,7 +425,7 @@ expr(op, condition);

/* Each */
, function (op, _ref20) {
var value = _ref20[1],
key = _ref20[2],
block = _ref20[3],
inverse = _ref20[4];
, function (op, _ref19) {
var value = _ref19[1],
key = _ref19[2],
block = _ref19[3],
inverse = _ref19[4];
return Replayable(op, function () {

@@ -540,6 +492,6 @@ if (key) {

/* With */
, function (op, _ref21) {
var value = _ref21[1],
block = _ref21[2],
inverse = _ref21[3];
, function (op, _ref20) {
var value = _ref20[1],
block = _ref20[2],
inverse = _ref20[3];
ReplayableIf(op, function () {

@@ -564,5 +516,5 @@ expr(op, value);

/* Let */
, function (op, _ref22) {
var positional = _ref22[1],
block = _ref22[2];
, function (op, _ref21) {
var positional = _ref21[1],
block = _ref21[2];
var count = CompilePositional(op, positional);

@@ -573,5 +525,5 @@ InvokeStaticBlockWithStack(op, block, count);

/* WithDynamicVars */
, function (op, _ref23) {
var named = _ref23[1],
block = _ref23[2];
, function (op, _ref22) {
var named = _ref22[1],
block = _ref22[2];

@@ -591,7 +543,7 @@ if (named) {

/* InvokeComponent */
, function (op, _ref24) {
var expr = _ref24[1],
positional = _ref24[2],
named = _ref24[3],
blocks = _ref24[4];
, function (op, _ref23) {
var expr = _ref23[1],
positional = _ref23[2],
named = _ref23[3],
blocks = _ref23[4];

@@ -616,2 +568,2 @@ if (isGetFreeComponent(expr)) {

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBQSxTQUFBLFFBQUEseUJBQUE7QUFjQSxTQUFBLEdBQUEsRUFBQSxHQUFBLFFBQUEsYUFBQTtBQUNBLFNBQUEsaUJBQUEsRUFBQSwwQkFBQSxFQUFBLFVBQUEsUUFBQSxrQ0FBQTtBQUtBLFNBQUEsZUFBQSxFQUFBLHNCQUFBLEVBQUEsd0JBQUEsUUFBQSxzQ0FBQTtBQUtBLFNBQUEsV0FBQSxFQUFBLFVBQUEsRUFBQSxZQUFBLFFBQUEsdUNBQUE7QUFDQSxTQUFBLElBQUEsUUFBQSxnQ0FBQTtBQUNBLFNBQUEsaUJBQUEsRUFBQSxVQUFBLFFBQUEsa0NBQUE7QUFDQSxTQUFBLElBQUEsRUFBQSxXQUFBLEVBQUEsWUFBQSxFQUFBLHNCQUFBLFFBQUEsOEJBQUE7QUFNQSxTQUFBLGtCQUFBLEVBQUEsWUFBQSxFQUFBLGFBQUEsUUFBQSw0QkFBQTtBQUNBLFNBQUEsU0FBQSxRQUFBLGFBQUE7QUFDQSxTQUFBLGtCQUFBLEVBQUEsMEJBQUEsRUFBQSxpQkFBQSxFQUFBLGtDQUFBLFFBQUEsc0NBQUE7QUFNQSxTQUFBLFdBQUEsUUFBQSxVQUFBO0FBRUEsT0FBTyxJQUFNLFVBQVUsR0FBRyxJQUFuQixTQUFtQixFQUFuQjtBQUVQLElBQU0sa0JBQWtCLEdBRXBCLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBRkosTUFFSSxDQUZKO0FBR0EsSUFBTSxpQkFBaUIsR0FFbkIsQ0FBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLEdBQUEsRUFGSixHQUVJLENBRko7QUFJQSxPQUFNLFNBQUEsY0FBQSxDQUFBLE9BQUEsRUFBMkQ7QUFDL0QsU0FBTyxPQUFBLE9BQUEsS0FBQSxRQUFBLEdBQUEsT0FBQSxHQUF3QyxpQkFB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Q0FBakI7QUFERixLQUFZLENBQVo7QUFKRixHQUFBLE1BT087QUFDTCxJQUFBLGlCQUFpQixDQUFBLEVBQUEsRUFBakIsS0FBaUIsQ0FBakI7QUFDRDtBQVZILENBQUE7QUFhQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUE0QyxVQUFBLEVBQUEsVUFBNEM7QUFBQSxNQUF2QyxJQUF1QztBQUFBLE1BQXZDLFVBQXVDO0FBQUEsTUFBdkMsS0FBdUM7QUFBQSxNQUE1QyxNQUE0Qzs7QUFDdEYsTUFBSSxrQkFBa0IsQ0FBdEIsSUFBc0IsQ0FBdEIsRUFBOEI7QUFDNUIsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQUEsSUFBQSxFQUFvRCxVQUFBLFNBQUQsRUFBb0M7QUFDdkYsTUFBQSxlQUFlLENBQUEsRUFBQSxFQUFBLFNBQUEsRUFBQSxJQUFBLEVBQUEsVUFBQSxFQUFrQyxVQUFVLENBQTVDLEtBQTRDLENBQTVDLEVBQWYsTUFBZSxDQUFmO0FBREYsS0FBRSxDQUFGO0FBREYsR0FBQSxNQUlPO0FBQ0wsSUFBQSxzQkFBc0IsQ0FBQSxFQUFBLEVBQUEsSUFBQSxFQUFBLElBQUEsRUFBQSxVQUFBLEVBQUEsS0FBQSxFQUFBLE1BQUEsRUFBQSxLQUFBLEVBQXRCLEtBQXNCLENBQXRCO0FBQ0Q7QUFQSCxDQUFBOztBQVVBLFNBQUEsVUFBQSxDQUFBLElBQUEsRUFBcUQ7QUFDbkQsTUFBSSxJQUFJLEtBQVIsSUFBQSxFQUFtQixPQUFBLElBQUE7QUFDbkIsTUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFKLENBQUksQ0FBSixDQUFBLEdBQUEsQ0FBYSxVQUFBLEdBQUQ7QUFBQSxpQkFBeEIsR0FBd0I7QUFBQSxHQUFaLENBQVo7QUFDQSxTQUFPLENBQUEsS0FBQSxFQUFpQyxJQUFJLENBQTVDLENBQTRDLENBQXJDLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlcHJlY2F0ZSB9IGZyb20gJ0BnbGltbWVyL2dsb2JhbC1jb250ZXh0JztcbmltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29tcG9uZW50LFxuICBDb250ZW50VHlwZSxcbiAgSGlnaExldmVsQnVpbGRlck9wY29kZSxcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFN0YXRlbWVudFNleHBPcGNvZGUsXG4gIFdlbGxLbm93bkF0dHJOYW1lLFxuICBXZWxsS25vd25UYWdOYW1lLFxuICBXaXJlRm9ybWF0LFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICRmcCwgJHNwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHtcbiAgSW52b2tlU3RhdGljQmxvY2ssXG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrLFxuICBZaWVsZEJsb2NrLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2Jsb2Nrcyc7XG5pbXBvcnQge1xuICBJbnZva2VDb21wb25lbnQsXG4gIEludm9rZUR5bmFtaWNDb21wb25lbnQsXG4gIEludm9rZU5vblN0YXRpY0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9jb21wb25lbnRzJztcbmltcG9ydCB7IFN3aXRjaENhc2VzLCBSZXBsYXlhYmxlLCBSZXBsYXlhYmxlSWYgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2NvbmRpdGlvbmFsJztcbmltcG9ydCB7IGV4cHIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2V4cHInO1xuaW1wb3J0IHsgQ29tcGlsZVBvc2l0aW9uYWwsIFNpbXBsZUFyZ3MgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3NoYXJlZCc7XG5pbXBvcnQge1xuICBDYWxsLFxuICBDYWxsRHluYW1pYyxcbiAgRHluYW1pY1Njb3BlLFxuICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3ZtJztcbmltcG9ydCB7IGV2YWxTeW1ib2xzT3BlcmFuZCwgbGFiZWxPcGVyYW5kLCBzdGRsaWJPcGVyYW5kIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvb3BlcmFuZHMnO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoU3RhdGVtZW50T3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5pbXBvcnQge1xuICBpc0dldEZyZWVDb21wb25lbnQsXG4gIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyLFxuICBpc0dldEZyZWVNb2RpZmllcixcbiAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcixcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uJztcbmltcG9ydCB7IG5hbWVkQmxvY2tzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgU1RBVEVNRU5UUyA9IG5ldyBDb21waWxlcnM8UHVzaFN0YXRlbWVudE9wLCBTdGF0ZW1lbnRTZXhwT3Bjb2RlPigpO1xuXG5jb25zdCBJTkZMQVRFX0FUVFJfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duQXR0ck5hbWVdOiBzdHJpbmc7XG59ID0gWydjbGFzcycsICdpZCcsICd2YWx1ZScsICduYW1lJywgJ3R5cGUnLCAnc3R5bGUnLCAnaHJlZiddO1xuY29uc3QgSU5GTEFURV9UQUdfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duVGFnTmFtZV06IHN0cmluZztcbn0gPSBbJ2RpdicsICdzcGFuJywgJ3AnLCAnYSddO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5mbGF0ZVRhZ05hbWUodGFnTmFtZTogc3RyaW5nIHwgV2VsbEtub3duVGFnTmFtZSk6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgdGFnTmFtZSA9PT0gJ3N0cmluZycgPyB0YWdOYW1lIDogSU5GTEFURV9UQUdfVEFCTEVbdGFnTmFtZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlQXR0ck5hbWUoYXR0ck5hbWU6IHN0cmluZyB8IFdlbGxLbm93bkF0dHJOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiBhdHRyTmFtZSA9PT0gJ3N0cmluZycgPyBhdHRyTmFtZSA6IElORkxBVEVfQVRUUl9UQUJMRVthdHRyTmFtZV07XG59XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbW1lbnQsIChvcCwgc2V4cCkgPT4gb3AoT3AuQ29tbWVudCwgc2V4cFsxXSkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ2xvc2VFbGVtZW50LCAob3ApID0+IG9wKE9wLkNsb3NlRWxlbWVudCkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRmx1c2hFbGVtZW50LCAob3ApID0+IG9wKE9wLkZsdXNoRWxlbWVudCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Nb2RpZmllciwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZU1vZGlmaWVyKGV4cHJlc3Npb24pKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTW9kaWZpZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICAgICAgb3AoT3AuTW9kaWZpZXIsIGhhbmRsZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgIG9wKE9wLkR5bmFtaWNNb2RpZmllcik7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlN0YXRpY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgb3AoT3AuU3RhdGljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB2YWx1ZSBhcyBzdHJpbmcsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5TdGF0aWNDb21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIG9wKE9wLlN0YXRpY0NvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdmFsdWUgYXMgc3RyaW5nLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCBmYWxzZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB0cnVlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkNvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgZmFsc2UsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0NvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Db21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHRydWUsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLk9wZW5FbGVtZW50LCBpbmZsYXRlVGFnTmFtZSh0YWcpKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudFdpdGhTcGxhdCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLlB1dENvbXBvbmVudE9wZXJhdGlvbnMpO1xuICBvcChPcC5PcGVuRWxlbWVudCwgaW5mbGF0ZVRhZ05hbWUodGFnKSk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIGVsZW1lbnRCbG9jaywgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBlbGVtZW50QmxvY2ssIG51bGwsIG5hbWVkLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIC8vIG90aGVyd2lzZSwgdGhlIGNvbXBvbmVudCBuYW1lIHdhcyBhbiBleHByZXNzaW9uLCBzbyByZXNvbHZlIHRoZSBleHByZXNzaW9uXG4gICAgLy8gYW5kIGludm9rZSBpdCBhcyBhIGR5bmFtaWMgY29tcG9uZW50XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgZWxlbWVudEJsb2NrLCBudWxsLCBuYW1lZCwgYmxvY2tzLCB0cnVlLCB0cnVlKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlBhcnRpYWwsIChvcCwgWywgbmFtZSwgZXZhbEluZm9dKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBuYW1lKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkludm9rZVBhcnRpYWwsIGV2YWxTeW1ib2xzT3BlcmFuZCgpLCBldmFsSW5mbyk7XG4gICAgICBvcChPcC5Qb3BTY29wZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH1cbiAgKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5ZaWVsZCwgKG9wLCBbLCB0bywgcGFyYW1zXSkgPT4gWWllbGRCbG9jayhvcCwgdG8sIHBhcmFtcykpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BdHRyU3BsYXQsIChvcCwgWywgdG9dKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgbnVsbCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5EZWJ1Z2dlciwgKG9wLCBbLCBldmFsSW5mb10pID0+XG4gIG9wKE9wLkRlYnVnZ2VyLCBldmFsU3ltYm9sc09wZXJhbmQoKSwgZXZhbEluZm8pXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5BcHBlbmQsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIC8vIFNwZWNpYWwgY2FzZSBmb3Igc3RhdGljIHZhbHVlc1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSBpZiAoaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcih2YWx1ZSkpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyLCB2YWx1ZSwge1xuICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkge1xuICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICB9LFxuXG4gICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBudWxsLCBudWxsKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcblxuICAgICAgaWZWYWx1ZShoYW5kbGU6IG51bWJlcikge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoT3AuQ29uc3RhbnRSZWZlcmVuY2UsIGhhbmRsZSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmRmFsbGJhY2soX25hbWU6IHN0cmluZykge1xuICAgICAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICAgICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTG9jYWwsIHZhbHVlWzFdLCAobmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBkZXByZWNhdGUoXG4gICAgICAgICAgICBgVGhlIFxcYCR7bmFtZX1cXGAgcHJvcGVydHkgd2FzIHVzZWQgaW4gdGhlIFxcYCR7bW9kdWxlTmFtZX1cXGAgdGVtcGxhdGUgd2l0aG91dCB1c2luZyBcXGB0aGlzXFxgLiBUaGlzIGZhbGxiYWNrIGJlaGF2aW9yIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGFsbCBwcm9wZXJ0aWVzIG11c3QgYmUgbG9va2VkIHVwIG9uIFxcYHRoaXNcXGAgd2hlbiB1c2VkIGluIHRoZSB0ZW1wbGF0ZToge3t0aGlzLiR7bmFtZX19fWAsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICd0aGlzLXByb3BlcnR5LWZhbGxiYWNrJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgb3AoT3AuR2V0VmFyaWFibGUsIDApO1xuICAgICAgICAgIG9wKE9wLkdldFByb3BlcnR5LCBuYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLWFwcGVuZCcpKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAodmFsdWVbMF0gPT09IFNleHBPcGNvZGVzLkNhbGwpIHtcbiAgICBsZXQgWywgZXhwcmVzc2lvbiwgcG9zaXRpb25hbCwgbmFtZWRdID0gdmFsdWU7XG5cbiAgICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50T3JIZWxwZXIoZXhwcmVzc2lvbikpIHtcbiAgICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudE9ySGVscGVyLCBleHByZXNzaW9uLCB7XG4gICAgICAgIGlmQ29tcG9uZW50KGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpIHtcbiAgICAgICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIG51bGwpO1xuICAgICAgICB9LFxuICAgICAgICBpZkhlbHBlcihoYW5kbGU6IG51bWJlcikge1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICAgIENhbGwob3AsIGhhbmRsZSwgcG9zaXRpb25hbCwgbmFtZWQpO1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLW5vbi1keW5hbWljLWFwcGVuZCcpKTtcbiAgICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFN3aXRjaENhc2VzKFxuICAgICAgICBvcCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgICAgICAgIG9wKE9wLkR5bmFtaWNDb250ZW50VHlwZSk7XG4gICAgICAgIH0sXG4gICAgICAgICh3aGVuKSA9PiB7XG4gICAgICAgICAgd2hlbihDb250ZW50VHlwZS5Db21wb25lbnQsICgpID0+IHtcbiAgICAgICAgICAgIG9wKE9wLlJlc29sdmVDdXJyaWVkQ29tcG9uZW50KTtcbiAgICAgICAgICAgIG9wKE9wLlB1c2hEeW5hbWljQ29tcG9uZW50SW5zdGFuY2UpO1xuICAgICAgICAgICAgSW52b2tlTm9uU3RhdGljQ29tcG9uZW50KG9wLCB7XG4gICAgICAgICAgICAgIGNhcGFiaWxpdGllczogdHJ1ZSxcbiAgICAgICAgICAgICAgZWxlbWVudEJsb2NrOiBudWxsLFxuICAgICAgICAgICAgICBwb3NpdGlvbmFsLFxuICAgICAgICAgICAgICBuYW1lZCxcbiAgICAgICAgICAgICAgYXROYW1lczogZmFsc2UsXG4gICAgICAgICAgICAgIGJsb2NrczogbmFtZWRCbG9ja3MobnVsbCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHdoZW4oQ29udGVudFR5cGUuSGVscGVyLCAoKSA9PiB7XG4gICAgICAgICAgICBDYWxsRHluYW1pYyhvcCwgcG9zaXRpb25hbCwgbmFtZWQsICgpID0+IHtcbiAgICAgICAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1hcHBlbmQnKSk7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nQXBwZW5kLCAob3AsIFssIHZhbHVlXSkgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgb3AoT3AuVGV4dCwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKSk7XG4gIH0gZWxzZSB7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgZXhwcihvcCwgdmFsdWUpO1xuICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ3RydXN0aW5nLWFwcGVuZCcpKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQmxvY2ssIChvcCwgWywgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBudWxsLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzLCBmYWxzZSwgZmFsc2UpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW5FbGVtZW50LCAob3AsIFssIGJsb2NrLCBndWlkLCBkZXN0aW5hdGlvbiwgaW5zZXJ0QmVmb3JlXSkgPT4ge1xuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBndWlkKTtcblxuICAgICAgaWYgKGluc2VydEJlZm9yZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIFB1c2hQcmltaXRpdmVSZWZlcmVuY2Uob3AsIHVuZGVmaW5lZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHByKG9wLCBpbnNlcnRCZWZvcmUpO1xuICAgICAgfVxuXG4gICAgICBleHByKG9wLCBkZXN0aW5hdGlvbik7XG4gICAgICBvcChPcC5EdXAsICRzcCwgMCk7XG5cbiAgICAgIHJldHVybiA0O1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBvcChPcC5QdXNoUmVtb3RlRWxlbWVudCk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgICAgb3AoT3AuUG9wUmVtb3RlRWxlbWVudCk7XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLklmLCAob3AsIFssIGNvbmRpdGlvbiwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlSWYoXG4gICAgb3AsXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgY29uZGl0aW9uKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAxO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgIH0sXG5cbiAgICBpbnZlcnNlXG4gICAgICA/ICgpID0+IHtcbiAgICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkXG4gIClcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkVhY2gsIChvcCwgWywgdmFsdWUsIGtleSwgYmxvY2ssIGludmVyc2VdKSA9PlxuICBSZXBsYXlhYmxlKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKGtleSkge1xuICAgICAgICBleHByKG9wLCBrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLkVudGVyTGlzdCwgbGFiZWxPcGVyYW5kKCdCT0RZJyksIGxhYmVsT3BlcmFuZCgnRUxTRScpKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgICAgb3AoTWFjaGluZU9wLlJldHVyblRvLCBsYWJlbE9wZXJhbmQoJ0lURVInKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnSVRFUicpO1xuICAgICAgb3AoT3AuSXRlcmF0ZSwgbGFiZWxPcGVyYW5kKCdCUkVBSycpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdCT0RZJyk7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDIpO1xuICAgICAgb3AoT3AuUG9wLCAyKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5KdW1wLCBsYWJlbE9wZXJhbmQoJ0ZJTkFMTFknKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnQlJFQUsnKTtcbiAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICBvcChPcC5FeGl0TGlzdCk7XG4gICAgICBvcChNYWNoaW5lT3AuSnVtcCwgbGFiZWxPcGVyYW5kKCdGSU5BTExZJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0VMU0UnKTtcblxuICAgICAgaWYgKGludmVyc2UpIHtcbiAgICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGludmVyc2UpO1xuICAgICAgfVxuICAgIH1cbiAgKVxuKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuV2l0aCwgKG9wLCBbLCB2YWx1ZSwgYmxvY2ssIGludmVyc2VdKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIHZhbHVlKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcbiAgICAgIG9wKE9wLlRvQm9vbGVhbik7XG5cbiAgICAgIHJldHVybiAyO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIDEpO1xuICAgIH0sXG5cbiAgICAoKSA9PiB7XG4gICAgICBpZiAoaW52ZXJzZSkge1xuICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICB9XG4gICAgfVxuICApO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkxldCwgKG9wLCBbLCBwb3NpdGlvbmFsLCBibG9ja10pID0+IHtcbiAgbGV0IGNvdW50ID0gQ29tcGlsZVBvc2l0aW9uYWwob3AsIHBvc2l0aW9uYWwpO1xuICBJbnZva2VTdGF0aWNCbG9ja1dpdGhTdGFjayhvcCwgYmxvY2ssIGNvdW50KTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5XaXRoRHluYW1pY1ZhcnMsIChvcCwgWywgbmFtZWQsIGJsb2NrXSkgPT4ge1xuICBpZiAobmFtZWQpIHtcbiAgICBsZXQgW25hbWVzLCBleHByZXNzaW9uc10gPSBuYW1lZDtcblxuICAgIENvbXBpbGVQb3NpdGlvbmFsKG9wLCBleHByZXNzaW9ucyk7XG4gICAgRHluYW1pY1Njb3BlKG9wLCBuYW1lcywgKCkgPT4ge1xuICAgICAgSW52b2tlU3RhdGljQmxvY2sob3AsIGJsb2NrKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSW52b2tlQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3NdKSA9PiB7XG4gIGlmIChpc0dldEZyZWVDb21wb25lbnQoZXhwcikpIHtcbiAgICBvcChIaWdoTGV2ZWxSZXNvbHV0aW9uT3Bjb2RlLlJlc29sdmVDb21wb25lbnQsIGV4cHIsIChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSA9PiB7XG4gICAgICBJbnZva2VDb21wb25lbnQob3AsIGNvbXBvbmVudCwgbnVsbCwgcG9zaXRpb25hbCwgaGFzaFRvQXJncyhuYW1lZCksIGJsb2Nrcyk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgbnVsbCwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2NrcywgZmFsc2UsIGZhbHNlKTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGhhc2hUb0FyZ3MoaGFzaDogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsKTogV2lyZUZvcm1hdC5Db3JlLkhhc2ggfCBudWxsIHtcbiAgaWYgKGhhc2ggPT09IG51bGwpIHJldHVybiBudWxsO1xuICBsZXQgbmFtZXMgPSBoYXNoWzBdLm1hcCgoa2V5KSA9PiBgQCR7a2V5fWApO1xuICByZXR1cm4gW25hbWVzIGFzIFtzdHJpbmcsIC4uLnN0cmluZ1tdXSwgaGFzaFsxXV07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL29wY29kZS1jb21waWxlci9saWIvc3ludGF4L3N0YXRlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsU0FBQSxHQUFBLEVBQUEsR0FBQSxRQUFBLGFBQUE7QUFDQSxTQUFBLGlCQUFBLEVBQUEsMEJBQUEsRUFBQSxVQUFBLFFBQUEsa0NBQUE7QUFLQSxTQUFBLGVBQUEsRUFBQSxzQkFBQSxFQUFBLHdCQUFBLFFBQUEsc0NBQUE7QUFLQSxTQUFBLFdBQUEsRUFBQSxVQUFBLEVBQUEsWUFBQSxRQUFBLHVDQUFBO0FBQ0EsU0FBQSxJQUFBLFFBQUEsZ0NBQUE7QUFDQSxTQUFBLGlCQUFBLEVBQUEsVUFBQSxRQUFBLGtDQUFBO0FBQ0EsU0FBQSxJQUFBLEVBQUEsV0FBQSxFQUFBLFlBQUEsRUFBQSxzQkFBQSxRQUFBLDhCQUFBO0FBTUEsU0FBQSxrQkFBQSxFQUFBLFlBQUEsRUFBQSxhQUFBLFFBQUEsNEJBQUE7QUFDQSxTQUFBLFNBQUEsUUFBQSxhQUFBO0FBQ0EsU0FBQSxrQkFBQSxFQUFBLDBCQUFBLEVBQUEsaUJBQUEsRUFBQSxrQ0FBQSxRQUFBLHNDQUFBO0FBTUEsU0FBQSxXQUFBLFFBQUEsVUFBQTtBQUVBLE9BQU8sSUFBTSxVQUFVLEdBQUcsSUFBbkIsU0FBbUIsRUFBbkI7QUFFUCxJQUFNLGtCQUFrQixHQUVwQixDQUFBLE9BQUEsRUFBQSxJQUFBLEVBQUEsT0FBQSxFQUFBLE1BQUEsRUFBQSxNQUFBLEVBQUEsT0FBQSxFQUZKLE1BRUksQ0FGSjtBQUdBLElBQU0saUJBQWlCLEdBRW5CLENBQUEsS0FBQSxFQUFBLE1BQUEsRUFBQSxHQUFBLEVBRkosR0FFSSxDQUZKO0FBSUEsT0FBTSxTQUFBLGNBQUEsQ0FBQSxPQUFBLEVBQTJEO0FBQy9ELFNBQU8sT0FBQSxPQUFBLEtBQUEsUUFBQSxHQUFBLE9BQUEsR0FBd0MsaUJBQWlCLENBQWhFLE9BQWdFLENBQWhFO0FBQ0Q7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QUFBLE1BT087QUFDTCxJQUFBLGlCQUFpQixDQUFBLEVBQUEsRUFBakIsS0FBaUIsQ0FBakI7QUFDRDtBQVZILENBQUE7QUFhQSxVQUFVLENBQVYsR0FBQSxDQUFjO0FBQUE7QUFBZCxFQUE0QyxVQUFBLEVBQUEsVUFBNEM7QUFBQSxNQUF2QyxJQUF1QztBQUFBLE1BQXZDLFVBQXVDO0FBQUEsTUFBdkMsS0FBdUM7QUFBQSxNQUE1QyxNQUE0Qzs7QUFDdEYsTUFBSSxrQkFBa0IsQ0FBdEIsSUFBc0IsQ0FBdEIsRUFBOEI7QUFDNUIsSUFBQSxFQUFFLENBQUE7QUFBQTtBQUFBLE1BQUEsSUFBQSxFQUFvRCxVQUFBLFNBQUQsRUFBb0M7QUFDdkYsTUFBQSxlQUFlLENBQUEsRUFBQSxFQUFBLFNBQUEsRUFBQSxJQUFBLEVBQUEsVUFBQSxFQUFrQyxVQUFVLENBQTVDLEtBQTRDLENBQTVDLEVBQWYsTUFBZSxDQUFmO0FBREYsS0FBRSxDQUFGO0FBREYsR0FBQSxNQUlPO0FBQ0wsSUFBQSxzQkFBc0IsQ0FBQSxFQUFBLEVBQUEsSUFBQSxFQUFBLElBQUEsRUFBQSxVQUFBLEVBQUEsS0FBQSxFQUFBLE1BQUEsRUFBQSxLQUFBLEVBQXRCLEtBQXNCLENBQXRCO0FBQ0Q7QUFQSCxDQUFBOztBQVVBLFNBQUEsVUFBQSxDQUFBLElBQUEsRUFBcUQ7QUFDbkQsTUFBSSxJQUFJLEtBQVIsSUFBQSxFQUFtQixPQUFBLElBQUE7QUFDbkIsTUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFKLENBQUksQ0FBSixDQUFBLEdBQUEsQ0FBYSxVQUFBLEdBQUQ7QUFBQSxpQkFBeEIsR0FBd0I7QUFBQSxHQUFaLENBQVo7QUFDQSxTQUFPLENBQUEsS0FBQSxFQUFpQyxJQUFJLENBQTVDLENBQTRDLENBQXJDLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBpbGVUaW1lQ29tcG9uZW50LFxuICBDb250ZW50VHlwZSxcbiAgSGlnaExldmVsQnVpbGRlck9wY29kZSxcbiAgSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZSxcbiAgTWFjaGluZU9wLFxuICBPcCxcbiAgU2V4cE9wY29kZXMsXG4gIFN0YXRlbWVudFNleHBPcGNvZGUsXG4gIFdlbGxLbm93bkF0dHJOYW1lLFxuICBXZWxsS25vd25UYWdOYW1lLFxuICBXaXJlRm9ybWF0LFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7ICRmcCwgJHNwIH0gZnJvbSAnQGdsaW1tZXIvdm0nO1xuaW1wb3J0IHtcbiAgSW52b2tlU3RhdGljQmxvY2ssXG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrLFxuICBZaWVsZEJsb2NrLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2Jsb2Nrcyc7XG5pbXBvcnQge1xuICBJbnZva2VDb21wb25lbnQsXG4gIEludm9rZUR5bmFtaWNDb21wb25lbnQsXG4gIEludm9rZU5vblN0YXRpY0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9jb21wb25lbnRzJztcbmltcG9ydCB7IFN3aXRjaENhc2VzLCBSZXBsYXlhYmxlLCBSZXBsYXlhYmxlSWYgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2NvbmRpdGlvbmFsJztcbmltcG9ydCB7IGV4cHIgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL2V4cHInO1xuaW1wb3J0IHsgQ29tcGlsZVBvc2l0aW9uYWwsIFNpbXBsZUFyZ3MgfSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3NoYXJlZCc7XG5pbXBvcnQge1xuICBDYWxsLFxuICBDYWxsRHluYW1pYyxcbiAgRHluYW1pY1Njb3BlLFxuICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlLFxufSBmcm9tICcuLi9vcGNvZGUtYnVpbGRlci9oZWxwZXJzL3ZtJztcbmltcG9ydCB7IGV2YWxTeW1ib2xzT3BlcmFuZCwgbGFiZWxPcGVyYW5kLCBzdGRsaWJPcGVyYW5kIH0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvb3BlcmFuZHMnO1xuaW1wb3J0IHsgQ29tcGlsZXJzLCBQdXNoU3RhdGVtZW50T3AgfSBmcm9tICcuL2NvbXBpbGVycyc7XG5pbXBvcnQge1xuICBpc0dldEZyZWVDb21wb25lbnQsXG4gIGlzR2V0RnJlZUNvbXBvbmVudE9ySGVscGVyLFxuICBpc0dldEZyZWVNb2RpZmllcixcbiAgaXNHZXRGcmVlT3B0aW9uYWxDb21wb25lbnRPckhlbHBlcixcbn0gZnJvbSAnLi4vb3Bjb2RlLWJ1aWxkZXIvaGVscGVycy9yZXNvbHV0aW9uJztcbmltcG9ydCB7IG5hbWVkQmxvY2tzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgU1RBVEVNRU5UUyA9IG5ldyBDb21waWxlcnM8UHVzaFN0YXRlbWVudE9wLCBTdGF0ZW1lbnRTZXhwT3Bjb2RlPigpO1xuXG5jb25zdCBJTkZMQVRFX0FUVFJfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duQXR0ck5hbWVdOiBzdHJpbmc7XG59ID0gWydjbGFzcycsICdpZCcsICd2YWx1ZScsICduYW1lJywgJ3R5cGUnLCAnc3R5bGUnLCAnaHJlZiddO1xuY29uc3QgSU5GTEFURV9UQUdfVEFCTEU6IHtcbiAgW0kgaW4gV2VsbEtub3duVGFnTmFtZV06IHN0cmluZztcbn0gPSBbJ2RpdicsICdzcGFuJywgJ3AnLCAnYSddO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5mbGF0ZVRhZ05hbWUodGFnTmFtZTogc3RyaW5nIHwgV2VsbEtub3duVGFnTmFtZSk6IHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgdGFnTmFtZSA9PT0gJ3N0cmluZycgPyB0YWdOYW1lIDogSU5GTEFURV9UQUdfVEFCTEVbdGFnTmFtZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlQXR0ck5hbWUoYXR0ck5hbWU6IHN0cmluZyB8IFdlbGxLbm93bkF0dHJOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiBhdHRyTmFtZSA9PT0gJ3N0cmluZycgPyBhdHRyTmFtZSA6IElORkxBVEVfQVRUUl9UQUJMRVthdHRyTmFtZV07XG59XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkNvbW1lbnQsIChvcCwgc2V4cCkgPT4gb3AoT3AuQ29tbWVudCwgc2V4cFsxXSkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ2xvc2VFbGVtZW50LCAob3ApID0+IG9wKE9wLkNsb3NlRWxlbWVudCkpO1xuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRmx1c2hFbGVtZW50LCAob3ApID0+IG9wKE9wLkZsdXNoRWxlbWVudCkpO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5Nb2RpZmllciwgKG9wLCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0pID0+IHtcbiAgaWYgKGlzR2V0RnJlZU1vZGlmaWVyKGV4cHJlc3Npb24pKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlTW9kaWZpZXIsIGV4cHJlc3Npb24sIChoYW5kbGU6IG51bWJlcikgPT4ge1xuICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICBTaW1wbGVBcmdzKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgZmFsc2UpO1xuICAgICAgb3AoT3AuTW9kaWZpZXIsIGhhbmRsZSk7XG4gICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGV4cHIob3AsIGV4cHJlc3Npb24pO1xuICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgIFNpbXBsZUFyZ3Mob3AsIHBvc2l0aW9uYWwsIG5hbWVkLCBmYWxzZSk7XG4gICAgb3AoT3AuRHVwLCAkZnAsIDEpO1xuICAgIG9wKE9wLkR5bmFtaWNNb2RpZmllcik7XG4gICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlN0YXRpY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgb3AoT3AuU3RhdGljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB2YWx1ZSBhcyBzdHJpbmcsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5TdGF0aWNDb21wb25lbnRBdHRyLCAob3AsIFssIG5hbWUsIHZhbHVlLCBuYW1lc3BhY2VdKSA9PiB7XG4gIG9wKE9wLlN0YXRpY0NvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgdmFsdWUgYXMgc3RyaW5nLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCBmYWxzZSwgbmFtZXNwYWNlID8/IG51bGwpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLlRydXN0aW5nRHluYW1pY0F0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5EeW5hbWljQXR0ciwgaW5mbGF0ZUF0dHJOYW1lKG5hbWUpLCB0cnVlLCBuYW1lc3BhY2UgPz8gbnVsbCk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50QXR0ciwgKG9wLCBbLCBuYW1lLCB2YWx1ZSwgbmFtZXNwYWNlXSkgPT4ge1xuICBleHByKG9wLCB2YWx1ZSk7XG4gIG9wKE9wLkNvbXBvbmVudEF0dHIsIGluZmxhdGVBdHRyTmFtZShuYW1lKSwgZmFsc2UsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5UcnVzdGluZ0NvbXBvbmVudEF0dHIsIChvcCwgWywgbmFtZSwgdmFsdWUsIG5hbWVzcGFjZV0pID0+IHtcbiAgZXhwcihvcCwgdmFsdWUpO1xuICBvcChPcC5Db21wb25lbnRBdHRyLCBpbmZsYXRlQXR0ck5hbWUobmFtZSksIHRydWUsIG5hbWVzcGFjZSA/PyBudWxsKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLk9wZW5FbGVtZW50LCBpbmZsYXRlVGFnTmFtZSh0YWcpKTtcbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5PcGVuRWxlbWVudFdpdGhTcGxhdCwgKG9wLCBbLCB0YWddKSA9PiB7XG4gIG9wKE9wLlB1dENvbXBvbmVudE9wZXJhdGlvbnMpO1xuICBvcChPcC5PcGVuRWxlbWVudCwgaW5mbGF0ZVRhZ05hbWUodGFnKSk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuQ29tcG9uZW50LCAob3AsIFssIGV4cHIsIGVsZW1lbnRCbG9jaywgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBlbGVtZW50QmxvY2ssIG51bGwsIG5hbWVkLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIC8vIG90aGVyd2lzZSwgdGhlIGNvbXBvbmVudCBuYW1lIHdhcyBhbiBleHByZXNzaW9uLCBzbyByZXNvbHZlIHRoZSBleHByZXNzaW9uXG4gICAgLy8gYW5kIGludm9rZSBpdCBhcyBhIGR5bmFtaWMgY29tcG9uZW50XG4gICAgSW52b2tlRHluYW1pY0NvbXBvbmVudChvcCwgZXhwciwgZWxlbWVudEJsb2NrLCBudWxsLCBuYW1lZCwgYmxvY2tzLCB0cnVlLCB0cnVlKTtcbiAgfVxufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLllpZWxkLCAob3AsIFssIHRvLCBwYXJhbXNdKSA9PiBZaWVsZEJsb2NrKG9wLCB0bywgcGFyYW1zKSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkF0dHJTcGxhdCwgKG9wLCBbLCB0b10pID0+IFlpZWxkQmxvY2sob3AsIHRvLCBudWxsKSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkRlYnVnZ2VyLCAob3AsIFssIGV2YWxJbmZvXSkgPT5cbiAgb3AoT3AuRGVidWdnZXIsIGV2YWxTeW1ib2xzT3BlcmFuZCgpLCBldmFsSW5mbylcbik7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLkFwcGVuZCwgKG9wLCBbLCB2YWx1ZV0pID0+IHtcbiAgLy8gU3BlY2lhbCBjYXNlIGZvciBzdGF0aWMgdmFsdWVzXG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBvcChPcC5UZXh0LCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gJycgOiBTdHJpbmcodmFsdWUpKTtcbiAgfSBlbHNlIGlmIChpc0dldEZyZWVPcHRpb25hbENvbXBvbmVudE9ySGVscGVyKHZhbHVlKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZU9wdGlvbmFsQ29tcG9uZW50T3JIZWxwZXIsIHZhbHVlLCB7XG4gICAgICBpZkNvbXBvbmVudChjb21wb25lbnQ6IENvbXBpbGVUaW1lQ29tcG9uZW50KSB7XG4gICAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBudWxsLCBudWxsLCBudWxsKTtcbiAgICAgIH0sXG5cbiAgICAgIGlmSGVscGVyKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBDYWxsKG9wLCBoYW5kbGUsIG51bGwsIG51bGwpO1xuICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICB9LFxuXG4gICAgICBpZlZhbHVlKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgIG9wKE1hY2hpbmVPcC5QdXNoRnJhbWUpO1xuICAgICAgICBvcChPcC5Db25zdGFudFJlZmVyZW5jZSwgaGFuZGxlKTtcbiAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSBlbHNlIGlmICh2YWx1ZVswXSA9PT0gU2V4cE9wY29kZXMuQ2FsbCkge1xuICAgIGxldCBbLCBleHByZXNzaW9uLCBwb3NpdGlvbmFsLCBuYW1lZF0gPSB2YWx1ZTtcblxuICAgIGlmIChpc0dldEZyZWVDb21wb25lbnRPckhlbHBlcihleHByZXNzaW9uKSkge1xuICAgICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50T3JIZWxwZXIsIGV4cHJlc3Npb24sIHtcbiAgICAgICAgaWZDb21wb25lbnQoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkge1xuICAgICAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgbnVsbCk7XG4gICAgICAgIH0sXG4gICAgICAgIGlmSGVscGVyKGhhbmRsZTogbnVtYmVyKSB7XG4gICAgICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICAgICAgQ2FsbChvcCwgaGFuZGxlLCBwb3NpdGlvbmFsLCBuYW1lZCk7XG4gICAgICAgICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgnY2F1dGlvdXMtbm9uLWR5bmFtaWMtYXBwZW5kJykpO1xuICAgICAgICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgU3dpdGNoQ2FzZXMoXG4gICAgICAgIG9wLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgZXhwcihvcCwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgb3AoT3AuRHluYW1pY0NvbnRlbnRUeXBlKTtcbiAgICAgICAgfSxcbiAgICAgICAgKHdoZW4pID0+IHtcbiAgICAgICAgICB3aGVuKENvbnRlbnRUeXBlLkNvbXBvbmVudCwgKCkgPT4ge1xuICAgICAgICAgICAgb3AoT3AuUmVzb2x2ZUN1cnJpZWRDb21wb25lbnQpO1xuICAgICAgICAgICAgb3AoT3AuUHVzaER5bmFtaWNDb21wb25lbnRJbnN0YW5jZSk7XG4gICAgICAgICAgICBJbnZva2VOb25TdGF0aWNDb21wb25lbnQob3AsIHtcbiAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzOiB0cnVlLFxuICAgICAgICAgICAgICBlbGVtZW50QmxvY2s6IG51bGwsXG4gICAgICAgICAgICAgIHBvc2l0aW9uYWwsXG4gICAgICAgICAgICAgIG5hbWVkLFxuICAgICAgICAgICAgICBhdE5hbWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgYmxvY2tzOiBuYW1lZEJsb2NrcyhudWxsKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgd2hlbihDb250ZW50VHlwZS5IZWxwZXIsICgpID0+IHtcbiAgICAgICAgICAgIENhbGxEeW5hbWljKG9wLCBwb3NpdGlvbmFsLCBuYW1lZCwgKCkgPT4ge1xuICAgICAgICAgICAgICBvcChNYWNoaW5lT3AuSW52b2tlU3RhdGljLCBzdGRsaWJPcGVyYW5kKCdjYXV0aW91cy1ub24tZHluYW1pYy1hcHBlbmQnKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgZXhwcihvcCwgdmFsdWUpO1xuICAgIG9wKE1hY2hpbmVPcC5JbnZva2VTdGF0aWMsIHN0ZGxpYk9wZXJhbmQoJ2NhdXRpb3VzLWFwcGVuZCcpKTtcbiAgICBvcChNYWNoaW5lT3AuUG9wRnJhbWUpO1xuICB9XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuVHJ1c3RpbmdBcHBlbmQsIChvcCwgWywgdmFsdWVdKSA9PiB7XG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBvcChPcC5UZXh0LCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gJycgOiBTdHJpbmcodmFsdWUpKTtcbiAgfSBlbHNlIHtcbiAgICBvcChNYWNoaW5lT3AuUHVzaEZyYW1lKTtcbiAgICBleHByKG9wLCB2YWx1ZSk7XG4gICAgb3AoTWFjaGluZU9wLkludm9rZVN0YXRpYywgc3RkbGliT3BlcmFuZCgndHJ1c3RpbmctYXBwZW5kJykpO1xuICAgIG9wKE1hY2hpbmVPcC5Qb3BGcmFtZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5CbG9jaywgKG9wLCBbLCBleHByLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzXSkgPT4ge1xuICBpZiAoaXNHZXRGcmVlQ29tcG9uZW50KGV4cHIpKSB7XG4gICAgb3AoSGlnaExldmVsUmVzb2x1dGlvbk9wY29kZS5SZXNvbHZlQ29tcG9uZW50LCBleHByLCAoY29tcG9uZW50OiBDb21waWxlVGltZUNvbXBvbmVudCkgPT4ge1xuICAgICAgSW52b2tlQ29tcG9uZW50KG9wLCBjb21wb25lbnQsIG51bGwsIHBvc2l0aW9uYWwsIGhhc2hUb0FyZ3MobmFtZWQpLCBibG9ja3MpO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIEludm9rZUR5bmFtaWNDb21wb25lbnQob3AsIGV4cHIsIG51bGwsIHBvc2l0aW9uYWwsIG5hbWVkLCBibG9ja3MsIGZhbHNlLCBmYWxzZSk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5JbkVsZW1lbnQsIChvcCwgWywgYmxvY2ssIGd1aWQsIGRlc3RpbmF0aW9uLCBpbnNlcnRCZWZvcmVdKSA9PiB7XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcblxuICAgICgpID0+IHtcbiAgICAgIGV4cHIob3AsIGd1aWQpO1xuXG4gICAgICBpZiAoaW5zZXJ0QmVmb3JlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgUHVzaFByaW1pdGl2ZVJlZmVyZW5jZShvcCwgdW5kZWZpbmVkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4cHIob3AsIGluc2VydEJlZm9yZSk7XG4gICAgICB9XG5cbiAgICAgIGV4cHIob3AsIGRlc3RpbmF0aW9uKTtcbiAgICAgIG9wKE9wLkR1cCwgJHNwLCAwKTtcblxuICAgICAgcmV0dXJuIDQ7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIG9wKE9wLlB1c2hSZW1vdGVFbGVtZW50KTtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gICAgICBvcChPcC5Qb3BSZW1vdGVFbGVtZW50KTtcbiAgICB9XG4gICk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuSWYsIChvcCwgWywgY29uZGl0aW9uLCBibG9jaywgaW52ZXJzZV0pID0+XG4gIFJlcGxheWFibGVJZihcbiAgICBvcCxcbiAgICAoKSA9PiB7XG4gICAgICBleHByKG9wLCBjb25kaXRpb24pO1xuICAgICAgb3AoT3AuVG9Cb29sZWFuKTtcblxuICAgICAgcmV0dXJuIDE7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gICAgfSxcblxuICAgIGludmVyc2VcbiAgICAgID8gKCkgPT4ge1xuICAgICAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBpbnZlcnNlKTtcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWRcbiAgKVxuKTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuRWFjaCwgKG9wLCBbLCB2YWx1ZSwga2V5LCBibG9jaywgaW52ZXJzZV0pID0+XG4gIFJlcGxheWFibGUoXG4gICAgb3AsXG5cbiAgICAoKSA9PiB7XG4gICAgICBpZiAoa2V5KSB7XG4gICAgICAgIGV4cHIob3AsIGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBQdXNoUHJpbWl0aXZlUmVmZXJlbmNlKG9wLCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgZXhwcihvcCwgdmFsdWUpO1xuXG4gICAgICByZXR1cm4gMjtcbiAgICB9LFxuXG4gICAgKCkgPT4ge1xuICAgICAgb3AoT3AuRW50ZXJMaXN0LCBsYWJlbE9wZXJhbmQoJ0JPRFknKSwgbGFiZWxPcGVyYW5kKCdFTFNFJykpO1xuICAgICAgb3AoTWFjaGluZU9wLlB1c2hGcmFtZSk7XG4gICAgICBvcChPcC5EdXAsICRmcCwgMSk7XG4gICAgICBvcChNYWNoaW5lT3AuUmV0dXJuVG8sIGxhYmVsT3BlcmFuZCgnSVRFUicpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdJVEVSJyk7XG4gICAgICBvcChPcC5JdGVyYXRlLCBsYWJlbE9wZXJhbmQoJ0JSRUFLJykpO1xuICAgICAgb3AoSGlnaExldmVsQnVpbGRlck9wY29kZS5MYWJlbCwgJ0JPRFknKTtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrKG9wLCBibG9jaywgMik7XG4gICAgICBvcChPcC5Qb3AsIDIpO1xuICAgICAgb3AoTWFjaGluZU9wLkp1bXAsIGxhYmVsT3BlcmFuZCgnRklOQUxMWScpKTtcbiAgICAgIG9wKEhpZ2hMZXZlbEJ1aWxkZXJPcGNvZGUuTGFiZWwsICdCUkVBSycpO1xuICAgICAgb3AoTWFjaGluZU9wLlBvcEZyYW1lKTtcbiAgICAgIG9wKE9wLkV4aXRMaXN0KTtcbiAgICAgIG9wKE1hY2hpbmVPcC5KdW1wLCBsYWJlbE9wZXJhbmQoJ0ZJTkFMTFknKSk7XG4gICAgICBvcChIaWdoTGV2ZWxCdWlsZGVyT3Bjb2RlLkxhYmVsLCAnRUxTRScpO1xuXG4gICAgICBpZiAoaW52ZXJzZSkge1xuICAgICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgaW52ZXJzZSk7XG4gICAgICB9XG4gICAgfVxuICApXG4pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5XaXRoLCAob3AsIFssIHZhbHVlLCBibG9jaywgaW52ZXJzZV0pID0+IHtcbiAgUmVwbGF5YWJsZUlmKFxuICAgIG9wLFxuXG4gICAgKCkgPT4ge1xuICAgICAgZXhwcihvcCwgdmFsdWUpO1xuICAgICAgb3AoT3AuRHVwLCAkc3AsIDApO1xuICAgICAgb3AoT3AuVG9Cb29sZWFuKTtcblxuICAgICAgcmV0dXJuIDI7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrKG9wLCBibG9jaywgMSk7XG4gICAgfSxcblxuICAgICgpID0+IHtcbiAgICAgIGlmIChpbnZlcnNlKSB7XG4gICAgICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBpbnZlcnNlKTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG59KTtcblxuU1RBVEVNRU5UUy5hZGQoU2V4cE9wY29kZXMuTGV0LCAob3AsIFssIHBvc2l0aW9uYWwsIGJsb2NrXSkgPT4ge1xuICBsZXQgY291bnQgPSBDb21waWxlUG9zaXRpb25hbChvcCwgcG9zaXRpb25hbCk7XG4gIEludm9rZVN0YXRpY0Jsb2NrV2l0aFN0YWNrKG9wLCBibG9jaywgY291bnQpO1xufSk7XG5cblNUQVRFTUVOVFMuYWRkKFNleHBPcGNvZGVzLldpdGhEeW5hbWljVmFycywgKG9wLCBbLCBuYW1lZCwgYmxvY2tdKSA9PiB7XG4gIGlmIChuYW1lZCkge1xuICAgIGxldCBbbmFtZXMsIGV4cHJlc3Npb25zXSA9IG5hbWVkO1xuXG4gICAgQ29tcGlsZVBvc2l0aW9uYWwob3AsIGV4cHJlc3Npb25zKTtcbiAgICBEeW5hbWljU2NvcGUob3AsIG5hbWVzLCAoKSA9PiB7XG4gICAgICBJbnZva2VTdGF0aWNCbG9jayhvcCwgYmxvY2spO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIEludm9rZVN0YXRpY0Jsb2NrKG9wLCBibG9jayk7XG4gIH1cbn0pO1xuXG5TVEFURU1FTlRTLmFkZChTZXhwT3Bjb2Rlcy5JbnZva2VDb21wb25lbnQsIChvcCwgWywgZXhwciwgcG9zaXRpb25hbCwgbmFtZWQsIGJsb2Nrc10pID0+IHtcbiAgaWYgKGlzR2V0RnJlZUNvbXBvbmVudChleHByKSkge1xuICAgIG9wKEhpZ2hMZXZlbFJlc29sdXRpb25PcGNvZGUuUmVzb2x2ZUNvbXBvbmVudCwgZXhwciwgKGNvbXBvbmVudDogQ29tcGlsZVRpbWVDb21wb25lbnQpID0+IHtcbiAgICAgIEludm9rZUNvbXBvbmVudChvcCwgY29tcG9uZW50LCBudWxsLCBwb3NpdGlvbmFsLCBoYXNoVG9BcmdzKG5hbWVkKSwgYmxvY2tzKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBJbnZva2VEeW5hbWljQ29tcG9uZW50KG9wLCBleHByLCBudWxsLCBwb3NpdGlvbmFsLCBuYW1lZCwgYmxvY2tzLCBmYWxzZSwgZmFsc2UpO1xuICB9XG59KTtcblxuZnVuY3Rpb24gaGFzaFRvQXJncyhoYXNoOiBXaXJlRm9ybWF0LkNvcmUuSGFzaCB8IG51bGwpOiBXaXJlRm9ybWF0LkNvcmUuSGFzaCB8IG51bGwge1xuICBpZiAoaGFzaCA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gIGxldCBuYW1lcyA9IGhhc2hbMF0ubWFwKChrZXkpID0+IGBAJHtrZXl9YCk7XG4gIHJldHVybiBbbmFtZXMgYXMgW3N0cmluZywgLi4uc3RyaW5nW11dLCBoYXNoWzFdXTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -10,3 +10,2 @@ export * from './lib/program-context';

export { StdLib } from './lib/opcode-builder/stdlib';
export { PartialDefinitionImpl } from './lib/partial-template';
export { default as templateFactory, templateCacheCounters, TemplateFactoryWithIdAndMeta, TemplateWithIdAndReferrer, } from './lib/template';

@@ -13,0 +12,0 @@ export { WrappedBuilder } from './lib/wrapped-component';

@@ -8,5 +8,4 @@ import { InternalComponentCapabilities, Option, CompileTimeComponent } from '@glimmer/interfaces';

lookupComponent?(name: string, referrer: R): Option<CompileTimeComponent> | void;
lookupPartial?(name: string, referrer: R): Option<number> | void;
resolve?(handle: number): R;
}
//# sourceMappingURL=delegate.d.ts.map

@@ -33,7 +33,7 @@ import { CompileTimeConstants, CompileTimeResolver, ContainingMetadata, Expressions, ResolveComponentOp, ResolveComponentOrHelperOp, ResolveHelperOp, ResolveModifierOp, ResolveOptionalComponentOrHelperOp, ResolveOptionalHelperOp, ResolutionTimeConstants } from '@glimmer/interfaces';

*/
export declare function resolveOptionalHelper(resolver: CompileTimeResolver, constants: CompileTimeConstants & ResolutionTimeConstants, meta: ContainingMetadata, [, expr, { ifHelper, ifFallback }]: ResolveOptionalHelperOp): void;
export declare function resolveOptionalHelper(resolver: CompileTimeResolver, constants: CompileTimeConstants & ResolutionTimeConstants, meta: ContainingMetadata, [, expr, { ifHelper }]: ResolveOptionalHelperOp): void;
/**
* {{maybeHelperOrComponent}}
*/
export declare function resolveOptionalComponentOrHelper(resolver: CompileTimeResolver, constants: CompileTimeConstants & ResolutionTimeConstants, meta: ContainingMetadata, [, expr, { ifComponent, ifHelper, ifValue, ifFallback }]: ResolveOptionalComponentOrHelperOp): void;
export declare function resolveOptionalComponentOrHelper(resolver: CompileTimeResolver, constants: CompileTimeConstants & ResolutionTimeConstants, meta: ContainingMetadata, [, expr, { ifComponent, ifHelper, ifValue }]: ResolveOptionalComponentOrHelperOp): void;
//# sourceMappingURL=resolution.d.ts.map
import { SexpOpcodes, WellKnownAttrName, WellKnownTagName } from '@glimmer/interfaces';
import { Compilers, PushStatementOp } from './compilers';
export declare const STATEMENTS: Compilers<PushStatementOp, SexpOpcodes.Append | SexpOpcodes.TrustingAppend | SexpOpcodes.Comment | SexpOpcodes.Modifier | SexpOpcodes.Block | SexpOpcodes.Component | SexpOpcodes.OpenElement | SexpOpcodes.OpenElementWithSplat | SexpOpcodes.FlushElement | SexpOpcodes.CloseElement | SexpOpcodes.StaticAttr | SexpOpcodes.DynamicAttr | SexpOpcodes.ComponentAttr | SexpOpcodes.AttrSplat | SexpOpcodes.Yield | SexpOpcodes.Partial | SexpOpcodes.DynamicArg | SexpOpcodes.StaticArg | SexpOpcodes.TrustingDynamicAttr | SexpOpcodes.TrustingComponentAttr | SexpOpcodes.StaticComponentAttr | SexpOpcodes.Debugger | SexpOpcodes.InElement | SexpOpcodes.If | SexpOpcodes.Each | SexpOpcodes.With | SexpOpcodes.Let | SexpOpcodes.WithDynamicVars | SexpOpcodes.InvokeComponent>;
export declare const STATEMENTS: Compilers<PushStatementOp, SexpOpcodes.Append | SexpOpcodes.TrustingAppend | SexpOpcodes.Comment | SexpOpcodes.Modifier | SexpOpcodes.Block | SexpOpcodes.Component | SexpOpcodes.OpenElement | SexpOpcodes.OpenElementWithSplat | SexpOpcodes.FlushElement | SexpOpcodes.CloseElement | SexpOpcodes.StaticAttr | SexpOpcodes.DynamicAttr | SexpOpcodes.ComponentAttr | SexpOpcodes.AttrSplat | SexpOpcodes.Yield | SexpOpcodes.DynamicArg | SexpOpcodes.StaticArg | SexpOpcodes.TrustingDynamicAttr | SexpOpcodes.TrustingComponentAttr | SexpOpcodes.StaticComponentAttr | SexpOpcodes.Debugger | SexpOpcodes.InElement | SexpOpcodes.If | SexpOpcodes.Each | SexpOpcodes.With | SexpOpcodes.Let | SexpOpcodes.WithDynamicVars | SexpOpcodes.InvokeComponent>;
export declare function inflateTagName(tagName: string | WellKnownTagName): string;
export declare function inflateAttrName(attrName: string | WellKnownAttrName): string;
//# sourceMappingURL=statements.d.ts.map
{
"name": "@glimmer/opcode-compiler",
"version": "0.81.0",
"version": "0.82.0",
"repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/opcode-compiler",
"dependencies": {
"@glimmer/env": "0.1.7",
"@glimmer/util": "0.81.0",
"@glimmer/wire-format": "0.81.0",
"@glimmer/interfaces": "0.81.0",
"@glimmer/vm": "0.81.0",
"@glimmer/encoder": "0.81.0",
"@glimmer/reference": "0.81.0"
"@glimmer/util": "0.82.0",
"@glimmer/wire-format": "0.82.0",
"@glimmer/interfaces": "0.82.0",
"@glimmer/vm": "0.82.0",
"@glimmer/encoder": "0.82.0",
"@glimmer/reference": "0.82.0"
},
"devDependencies": {
"@glimmer/debug": "0.81.0",
"@glimmer/local-debug-flags": "0.81.0"
"@glimmer/debug": "0.82.0",
"@glimmer/local-debug-flags": "0.82.0"
},

@@ -18,0 +18,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 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 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 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 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 not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc