ng-inail-common 2.1.2-beta.0 → 2.1.2-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -124,10 +124,12 @@ export class InailLayoutComponent extends BaseComponent {
|
|
|
124
124
|
recuperoAutomaticoHtml: this.config.recuperoAutomaticoHtml
|
|
125
125
|
};
|
|
126
126
|
}
|
|
127
|
-
|
|
128
|
-
if (this.config?.caricamentoDinamicoRisorseEsterne === true) {
|
|
127
|
+
if (this.config.recuperoAutomaticoHtml === true) {
|
|
129
128
|
// TODO aggiungere alla DOC
|
|
130
129
|
await this.recuperaHeadDaAGW();
|
|
130
|
+
}
|
|
131
|
+
// Inizializzazione risorse esterne
|
|
132
|
+
if (this.config?.caricamentoDinamicoRisorseEsterne === true) {
|
|
131
133
|
this.loadRisorseEsterne(this.externalResources || webkitExternalResources, 'link');
|
|
132
134
|
}
|
|
133
135
|
else {
|
|
@@ -584,4 +586,4 @@ export const setFocusOnFeedback = (id, scrollToFeedback, ms) => {
|
|
|
584
586
|
}
|
|
585
587
|
}, ms || 100);
|
|
586
588
|
};
|
|
587
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5haWwtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWluYWlsLWNvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9sYXlvdXQvaW5haWwtbGF5b3V0L2luYWlsLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pbmFpbC1jb21tb24vc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvbGF5b3V0L2luYWlsLWxheW91dC9pbmFpbC1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBT0wsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUMsYUFBYSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFDLGFBQWEsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzlFLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDdEksT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFHM0QsT0FBTyxFQUFjLGFBQWEsRUFBVyxNQUFNLHdCQUF3QixDQUFDO0FBQzVFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxhQUFhLEVBQWEsTUFBTSxNQUFNLENBQUM7Ozs7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Q0FBQyxDQUFDO2FBQzlDO1lBRUQsSUFBSSxpQkFBaUIsR0FBZ0IsUUFBUSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBRW5GLElBQUksaUJBQWlCLElBQUksU0FBUyxFQUFFO2dCQUVsQyxvREFBb0Q7Z0JBQ3BELFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUNsRDtTQUNGO0lBQ0gsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ1YsQ0FBQyxDQUFDO0FBRUYsT0FBTztBQUNQOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxFQUFXLEVBQUUsZ0JBQTBCLEVBQUUsRUFBVyxFQUFFLEVBQUU7SUFFekYsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUVkLElBQUksUUFBUSxHQUFnQixRQUFRLENBQUMsZ0JBQWdCLENBQWMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWhGLElBQUksUUFBUSxFQUFFO1lBRVosSUFBSSxnQkFBZ0IsRUFBRTtnQkFFcEIsZUFBZSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUM5QztZQUVELElBQUksaUJBQWlCLEdBQWdCLFFBQVEsQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUVuRixJQUFJLGlCQUFpQixJQUFJLFNBQVMsRUFBRTtnQkFFbEMsb0RBQW9EO2dCQUNwRCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDbEQ7U0FDRjtJQUNILENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDLENBQUM7QUFDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0hlYWRlckNvbmZpZ3VyYXRpb25zfSBmcm9tICcuLi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge05hdmlnYXRpb25FbmQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7QmFzZUNvbXBvbmVudCwgQ0hBTkdFX0RFVEVDVElPTl9TVFJBVEVHWX0gZnJvbSAnLi4vLi4vYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHtpc0Fic29sdXRlLCBpc0hpZGRlbiwgaXNOb3RCbGFua09yTnVsbCwgc2Nyb2xsVG9FbGVtZW50LCBzY3JvbGxUb3AsIHN0YXJ0V2l0aFNsYXNofSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9jb21tb24ub3BlcmF0b3JzJztcbmltcG9ydCB7d2Via2l0RXh0ZXJuYWxSZXNvdXJjZXN9IGZyb20gJy4vd2Via2l0LXJlc291cmNlcyc7XG5pbXBvcnQge0V4dGVybmFsUmVzb3VyY2UsIEV4dGVybmFsU2NyaXB0fSBmcm9tICcuL3N0YXRpYy1yZXNvdXJjZXMnO1xuaW1wb3J0IHtBcHBQYWdlfSBmcm9tICcuLi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50JztcbmltcG9ydCB7R2V0U3RyaW5nRm4sIE1lbnVDb21wb25lbnQsIE1lbnVJdGVtfSBmcm9tICcuLi9tZW51L21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7ZmlsdGVyfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0VSUk9SX0JUTl9DTEFTU30gZnJvbSAnLi4vLi4vdXgvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtpc0Z1bmN0aW9ufSBmcm9tICdyeGpzL2ludGVybmFsL3V0aWwvaXNGdW5jdGlvbic7XG5pbXBvcnQge2xhc3RWYWx1ZUZyb20sIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBR1dSZXF1ZXN0LCBBZ3dSZXN0U2VydmljZSwgQ2hlY2tzZXNzaW9uUmVzcG9uc2UsIEdsb2JhbENvbmZpZ1Jlc3BvbnNlLCBIRlJlc3BvbnNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9hZ3ctcmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7SGVhZGVyU2Vjb25kYXJpb0RhdGF9IGZyb20gJy4uL2hlYWRlci1zZWNvbmRhcmlvL2hlYWRlci1zZWNvbmRhcmlvLmNvbXBvbmVudCc7XG5cbnR5cGUgUmVzb3VyY2VUeXBlID0gJ3NjcmlwdCcgfCAnbGluayc7XG5cbmludGVyZmFjZSBMb2FkZWRSZXNvdXJjZSB7XG5cbiAgbG9hZGVkOiBib29sZWFuLFxuICByZXNvdXJjZTogRXh0ZXJuYWxSZXNvdXJjZSB8IEV4dGVybmFsU2NyaXB0XG59XG5cbmludGVyZmFjZSBMb2FkZWRSZXNvdXJjZVJlc3BvbnNlIHtcblxuICByZXNvdXJjZTogc3RyaW5nXG4gIGxvYWRlZDogYm9vbGVhbixcbiAgc3RhdHVzOiBzdHJpbmdcbn1cblxuZXhwb3J0IGVudW0gU2V0Rm9jdXNTdHJhdGVneSB7XG5cbiAgLyoqLlxuICAgKiBJbmRpY2EgY2hlIGlsIGZvY3VzIGRvdnJhJyBlc3NlcmUgaW1wb3N0YXRvIHN1bCBmZWVkYmFjayBnbG9iYWxlLlxuICAgKi9cbiAgT25HbG9iYWxGZWVkYmFjayA9IDAsXG5cbiAgLyoqXG4gICAqIEluZGljYSBjaGUgaWwgZm9jdXMgZG92cmEnIGVzc2VyZSBpbXBvc3RhdG8gc3VsIHByaW1vIGVsZW1lbnRvIGluIHBhZ2luYSBhbmRhdG8gaW4gZXJyb3JlLlxuICAgKi9cbiAgT25GaXJzdFBhZ2VFcnJvciA9IDFcbn1cblxuZXhwb3J0IGNsYXNzIEluYWlsTGF5b3V0Q29uZmlndXJhdGlvbnMge1xuXG4gIC8qKlxuICAgKiBJbmRpY2EgaWwgbm9tZSBkZWxsJ2FwcGxpY2F6aW9uZS5cbiAgICovXG4gIGFwcE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElkZW50aWZpY2F0aXZvIGRlbGwnYXBwbGljYXppb25lIGNvcnJlbnRlIGluIGFjY29yZG9cbiAgICogY29uIGwnQUdXLlxuICAgKi9cbiAgY2xpZW50SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNlIHRydWUgaW1wb3N0YSBhdXRvbWF0aWNhbWVudGUgaWwgZm9jdXMgc3VsIHByaW1vIGVsZW1lbnRvXG4gICAqIGRpIGlucHV0IGFuZGF0byBpbiBlcnJvcmUuXG4gICAqL1xuICBmb2N1c09uRXJyb3I/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZSB0cnVlIGVmZmV0dHVhIHVubyBzY3JvbGxpbmcgYWxsJ2VsZW1lbnRvXG4gICAqIGFuZGF0byBpbiBlcnJvcmUgcHJpbWEgZGkgaW1wb3N0YXJlIGlsIGZvY3VzLlxuICAgKi9cbiAgc2Nyb2xsVG9FcnJvcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERldGVybWluYSBzdSBxdWFsZSBlbGVtZW50byBpbXBvc3RhcmUgaWwgZm9jdXMgYWwgdmVyaWZpY2Fyc2lcbiAgICogZGkgdW4gZXJyb3JlLlxuICAgKi9cbiAgc2V0Rm9jdXNTdHJhdGVneT86IFNldEZvY3VzU3RyYXRlZ3kgPSBTZXRGb2N1c1N0cmF0ZWd5Lk9uR2xvYmFsRmVlZGJhY2s7XG5cbiAgLyoqXG4gICAqIFNlIHRydWUgYWxsYSBmaW5lIGRpIHVuIGV2ZW50byBkaSByb3V0aW5nIGVmZmV0dHVhIHVubyBzY3JvbGwgaW4gY2ltYSBhbGxhIHBhZ2luYS5cbiAgICovXG4gIHNjcm9sbFRvcEF0TmF2aWdhdGlvbkVuZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNlIHRydWUgcGVybWV0dGUgYWwgbGF5b3V0IGRpIG9jY3VwYXJlIGwnaW50ZXJhIGxhcmdoZXp6YSBkZWxsbyBzY2hlcm1vXG4gICAqL1xuICBjb250YWluZXJXaWRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2UgdHJ1ZSBhYmlsaXRhIGlsIGNhcmljYW1lbnRvIGF1dG9tYXRpY28gZGVsbGUgcmlzb3JzZSBlc3Rlcm5lIGRhbGxhIGNkbiBJTkFJTC5cbiAgICogVmVuZ29ubyBjcmVhdGkgZSBpbmlldHRhdGkgbmVsIHRhZyA8aGVhZD4gaSB0YWcgPGxpbms+XG4gICAqIGluZXJlbnRpIGxlIHJpc29yc2UgZXN0ZXJuZSBuZWNlc3NhcmllIGFsbGFcbiAgICogY29ycmV0dGEgdmlzdWFsaXp6YXppb25lIGRlbGwnYXBwbGljYXppb25lLlxuICAgKiBTZSBub24gcGFzc2F0ZSBpbiBpbnB1dCBhbCBjb21wb25lbnRlIHRyYW1pdGUgbGEgcHJvcHJpZXRhJyAnZXh0ZXJuYWxSZXNvdXJjZXMnXG4gICAqIHZlbmdvbm8gY2FyaWNhdGUgbGUgcmlzb3JzZSBkaSBkZWZhdWx0LlxuICAgKiBMZSByaXNvcnNlIGRpIGRlZmF1bHQgdmVuZ29ubyByZWN1cGVyYXRlIGRhbCBkb21pbmlvXG4gICAqIHNwZWNpZmljYXRvIHRyYW1pdGUgbGEgcHJvcHJpZXRhJyAnY2RuRW5kcG9pbnQnLlxuICAgKi9cbiAgY2FyaWNhbWVudG9EaW5hbWljb1Jpc29yc2VFc3Rlcm5lPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogdG9kbyByaXZlZGVyZVxuICAgKiBTZSB0cnVlIGFiaWxpdGEgaWwgY2FyaWNhbWVudG8gYXV0b21hdGljbyBkZWdsaSBzY3JpcHQgZXN0ZXJuaS5cbiAgICogVmVuZ29ubyBjcmVhdGkgZWQgaW5pZXR0YXRpIG5lbCB0YWcgPGhlYWQ+IGkgdGFnIDxzY3JpcHQ+XG4gICAqIGluZXJlbnRpIGdsaSBzY3JpcHQgbmVjZXNzYXJpIGFsXG4gICAqIGNvcnJldHRvIGZ1bnppb25hbWVudG8gZGVsbCdhcHBsaWNhemlvbmUuXG4gICAqIFNlIG5vbiBwYXNzYXRpIGluIGlucHV0IGFsIGNvbXBvbmVudGVcbiAgICogdmVuZ29ubyBjYXJpY2F0aSBnbGkgc2NyaXB0IGRpIGRlZmF1bHQuXG4gICAqIHRvZG86IGluc2VyaXJlIGxpc3RhIHNjcmlwdHMgKHZlZGVyZSBmaWxlIHdlYmtpdC1yZXNvdXJjZXMudHMpXG4gICAqIEdsaSBzY3JpcHRzIGRpIGRlZmF1bHQgdmVuZ29ubyByZWN1cGVyYXRpIGRhbCBkb21pbmlvXG4gICAqIHNwZWNpZmljYXRvIHRyYW1pdGUgbGEgcHJvcHJpZXRhIGNkbkVuZHBvaW50IGUgY2VyY2F0aVxuICAgKiBuZWwgc290dG9wYXRoIHNwZWNpZmljYXRvIHRyYW1pdGUgcHJvcHJpZXRhIGFzc2V0c1VybFxuICAgKi9cbiAgLy8gY2FyaWNhbWVudG9EaW5hbWljb1NjcmlwdEVzdGVybmk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmRwb2ludCBkZWxsYSBjZG4uXG4gICAqIChlLmcuIGh0dHBzOi8vY2RuY29sbC5pbmFpbGNsb3VkLml0KVxuICAgKiBTZSBub24gc3BlY2lmaWNhdG8gZSBzZSBpbCB2YWxvcmUgZGVsbGEgcHJvcHJpZXRhJyAncmVjdXBlcm9BdXRvbWF0aWNvQ2RuRW5kcG9pbnQnIGUnIHRydWVcbiAgICogdmllbmUgcmVjdXBlcmF0byBhdXRvbWF0aWNhbWVudGUgY29udGF0dGFuZG8gaWwgc2Vydml6aW8gJy9hcGkvZ2xvYmFsLWNvbmZpZycgZXNwb3N0byBkYSBBR1csXG4gICAqIGFsdHJpbWVudGkgdmllbmUgdXRpbGl6emF0byBpIGRvbWlubyBjb3JyZW50ZS5cbiAgICovXG4gIGNkbkVuZHBvaW50Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZWN1cGVyYSBhdXRvbWF0aWNhbWVudGUgbCdlbmRwb2ludCBkZWxsYSBjZG4uXG4gICAqIEwnZW5kcG9pbnQgdmllbmUgcmVjdXBlcmF0byBjb250YXR0YW5kbyBsJ0FHVyBhbGwnaW5kaXJpenpvXG4gICAqICcvYXBpL2dsb2JhbC1jb25maWcnLlxuICAgKiBJbCByZWN1cGVybyBkZWxsJ2VuZHBvaW50IG5vbiB2aWVuZSBlZmZldHR1YXRvIHNlIGUnIHN0YXRhXG4gICAqIGltcG9zdGF0YSBsYSBwcm9wcmlldGEnIGRpIGNvbmZpZ3VyYXppb25lICdjZG5FbmRwb2ludCcuXG4gICAqIEwnYXBpIGdhdGV3YXkgdmllbmUgY29udGF0dGF0byBwcmVuZGVuZG8gaW4gY29uc2lkZXJhemlvbmVcbiAgICogcXVhbnRvIHNwZWNpZmljYXRvIHRyYW1pdGUgbGEgcHJvcHJpZXRhJyBkaSBjb25maWd1cmF6aW9uZVxuICAgKiBhcGlHYXRld2F5VXJsLlxuICAgKiAqL1xuICByZWN1cGVyb0F1dG9tYXRpY29DZG5FbmRwb2ludD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRlbXBvIGRpIGF0dGVzYSBpbiBtaWxsaXNlY29uZGlcbiAgICogZGVsIGNhcmljYW1lbnRvIHRyYSBnbGkgc2NyaXB0LlxuICAgKiBJbCB2YWxvcmUgZGkgZGVmYXVsdCBlJyAzMDAuXG4gICAqL1xuICAvLyBzY3JpcHRMb2FkaW5nRGVlbGF5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTZSB0cnVlIHZlbmdvbm8gcmVjdXBlcmF0aSBhdXRvbWF0aWNhbWVudGUgaSBmcmFtbWVudGkgaHRtbCBkaSBsb2dvLCBuYXZpZ2F6aW9uZSBwcmluY2lwYWxlLCBoZWFkZXIgc2Vjb25kYXJpbyBlIGZvb3Rlci5cbiAgICogSSBmcmFtbWVudGkgaHRtbCB2ZXJyYW5ubyByZWN1cGVyYXRpIGFnbGkgaW5kaXJpenppIGluZGljYXRpIHRyYW1pdGUgbGUgcHJvcHJpZXRhJyBkaSBjb25maWd1cmF6aW9uZSBsb2dvSGVhZGVyVXJsLCBuYXZpZ2F6aW9uZVByaW5jaXBhbGVVcmxcbiAgICogaGVhZGVyU2Vjb25kYXJpb1VybCBlIGZvb3RlclVybC5cbiAgICogU2UgZ2xpIGluZGlyaXp6aSBub24gdmVuZ29ubyBpbmRpY2F0aSBpIGZyYW1tZW50aSBodG1sIHZlcnJhbm5vIHJlY3VwZXJhdGkgYXV0b21hdGljYW1lbnRlIGRhbCBjb21wb25lbnRlIGNvbnRhdHRhbmRvXG4gICAqIGkgc2Vydml6aSAnSGVhZGVyRm9vdGVyLU1TUHVibGljVmVyc2lvbicgZSAnSGVhZGVyRm9vdGVyLU1TUHJpdmF0ZVZlcnNpb24nIGVzcG9zdGkgc3UgQUdXLlxuICAgKiBTZSBmYWxzZSBpIGZyYW1tZW50aSBodG1sIGRvdnJhbm5vIGVzc2VyZSBwYXNzYXRpIGluIGlucHV0IGFsIGNvbXBvbmVudGUgdHJhbWl0ZSBsZSBwcm9wcmlldGEnIGRpIGlucHV0IGxvZ29IZWFkZXJIdG1sLFxuICAgKiBuYXZpZ2F6aW9uZVByaW5jaXBhbGVIdG1sLCBoZWFkZXJTZWNvbmRhcmlvSHRtbCBlIGZvb3Rlckh0bWwgbyBpbnNlcml0aSBuZWwgY29udGVudCBkZWwgY29tcG9uZW50ZSBhdHRyYXZlcnNvIGdsaSBhcHBvc2l0aSBzZWxldHRvcmkgZGkgY29udGVudXRvLlxuICAgKi9cbiAgcmVjdXBlcm9BdXRvbWF0aWNvSHRtbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFVybCBkYSBjdWkgcmVjdXBlcmFyZSBpbCBmcmFtbWVudG8gaHRtbCBkZWxsYSBwcmltYSBpbnRlc3RhemlvbmUgZGkgcGFnaW5hIChxdWVsbGEgY29udGVuZW50ZSBpbCBsb2dvKS5cbiAgICogU2UgcGFzc2F0byBpbmliaXNjZSBpbCBtZWNjYW5pc21vIGRpIHJlY3VwZXJvIGF1dG9tYXRpY28gZGEgQUdXLlxuICAgKiBTZSBub24gc3BlY2lmaWNhdG8gaWwgZnJhbW1lbnRvIGh0bWwgdmVycmEnIHJlY3VwZXJhdG8gYXV0b21hdGljYW1lbnRlIGRhbCBjb21wb25lbnRlIGNvbnRhdHRhbmRvIGlsIHNlcnZpemlvICdIZWFkZXJGb290ZXItTVNQdWJsaWNWZXJzaW9uJy5cbiAgICogTmVsIGNhc28gaW4gY3VpIG5vbiBzaWEgcG9zc2liaWxlIHJlY3VwZXJhcmUgaWwgZnJhbW1lbnRvIGwnaHRtbCB2ZXJyYScgdmlzdWFsaXp6YXRvIHF1ZWxsbyBkaSBkZWZhdWx0LlxuICAgKi9cbiAgbG9nb0hlYWRlclVybD86IHN0cmluZztcblxuICAvKipcbiAgICogVXJsIGRhIGN1aSByZWN1cGVyYXJlIGlsIGZyYW1tZW50byBodG1sIGRlbGxhIG5hdmlnYXppb25lIHByaW5jaXBhbGUuXG4gICAqIFNlIHBhc3NhdG8gaW5pYmlzY2UgaWwgbWVjY2FuaXNtbyBkaSByZWN1cGVybyBhdXRvbWF0aWNvIGRhIEFHVy5cbiAgICogU2Ugbm9uIHNwZWNpZmljYXRvIGlsIGZyYW1tZW50byBodG1sIHZlcnJhJyByZWN1cGVyYXRvIGF1dG9tYXRpY2FtZW50ZSBkYWwgY29tcG9uZW50ZSBjb250YXR0YW5kbyBpIHNlcnZpemkgJ0hlYWRlckZvb3Rlci1NU1B1YmxpY1ZlcnNpb24nXG4gICAqIGUgJ0hlYWRlckZvb3Rlci1NU1ByaXZhdGVWZXJzaW9uJy5cbiAgICogTmVsIGNhc28gaW4gY3VpIG5vbiBzaWEgcG9zc2liaWxlIHJlY3VwZXJhcmUgaWwgZnJhbW1lbnRvIGh0bWwgdmVycmEnIHZpc3VhbGl6emF0byBxdWVsbG8gZGkgZGVmYXVsdC5cbiAgICovXG4gIG5hdmlnYXppb25lUHJpbmNpcGFsZVVybD86IHN0cmluZztcblxuICAvKipcbiAgICogVXJsIGRhIGN1aSByZWN1cGVyYXJlIGlsIGZyYW1tZW50byBodG1sIGRlbCBoZWFkZXIgc2Vjb25kYXJpb1xuICAgKiBTZSBwYXNzYXRvIGluaWJpc2NlIGlsIG1lY2NhbmlzbW8gZGkgcmVjdXBlcm8gYXV0b21hdGljbyBkYSBBR1cuXG4gICAqIFNlIG5vbiBzcGVjaWZpY2F0byBpbCBmcmFtbWVudG8gaHRtbCB2ZXJyYScgcmVjdXBlcmF0byBhdXRvbWF0aWNhbWVudGUgZGFsIGNvbXBvbmVudGUgY29udGF0dGFuZG8gaWwgc2Vydml6aW8gJ0hlYWRlckZvb3Rlci1NU1ByaXZhdGVWZXJzaW9uJy5cbiAgICogTmVsIGNhc28gaW4gY3VpIG5vbiBzaWEgcG9zc2liaWxlIHJlY3VwZXJhcmUgaWwgZnJhbW1lbnRvIGh0bWwgdmVycmEnIHZpc3VhbGl6emF0byBxdWVsbG8gZGkgZGVmYXVsdC5cbiAgICovXG4gIGhlYWRlclNlY29uZGFyaW9Vcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVybCBkYSBjdWkgcmVjdXBlcmFyZSBpbCBmcmFtbWVudG8gaHRtbCBkZWwgZm9vdGVyLlxuICAgKiBTZSBwYXNzYXRvIGluaWJpc2NlIGlsIG1lY2NhbmlzbW8gZGkgcmVjdXBlcm8gYXV0b21hdGljbyBkYSBBR1cuXG4gICAqIFNlIG5vbiBzcGVjaWZpY2F0byBpbCBmcmFtbWVudG8gaHRtbCB2ZXJyYScgcmVjdXBlcmF0byBhdXRvbWF0aWNhbWVudGUgZGFsIGNvbXBvbmVudGUgY29udGF0dGFuZG8gaWwgc2Vydml6aW8gJ0hlYWRlckZvb3Rlci1NU1B1YmxpY1ZlcnNpb24nLlxuICAgKiBOZWwgY2FzbyBpbiBjdWkgbm9uIHNpYSBwb3NzaWJpbGUgcmVjdXBlcmFyZSBpbCBmcmFtbWVudG8gbCdodG1sIHZlcnJhJyB2aXN1YWxpenphdG8gcXVlbGxvIGRpIGRlZmF1bHQuXG4gICAqL1xuICBmb290ZXJVcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZvcnphIGlsIGNvbXBvbmVudGUgYSB1dGlsaXp6YXJlIGkgZnJhbW1lbnRpIGh0bWwgZGkgZGVmYXVsdCBwZXIgaGVhZGVyIGUgZm9vdGVyIHNlIHJlY3VwZXJvQXV0b21hdGljb0h0bWwgZScgc3RhdGEgdmFsb3JpenphdGEgYSBmYWxzZS5cbiAgICogSW4gcXVlc3RvIGNhc28sIHBlciB2aXN1YWxpenphcmUgaWwgZnJhbW1lbnRvIGh0bWwgZGkgZGVmYXVsdCBpbmVyZW50ZSBsJ2hlYWRlciBzZWNvbmRhcmlvLFxuICAgKiBzYXJhJyBuZWNlc3NhcmlvIHZhbG9yaXp6YXJlIGxhIHByb3ByaWV0YScgZGkgaW5wdXQgJ2hlYWRlclNlY29uZGFyaW9EYXRhJy5cbiAgICogVmFsb3JpenphcmUgbyBtZW5vIGxhIHByb3ByaWV0YScgJ2hlYWRlclNlY29uZGFyaW9EYXRhJyBpbm9sdHJlIGRldGVybWluZXJhJyBzZSB2aXN1YWxpenphcmUgaWwgZnJhbW1lbnRvIGh0bWwgZGkgZGVmYXVsdFxuICAgKiBkZWxsYSBuYXZpZ2F6aW9uZSBwcmluY2lwYWxlIGluZXJlbnRlIGwndXRlbnRlIGF1dGVudGljYXRvIG8gcXVlbGxvIGluZXJlbnRlIGwndXRlbnRlIG5vbiBhdXRlbnRpY2F0b1xuICAgKiAoSW4gY2FzbyBkaSB1dGVudGUgbm9uIGF1dGVudGljYXRvIGlsIGxheW91dCBwcmV2aXN0byBwZXIgbGUgYXBwbGljYXppb25pIElOQUlMIG5vbiBtb3N0cmEgbCdoZWFkZXIgc2Vjb25kYXJpbykuXG4gICAqL1xuICB1c2VEZWZhdWx0SHRtbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFVybCBhIGN1aSBjb250YXR0YXJlIGwnQUdXIHBlciBpbCByZWN1cGVybyBhdXRvbWF0aWNvIGRlaSBmcmFtbWVudGkgaHRtbC5cbiAgICogUGVyIGlsIHJlY3VwZXJvIHZlcnJhbm5vIGNvbnRhdHRhdGkgaSBzZXJ2aXppICdIZWFkZXJGb290ZXItTVNQdWJsaWNWZXJzaW9uJyBlICdIZWFkZXJGb290ZXItTVNQcml2YXRlVmVyc2lvbicuXG4gICAqIFNlIG5vbiBzcGVjaWZpY2F0byB2ZXJyYScgdXRpbGl6emF0byBsJ2luZGlyaXp6byByZWxhdGl2byAvYXBpLlxuICAgKi9cbiAgYXBpR2F0ZXdheVVybD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBJbCBjb21wb25lbnRlIHJlbmRlcml6emEgbCdpbnRlcm8gbGF5b3V0IGRlbGwnYXBwbGljYXppb25lLlxuICpcbiAqIENvbXByZW5kZSBnbGkgZWxlbWVudGkgY29tdW5pIGEgdHV0dGUgbGUgYXBwbGljYXppb25pIElOQUlMOlxuICogSGVhZGVyLCBmb290ZXIsIHNwYXppbyBwZXIgYnJlYWRjcnVtYiBlIG1lbnUgbGF0ZXJhbGUuXG4gKlxuICogSWwgY29tcG9uZW50ZSBpbXBsZW1lbnRhIGF1dG9ub21hbWVudGUgaWwgbWVjY2FuaXNtbyBwZXIgcmVuZGVyZSByZXNwb25zaXZlIGwnYXBwbGljYXppb25lLFxuICogc2Vjb25kbyBxdWFudG8gcmljaGllc3RvIG5lbGxlIGxpbmVlIGd1aWRhIElOQUlMLlxuICpcbiAqIEUnIHBvc3NpYmlsZSBpbmlldHRhcmUgbmVsIGxheW91dCByZW5kZXJpenphdG8gaWwgY29udGVudXRvIHByaW5jaXBhbGUgZGVsbGUgcGFnaW5lLFxuICogaWwgYnJlYWRjcnVtYiwgaWwgbWVudSBhcHBsaWNhdGl2byBlZCBpbCBzb3R0b21lbnUuXG4gKlxuICogSW5vbHRyZSBlJyBwb3NzaWJpbGUgcGVybWV0dGVyZSBhbCBjb21wb25lbnRlIGRpIHJlY3VwZXJhcmUgaW4gYXV0b21hdGljbyBsZSBpbmZvcm1hemlvbmkgaW5lcmVudGlcbiAqIGwndXRlbnRlIGxvZ2dhdG8gZSBnbGkgaHRtbCB2aXN1YWxpenphdGkgbmVsbCdoZWFkZXIgZSBuZWwgZm9vdGVyXG4gKiBvcHB1cmUgcGFzc2FyZSBlc3BsaWNpdGFtZW50ZSBxdWVzdGUgaW5mb3JtYXppb25pIGRhbGwnZXN0ZXJuby5cbiAqXG4gKiBJbmZpbmUgZScgcG9zc2liaWxlIGZhciBpbmlldHRhcmUgYWwgY29tcG9uZW50ZSBsZSByaXNvcnNlIHN0YXRpY2hlIG5lY2Vzc2FyaWUsXG4gKiBwYXNzYW5kb2xlIGluIGlucHV0IGUgZmFjZW5kb2xlIHJlY3VwZXJhcmUgaW4gYXV0b21hdGljb1xuICogc2VuemEgZG92ZXJsZSBzcGVjaWZpY2FyZSBuZWxsJ2luZGV4Lmh0bWxcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW5haWwtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2luYWlsLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2luYWlsLWxheW91dC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ0hBTkdFX0RFVEVDVElPTl9TVFJBVEVHWSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBJbmFpbExheW91dENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBoZWFkZXJDb25maWc6IEhlYWRlckNvbmZpZ3VyYXRpb25zO1xuXG4gIC8qKlxuICAgKiBTZSB0cnVlIHZpc3VhbGl6emEgaWwgbG9hZGVyXG4gICAqL1xuICBASW5wdXQoKVxuICBzaG93TG9hZGVyOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPZ2dldHRvIGRpIGNvbmZpZ3VyYXppb25lIGRlbCBjb21wb25lbnRlLlxuICAgKi9cbiAgQElucHV0KClcbiAgY29uZmlnOiBJbmFpbExheW91dENvbmZpZ3VyYXRpb25zO1xuXG4gIC8qKlxuICAgKiBGcmFtbWVudG8gaHRtbCBkZWxsYSBwcmltYSBpbnRlc3RhemlvbmUgZGkgcGFnaW5hIChxdWVsbGEgY29udGVuZW50ZSBpbCBsb2dvKSBkYSBmYXIgdmlzdWFsaXp6YXJlIGFsIGNvbXBvbmVudGUuXG4gICAqIFZlcnJhJyB1dGlsaXp6YXRvIHNvbGFtZW50ZSBpbiBjYXNvIGRpIHJlY3VwZXJvIG5vbiBhdXRvbWF0aWNvLlxuICAgKi9cbiAgQElucHV0KClcbiAgbG9nb0hlYWRlckh0bWw6IHN0cmluZztcblxuICAvKipcbiAgICogRnJhbW1lbnRvIGh0bWwgZGVsbGEgbmF2aWdhemlvbmUgcHJpbmNpcGFsZSBkYSBmYXIgdmlzdWFsaXp6YXJlIGFsIGNvbXBvbmVudGUuXG4gICAqIFZlcnJhJyB1dGlsaXp6YXRvIHNvbGFtZW50ZSBpbiBjYXNvIGRpIHJlY3VwZXJvIG5vbiBhdXRvbWF0aWNvLlxuICAgKi9cbiAgQElucHV0KClcbiAgbmF2aWdhemlvbmVQcmluY2lwYWxlSHRtbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGcmFtbWVudG8gaHRtbCBkZWwgaGVhZGVyIHNlY29uZGFyaW8gZGEgZmFyIHZpc3VhbGl6emFyZSBhbCBjb21wb25lbnRlLlxuICAgKiBWZXJyYScgdXRpbGl6emF0byBzb2xhbWVudGUgaW4gY2FzbyBkaSByZWN1cGVybyBub24gYXV0b21hdGljby5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGhlYWRlclNlY29uZGFyaW9IdG1sOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERhdGkgZGEgdmlzdWFsaXp6YXJlIGFsbCdpbnRlcm5vIGRlbCBoZWFkZXIgc2Vjb25kYXJpby5cbiAgICogVmVycmFubm8gdXRpbGl6emF0aSBzb2xhbWVudGUgaW4gY2FzbyBkaSByZWN1cGVybyBub24gYXV0b21hdGljby5cbiAgICogVmVuZ29ubyBpZ25vcmF0aSBzZSBlJyBzdGF0YSB2YWxvcml6emF0YSBsYSBwcm9wcmlldGEnIGRpIGlucHV0ICdoZWFkZXJTZWNvbmRhcmlvSHRtbCcuXG4gICAqIFNlIGltcG9zdGF0YSBhICd0cnVlJyBsYSBwcm9wcmlldGEnICd1c2VEZWZhdWx0SHRtbCcgZGVsbCdvZ2dldHRvIGRpIGNvbmZpZ3VyYXppb25lIGRlbCBjb21wb25lbnRlLFxuICAgKiBsYSB2YWxvcml6emF6aW9uZSBkZWxsYSBwcm9wcmlldGEnICdoZWFkZXJTZWNvbmRhcmlvRGF0YScgZGV0ZXJtaW5lcmEnIHNlIHZpc3VhbGl6emFyZSBpbCBmcmFtbWVudG8gaHRtbCBkaSBkZWZhdWx0XG4gICAqIGRlbGxhIG5hdmlnYXppb25lIHByaW5jaXBhbGUgaW5lcmVudGUgbCd1dGVudGUgYXV0ZW50aWNhdG8gbyBxdWVsbG8gaW5lcmVudGUgbCd1dGVudGUgbm9uIGF1dGVudGljYXRvXG4gICAqIGUgc2UgdmlzdWFsaXp6YXJlIG8gbWVubyBpbCBmcmFtbWVudG8gaHRtbCBkaSBkZWZhdWx0IGluZXJlbnRlIGwnaGVhZGVyIHNlY29uZGFyaW8uXG4gICAqL1xuICBASW5wdXQoKVxuICBoZWFkZXJTZWNvbmRhcmlvRGF0YTogSGVhZGVyU2Vjb25kYXJpb0RhdGE7XG5cbiAgLyoqXG4gICAqIEZyYW1tZW50byBodG1sIGRlbCBmb290ZXIgZGEgZmFyIHZpc3VhbGl6emFyZSBhbCBjb21wb25lbnRlLlxuICAgKiBWZXJyYScgdXRpbGl6emF0byBzb2xhbWVudGUgaW4gY2FzbyBkaSByZWN1cGVybyBub24gYXV0b21hdGljby5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGZvb3Rlckh0bWw6IHN0cmluZztcblxuICAvKipcbiAgICogTGlzdGEgZGVsbGUgcmlzb3JzZSBlc3Rlcm5lIGRhIHV0aWxpenphcmUgcGVyIGxhIGNvcnJldHRhIHZpc3VhbGl6emF6aW9uZSBkZWwgbGF5b3V0LlxuICAgKiBWZW5nb25vIGNhcmljYXRlIGF1dG9tYXRpY2FtZW50ZSBzb2xvIHNlIGlsIGNvbXBvcnRhbWVudG8gdmllbmUgYWJpbGl0YXRvXG4gICAqIHRyYW1pdGUgbGEgcHJvcHJpZXRhJyBkaSBjb25maWd1cmF6aW9uZSAnY2FyaWNhbWVudG9EaW5hbWljb1Jpc29yc2VFc3Rlcm5lJy5cbiAgICogU2UgcGVyIGxlIHJpc29yc2Ugbm9uIHZlbmdvbm8gc3BlY2lmaWNhdGkgZGVnbGkgdXJsIGFzc29sdXRpXG4gICAqIHZlZ29ubyByZWN1cGVyYXRlIGluIGJhc2UgYSBxdWFudG8gc3BlY2lmaWNhdG8gbmVsbGEgcHJvcHJpZXRhJyBkaSBjb25maWd1cmF6aW9uZVxuICAgKiAnY2RuRW5kcG9pbnQnLlxuICAgKi9cbiAgQElucHV0KClcbiAgZXh0ZXJuYWxSZXNvdXJjZXM6IEV4dGVybmFsUmVzb3VyY2VbXTtcblxuICAvKipcbiAgICogQWxsYSByaWNlemlvbmUgZGVsIHZhbG9yZSBlZmZldHR1YSBpbCByaWNhcmljYW1lbnRvIGRlaSBmcmFtbWVudGkgaHRtbC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHJlbG9hZDogT2JzZXJ2YWJsZTx2b2lkPjtcblxuICAvKipcbiAgICogTGlzdGEgZGVnbGkgc2NyaXB0cyBlc3Rlcm5pIGRhIHV0aWxpenphcmUgcGVyIGlsIGNvcnJldHRvIGZ1bnppb25hbWVudG8gZGVsIGxheW91dC5cbiAgICogVmVuZ29ubyBjYXJpY2F0aSBhdXRvbWF0aWNhbWVudGUgc29sbyBzZSBpbCBjb21wb3J0YW1lbnRvIHZpZW5lIGFiaWxpdGF0b1xuICAgKiB0cmFtaXRlIGxhIHByb3ByaWV0YSBkaSBjb25maWdyYXppb25lIGNhcmljYW1lbnRvRGluYW1pY29TY3JpcHRFc3Rlcm5pLlxuICAgKiBTZSBwZXIgZ2xpIHNjcmlwdCBub24gdmVuZ29ubyBzcGVjaWZpY2F0aSBkZWdsaSB1cmwgYXNzb2x1dGlcbiAgICogdmVnb25vIHJlY3VwZXJhdGkgaW4gYmFzZSBhIHF1YW50byBzcGVjaWZpY2F0byBuZWxsZSBwcm9wcml0YSBkaSBjb25maWd1cmF6aW9uZVxuICAgKiBjZG5FbmRwb2ludCBlZCBhc3NldHNVcmwuXG4gICAqL1xuICAgIC8vIEBJbnB1dCgpXG4gICAgLy8gZXh0ZXJuYWxTY3JpcHRzOiBFeHRlcm5hbFNjcmlwdFtdO1xuXG4gIEBWaWV3Q2hpbGQoJ2JyZWFkY3J1bWJDb250YWluZXInKVxuICBicmVhZGNydW1iQ29udGFpbmVyOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3BsZWFzZVdhaXRDb250YWluZXInKVxuICBwbGVhc2VXYWl0Q29udGFpbmVyOiBFbGVtZW50UmVmO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTWVudUNvbXBvbmVudClcbiAgbWVudUxpc3Q6IFF1ZXJ5TGlzdDxNZW51Q29tcG9uZW50PjtcblxuICBwYWdpbmFDb3JyZW50ZTogQXBwUGFnZTtcblxuICBicmVhZGNydW1iRXN0ZXJubzogYm9vbGVhbiA9IHRydWU7XG4gIHBsZWFzZVdhaXRFc3Rlcm5vOiBib29sZWFuID0gdHJ1ZTtcblxuICAvLyBHZXN0aW9uZSByaXNvcnNlIGUgc2NyaXB0IGVzdGVybmlcbiAgcmlzb3JzZUVzdGVybmVDb3VudGVyOiBudW1iZXIgPSAwO1xuICByaXNvcnNlRXN0ZXJuZVRvdDogbnVtYmVyO1xuICBzY3JpcHRFc3Rlcm5pQ291bnRlcjogbnVtYmVyID0gMDtcbiAgc2NyaXB0RXN0ZXJuaVRvdDogbnVtYmVyO1xuXG4gIGNhcmljYW1lbnRvUmlzb3JzZUVzdGVybmVUZXJtaW5hdG86IGJvb2xlYW4gPSBmYWxzZTtcbiAgY2FyaWNhbWVudG9TY3JpcHRFc3Rlcm5pVGVybWluYXRvOiBib29sZWFuID0gZmFsc2U7XG5cbiAgaW5pemlhbGl6emF6aW9uZVRlcm1pbmF0YTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHRvZ2dsZU5hdlNlY29uZGFyaWE6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBpdHNSZWFkeSA9ICgpOiBib29sZWFuID0+IHRoaXMuaW5pemlhbGl6emF6aW9uZVRlcm1pbmF0YSA9PT0gdHJ1ZSAmJiB0aGlzLmNhcmljYW1lbnRvUmlzb3JzZUVzdGVybmVUZXJtaW5hdG8gPT09IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICAgICAgICBwcml2YXRlIGFndzogQWd3UmVzdFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuXG4gICAgc3VwZXIoY2RyKTtcbiAgICB0aGlzLmxvZ1ByZWZpeCA9ICdbaW5haWwtbGF5b3V0XSc7XG4gICAgdGhpcy5kZXRhY2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXN0aW9uZSBhdXRvbWF0aWNhIHBlciBsJ2ltcG9zdGF6aW9uZSBkZWwgZm9jdXNcbiAgICogc3VnbGkgZXJyb3JpXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxuICBvbkNsaWNrKGVsZW06IEhUTUxFbGVtZW50KSB7XG5cbiAgICAvLyBDb250cm9sbG8gY2hlIGlsIGNsaWNrIHNpYSBzdGF0byBmYXR0b1xuICAgIC8vIHN1IHVuIHB1bHNhbnRlIGNoZSBpbXBsaWNhIGwnaW1wb3N0YXppb25lXG4gICAgLy8gZGVsIGZvY3VzIHN1bGwnZXJyb3JlXG4gICAgaWYgKHRoaXMuY29uZmlnLmZvY3VzT25FcnJvciAmJiBpc1NldEZvY3VzT25FcnJvckJ1dHRvbihlbGVtKSkge1xuXG4gICAgICB0aGlzLmVtaXREZWJ1ZygnRXJyb3IgYnV0dG9uIGNsaWNrZWQnKTtcbiAgICAgIHNldEZvY3VzT25FcnJvcih0aGlzLmNvbmZpZy5zZXRGb2N1c1N0cmF0ZWd5LCB0aGlzLmNvbmZpZy5zY3JvbGxUb0Vycm9yKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cbiAgICB0aGlzLmVtaXREZWJ1ZygnY2hhbmdlcycpO1xuICAgIHRoaXMuZW1pdERlYnVnKGNoYW5nZXMpO1xuXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG5cbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0KCkge1xuXG4gICAgdGhpcy5lbWl0RGVidWcoJ2luaXQuLi4nKTtcblxuICAgIHRoaXMucmVtb3ZlTmdWZXJzaW9uKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cbiAgICBpZiAodGhpcy5jb25maWcpIHtcblxuICAgICAgdGhpcy5lbWl0RGVidWcoJ0NvbmZpZ3VyYXppb25pIEluYWlsTGF5b3V0Q29tcG9uZW50Jyk7XG4gICAgICB0aGlzLmVtaXREZWJ1Zyh0aGlzLmNvbmZpZyk7XG5cbiAgICAgIGlmICghdGhpcy5jb25maWcuY2RuRW5kcG9pbnQgJiYgdGhpcy5jb25maWcucmVjdXBlcm9BdXRvbWF0aWNvQ2RuRW5kcG9pbnQgPT09IHRydWUpIHtcblxuICAgICAgICBhd2FpdCB0aGlzLnJlY3VwZXJhQ2RuRW5kcG9pbnQoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5oZWFkZXJDb25maWcgPSB7XG4gICAgICAgIGNsaWVudElkOiB0aGlzLmNvbmZpZy5jbGllbnRJZCxcbiAgICAgICAgYXBpR2F0ZXdheVVybDogdGhpcy5jb25maWcuYXBpR2F0ZXdheVVybCxcbiAgICAgICAgbG9nb0hlYWRlclVybDogdGhpcy5jb25maWcubG9nb0hlYWRlclVybCxcbiAgICAgICAgbmF2aWdhemlvbmVQcmluY2lwYWxlVXJsOiB0aGlzLmNvbmZpZy5uYXZpZ2F6aW9uZVByaW5jaXBhbGVVcmwsXG4gICAgICAgIGhlYWRlclNlY29uZGFyaW9Vcmw6IHRoaXMuY29uZmlnLmhlYWRlclNlY29uZGFyaW9VcmwsXG4gICAgICAgIHVzZURlZmF1bHRIdG1sOiB0aGlzLmNvbmZpZy51c2VEZWZhdWx0SHRtbCxcbiAgICAgICAgcmVjdXBlcm9BdXRvbWF0aWNvSHRtbDogdGhpcy5jb25maWcucmVjdXBlcm9BdXRvbWF0aWNvSHRtbFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBJbml6aWFsaXp6YXppb25lIHJpc29yc2UgZXN0ZXJuZVxuICAgIGlmICh0aGlzLmNvbmZpZz8uY2FyaWNhbWVudG9EaW5hbWljb1Jpc29yc2VFc3Rlcm5lID09PSB0cnVlKSB7XG5cbiAgICAgIC8vIFRPRE8gYWdnaXVuZ2VyZSBhbGxhIERPQ1xuICAgICAgYXdhaXQgdGhpcy5yZWN1cGVyYUhlYWREYUFHVygpO1xuICAgICAgdGhpcy5sb2FkUmlzb3JzZUVzdGVybmUodGhpcy5leHRlcm5hbFJlc291cmNlcyB8fCB3ZWJraXRFeHRlcm5hbFJlc291cmNlcywgJ2xpbmsnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYXJpY2FtZW50b1Jpc29yc2VFc3Rlcm5lVGVybWluYXRvID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBJbml6aWFsaXp6YXppb25lIHNjcmlwdCBlc3Rlcm5pXG4gICAgLy8gaWYgKHRoaXMuY29uZmlnPy5jYXJpY2FtZW50b0RpbmFtaWNvU2NyaXB0RXN0ZXJuaSA9PT0gdHJ1ZVxuICAgIC8vICAgJiYgdGhpcy5leHRlcm5hbFNjcmlwdHM/Lmxlbmd0aCkge1xuICAgIC8vXG4gICAgLy8gICBhd2FpdCB0aGlzLmxvYWRSaXNvcnNlRXN0ZXJuZSh0aGlzLmV4dGVybmFsU2NyaXB0cywgJ3NjcmlwdCcpO1xuICAgIC8vIH0gZWxzZSB7XG4gICAgLy9cbiAgICAvLyAgIHRoaXMuY2FyaWNhbWVudG9TY3JpcHRFc3Rlcm5pVGVybWluYXRvID0gdHJ1ZTtcbiAgICAvLyB9XG5cbiAgICBpZiAodGhpcy5jb25maWc/LnNjcm9sbFRvcEF0TmF2aWdhdGlvbkVuZCkge1xuXG4gICAgICB0aGlzLnB1c2goXG4gICAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgICAgIC5waXBlKGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gc2Nyb2xsVG9wKCkpXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdERlYnVnKCcuLi5pbml6aWFsaXp6YXppb25lIHRlcm1pbmF0YSEnKTtcbiAgICB0aGlzLmluaXppYWxpenphemlvbmVUZXJtaW5hdGEgPSB0cnVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlTmdWZXJzaW9uKG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG5cbiAgICBpZiAobmF0aXZlRWxlbWVudCkge1xuXG4gICAgICBpZiAobmF0aXZlRWxlbWVudD8uaGFzQXR0cmlidXRlKCduZy12ZXJzaW9uJykpIHtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShuYXRpdmVFbGVtZW50LCAnbmctdmVyc2lvbicpO1xuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZU5nVmVyc2lvbihuYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblxuICAgIHRoaXMuYnJlYWRjcnVtYkVzdGVybm8gPSB0aGlzLmJyZWFkY3J1bWJDb250YWluZXIgPyB0aGlzLmJyZWFkY3J1bWJDb250YWluZXIubmF0aXZlRWxlbWVudC5jaGlsZEVsZW1lbnRDb3VudCA+IDAgOiBmYWxzZTtcbiAgICB0aGlzLnBsZWFzZVdhaXRFc3Rlcm5vID0gdGhpcy5wbGVhc2VXYWl0Q29udGFpbmVyID8gaXNOb3RCbGFua09yTnVsbCh0aGlzLnBsZWFzZVdhaXRDb250YWluZXIubmF0aXZlRWxlbWVudC5pbm5lckhUTUwpIDogZmFsc2U7XG5cbiAgICBpZiAodGhpcy5tZW51TGlzdD8ubGVuZ3RoID4gMCkge1xuXG4gICAgICB0aGlzLm1lbnVMaXN0LmZvckVhY2goKG1lbnU6IE1lbnVDb21wb25lbnQpID0+IHtcblxuICAgICAgICB0aGlzLnB1c2goXG4gICAgICAgICAgbWVudS5jdXJyZW50SXRlbS5zdWJzY3JpYmUoKGN1cnJlbnRFbGVtZW50OiBNZW51SXRlbSkgPT4ge1xuXG4gICAgICAgICAgICB0aGlzLmVtaXREZWJ1ZygnVm9jZSBtZW51IGNvcnJlbnRlJyk7XG4gICAgICAgICAgICB0aGlzLmVtaXREZWJ1ZyhjdXJyZW50RWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmIChjdXJyZW50RWxlbWVudCAhPSB1bmRlZmluZWQpIHtcblxuICAgICAgICAgICAgICB0aGlzLnBhZ2luYUNvcnJlbnRlID0gdGhpcy50b1BhZ2luYUFwcGxpY2F0aXZhKGN1cnJlbnRFbGVtZW50KTtcbiAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcblxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gIH1cblxuICBwcml2YXRlIHRvUGFnaW5hQXBwbGljYXRpdmEoZWxlbWVudDogTWVudUl0ZW0pOiBBcHBQYWdlIHtcblxuICAgIHJldHVybiBlbGVtZW50ICE9IHVuZGVmaW5lZFxuICAgICAgPyB7XG4gICAgICAgIHRpdGxlOiB0aGlzLmdldEVsZW1lbnRMYWJlbChlbGVtZW50KSxcbiAgICAgICAgdXJsOiB0aGlzLmdldEVsZW1lbnRMaW5rKGVsZW1lbnQpLFxuICAgICAgICBwYXJlbnQ6IHRoaXMudG9QYWdpbmFBcHBsaWNhdGl2YShlbGVtZW50LnBhcmVudClcbiAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0RWxlbWVudExpbmsoZWxlbWVudDogTWVudUl0ZW0pOiBzdHJpbmcge1xuXG4gICAgcmV0dXJuIGlzRnVuY3Rpb24oZWxlbWVudC5saW5rKSA/IChlbGVtZW50LmxpbmsgYXMgR2V0U3RyaW5nRm4pKCkgOiBlbGVtZW50Lmxpbms7XG4gIH1cblxuICBnZXRFbGVtZW50TGFiZWwoZWxlbWVudDogTWVudUl0ZW0pOiBzdHJpbmcge1xuXG4gICAgcmV0dXJuIGlzRnVuY3Rpb24oZWxlbWVudC5sYWJlbCkgPyAoZWxlbWVudC5sYWJlbCBhcyBHZXRTdHJpbmdGbikoKSA6IGVsZW1lbnQubGFiZWw7XG4gIH1cblxuICAvLyAtLS0gTG9naWNhIGNhcmljYW1lbnRvIHJpc29yc2UgZXN0ZXJuZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogUmVjdXBlcmEgZGEgQXBpIEdhdGV3YXkgbCdlbmRwb2ludCBkZWxsYSBjZG5cbiAgICogZSBsbyBpbXBvc3RhIG5lbGxhIGNvbmZpZ3VyYXppb25lIGRlbCBjb21wb25lbnRlLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyByZWN1cGVyYUNkbkVuZHBvaW50KCkge1xuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuZW1pdERlYnVnKGBSZWN1cGVybyBjZG4gZW5kcG9pbnQgZGEgQUdXIGdsb2JhbCBjb25maWdgKTtcblxuICAgICAgbGV0IHJlc3BvbnNlOiBHbG9iYWxDb25maWdSZXNwb25zZSA9IGF3YWl0IGxhc3RWYWx1ZUZyb20odGhpcy5hZ3cuZ2V0R2xvYmFsQ29uZmlnKHtcbiAgICAgICAgY2xpZW50SWQ6IHRoaXMuY29uZmlnPy5jbGllbnRJZCxcbiAgICAgICAgYWd3RW5kUG9pbnQ6IHRoaXMuY29uZmlnPy5hcGlHYXRld2F5VXJsXG4gICAgICB9KSk7XG5cbiAgICAgIHRoaXMuY29uZmlnLmNkbkVuZHBvaW50ID0gcmVzcG9uc2UuY2RuX2VuZHBvaW50O1xuXG4gICAgfSBjYXRjaCAoZSkge1xuXG4gICAgICB0aGlzLmVtaXRFcnJvcignRXJyb3JlIG5lbCByZWN1cGVybyBkZWwgY2RuRW5kcG9pbnQgZGEgYXBpIGdhdGV3YXknKTtcbiAgICAgIHRoaXMuZW1pdEVycm9yKGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gcmlzb3JzZUVzdGVybmVcbiAgICogQHBhcmFtIHR5cGVcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgbG9hZFJpc29yc2VFc3Rlcm5lKHJpc29yc2VFc3Rlcm5lOiAoRXh0ZXJuYWxSZXNvdXJjZSB8IEV4dGVybmFsU2NyaXB0KVtdLCB0eXBlOiBSZXNvdXJjZVR5cGUpIHtcblxuICAgIHRoaXMuZW1pdERlYnVnKCdMb2FkIHJpc29yc2UgZXN0ZXJuZScpO1xuICAgIHRoaXMuZW1pdERlYnVnKHJpc29yc2VFc3Rlcm5lKTtcblxuICAgIHJpc29yc2VFc3Rlcm5lLmZvckVhY2goKHJlc291cmNlOiBFeHRlcm5hbFJlc291cmNlIHwgRXh0ZXJuYWxTY3JpcHQpID0+IHRoaXMuaW1wb3N0YVBhdGhSaXNvcnNhKHJlc291cmNlLCB0eXBlKSk7XG5cbiAgICBsZXQgbG9hZGVkUmVzb3VyY2VzOiBMb2FkZWRSZXNvdXJjZVtdID0gW107XG4gICAgcmlzb3JzZUVzdGVybmUuZm9yRWFjaCgocmlzb3JzYTogRXh0ZXJuYWxSZXNvdXJjZSB8IEV4dGVybmFsU2NyaXB0KSA9PiBsb2FkZWRSZXNvdXJjZXMucHVzaCh7bG9hZGVkOiBmYWxzZSwgcmVzb3VyY2U6IHJpc29yc2F9KSk7XG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcblxuICAgICAgY2FzZSAnbGluayc6XG4gICAgICAgIHRoaXMucmlzb3JzZUVzdGVybmVDb3VudGVyID0gMDtcbiAgICAgICAgdGhpcy5yaXNvcnNlRXN0ZXJuZVRvdCA9IHJpc29yc2VFc3Rlcm5lLmxlbmd0aDtcbiAgICAgICAgdGhpcy5jYXJpY2FSaXNvcnNlRXN0ZXJuZShsb2FkZWRSZXNvdXJjZXMpO1xuICAgICAgICBicmVhaztcbiAgICAgIC8vIGNhc2UgXCJzY3JpcHRcIjpcbiAgICAgIC8vICAgdGhpcy5zY3JpcHRFc3Rlcm5pQ291bnRlciA9IDA7XG4gICAgICAvLyAgIHRoaXMuc2NyaXB0RXN0ZXJuaVRvdCA9IHJpc29yc2VFc3Rlcm5lLmxlbmd0aDtcbiAgICAgIC8vICAgYXdhaXQgdGhpcy5jYXJpY2FTY3JpcHRFc3Rlcm5pKGxvYWRlZFJlc291cmNlcyk7XG4gICAgICAvLyAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gcmlzb3JzYUVzdGVybmFcbiAgICogQHBhcmFtIHR5cGVcbiAgICovXG4gIHByaXZhdGUgaW1wb3N0YVBhdGhSaXNvcnNhKHJpc29yc2FFc3Rlcm5hOiBFeHRlcm5hbFJlc291cmNlIHwgRXh0ZXJuYWxTY3JpcHQsIHR5cGU6IFJlc291cmNlVHlwZSkge1xuXG4gICAgbGV0IHVybFByb3BlcnR5OiBzdHJpbmc7XG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcblxuICAgICAgY2FzZSAnbGluayc6XG4gICAgICAgIHVybFByb3BlcnR5ID0gJ2hyZWYnO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnc2NyaXB0JzpcbiAgICAgICAgdXJsUHJvcGVydHkgPSAnc3JjJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmlzb3JzYUVzdGVybmEuYXNzZXRVcmwgPSAhaXNBYnNvbHV0ZShyaXNvcnNhRXN0ZXJuYVt1cmxQcm9wZXJ0eV0pID8gcmlzb3JzYUVzdGVybmEuYXNzZXRVcmwgOiAnJztcblxuICAgIHJpc29yc2FFc3Rlcm5hLmNkbkVuZHBvaW50ID0gIWlzQWJzb2x1dGUocmlzb3JzYUVzdGVybmEuYXNzZXRVcmwpXG4gICAgICA/IHJpc29yc2FFc3Rlcm5hLmNkbkVuZHBvaW50ID8/IHRoaXMuY29uZmlnLmNkbkVuZHBvaW50ID8/ICcnXG4gICAgICA6ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZXNcbiAgICogQHBhcmFtIGluZGV4XG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGNhcmljYVJpc29yc2VFc3Rlcm5lKHJlc291cmNlczogTG9hZGVkUmVzb3VyY2VbXSwgaW5kZXg6IG51bWJlciA9IDApIHtcblxuICAgIGlmIChyZXNvdXJjZXMgJiYgcmVzb3VyY2VzLmxlbmd0aCA+IDApIHtcblxuICAgICAgcmVzb3VyY2VzLmZvckVhY2gocmVzb3VyY2UgPT4ge1xuXG4gICAgICAgIHRoaXMuZW1pdERlYnVnKCdDYXJpY2FtZW50byByaXNvcnNhIGVzdGVybmE6Jyk7XG4gICAgICAgIHRoaXMuZW1pdERlYnVnKHJlc291cmNlKTtcblxuICAgICAgICB0aGlzLmNyZWFFbGVtZW50b1Jpc29yc2FFc3Rlcm5hKHJlc291cmNlLCAnbGluaycpXG4gICAgICAgICAgLnRoZW4oKHJlc3BvbnNlOiBMb2FkZWRSZXNvdXJjZVJlc3BvbnNlKSA9PiB7XG5cbiAgICAgICAgICAgIHRoaXMuZW1pdERlYnVnKCcuLi5jYXJpY2FtZW50byByaXNvcnNhIGVzdGVybmEgY29tcGxldGF0bycpO1xuICAgICAgICAgICAgdGhpcy5lbWl0RGVidWcocmVzcG9uc2UpO1xuICAgICAgICAgIH0sIGUgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbWl0RXJyb3IoJ0Vycm9yZSBjYXJpY2FtZW50byByaXNvcnNhIGVzdGVybmEhJyk7XG4gICAgICAgICAgICB0aGlzLmVtaXRFcnJvcihlKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gc2NyaXB0c1xuICAgKiBAcGFyYW0gaW5kZXhcbiAgICovXG4gIC8vIHByaXZhdGUgYXN5bmMgY2FyaWNhU2NyaXB0RXN0ZXJuaShzY3JpcHRzOiBMb2FkZWRSZXNvdXJjZVtdLCBpbmRleDogbnVtYmVyID0gMCkge1xuICAvL1xuICAvLyAgIGlmIChpbmRleCA8IHNjcmlwdHMubGVuZ3RoKSB7XG4gIC8vXG4gIC8vICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgLy8gICAgICAgdGhpcy5lbWl0RGVidWcoJ0NhcmljYW1lbnRvIHNjcmlwdCBlc3Rlcm5vOicpO1xuICAvLyAgICAgICB0aGlzLmVtaXREZWJ1ZyhzY3JpcHRzW2luZGV4XSk7XG4gIC8vXG4gIC8vICAgICAgIHRoaXMuY3JlYUVsZW1lbnRvUmlzb3JzYUVzdGVybmEoc2NyaXB0c1tpbmRleF0sICdzY3JpcHQnKVxuICAvLyAgICAgICAgIC50aGVuKChyZXNwb25zZTogTG9hZGVkUmVzb3VyY2VSZXNwb25zZSkgPT4ge1xuICAvL1xuICAvLyAgICAgICAgICAgdGhpcy5lbWl0RGVidWcoJy4uLmNhcmljYW1lbnRvIHNjcmlwdCBlc3Rlcm5vIGNvbXBsZXRhdG8nKTtcbiAgLy8gICAgICAgICAgIHRoaXMuZW1pdERlYnVnKHJlc3BvbnNlKTtcbiAgLy8gICAgICAgICB9KVxuICAvLyAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAvLyAgICAgICAgICAgdGhpcy5lbWl0RXJyb3IoJ0Vycm9yZSBjYXJpY2FtZW50byBzY3JpcHQgZXN0ZXJubyEnKTtcbiAgLy8gICAgICAgICAgIHRoaXMuZW1pdEVycm9yKGUpO1xuICAvLyAgICAgICAgIH0pXG4gIC8vICAgICAgICAgLmZpbmFsbHkoKCkgPT4gdGhpcy5jYXJpY2FTY3JpcHRFc3Rlcm5pKHNjcmlwdHMsIGluZGV4ICsgMSkpO1xuICAvL1xuICAvLyAgICAgfSwgdGhpcy5jb25maWcuc2NyaXB0TG9hZGluZ0RlZWxheSB8fCAzMDApO1xuICAvLyAgIH0gZWxzZSB7XG4gIC8vXG4gIC8vICAgICB0aGlzLmVtaXREZWJ1ZygnSW5pemlvIGF6aW9uaUZpbmVDYXJpY2FtZW50b1NjcmlwdCcpO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC8qKlxuICAgKlxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VcbiAgICogQHBhcmFtIHR5cGVcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgY3JlYUVsZW1lbnRvUmlzb3JzYUVzdGVybmEocmVzb3VyY2U6IExvYWRlZFJlc291cmNlLCB0eXBlOiBSZXNvdXJjZVR5cGUpOiBQcm9taXNlPExvYWRlZFJlc291cmNlUmVzcG9uc2U+IHtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cbiAgICAgIGxldCByZXNvdXJjZVVybDogc3RyaW5nID0gcmVzb3VyY2UucmVzb3VyY2VbJ3NyYyddIHx8IHJlc291cmNlLnJlc291cmNlWydocmVmJ107XG5cbiAgICAgIC8vcmVzb2x2ZSBpZiBhbHJlYWR5IGxvYWRlZFxuICAgICAgaWYgKHJlc291cmNlLmxvYWRlZCkge1xuXG4gICAgICAgIHJlc29sdmUoe3Jlc291cmNlOiByZXNvdXJjZVVybCwgbG9hZGVkOiB0cnVlLCBzdGF0dXM6ICdBbHJlYWR5IExvYWRlZCd9KTtcbiAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgbGV0IHJlc291cmNlRWxlbWVudDogYW55O1xuXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuXG4gICAgICAgICAgY2FzZSAnc2NyaXB0JzpcbiAgICAgICAgICAgIHJlc291cmNlRWxlbWVudCA9IGNyZWF0ZVNjcmlwdEVsZW1lbnQoKHJlc291cmNlLnJlc291cmNlIGFzIEV4dGVybmFsU2NyaXB0KSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdsaW5rJzpcbiAgICAgICAgICAgIHJlc291cmNlRWxlbWVudCA9IGNyZWF0ZUxpbmtFbGVtZW50KChyZXNvdXJjZS5yZXNvdXJjZSBhcyBFeHRlcm5hbFJlc291cmNlKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXNvdXJjZUVsZW1lbnQucmVhZHlTdGF0ZSkgeyAgLy8gSUVcblxuICAgICAgICAgIHJlc291cmNlRWxlbWVudC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSAoKSA9PiB7XG5cbiAgICAgICAgICAgIGlmIChyZXNvdXJjZUVsZW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRlZCcgfHwgcmVzb3VyY2VFbGVtZW50LnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZScpIHtcblxuICAgICAgICAgICAgICB0aGlzLnJpc29yc2FPbkxvYWQodHlwZSk7XG4gICAgICAgICAgICAgIHJlc291cmNlRWxlbWVudC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBudWxsO1xuICAgICAgICAgICAgICByZXNvdXJjZS5sb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICByZXNvbHZlKHtyZXNvdXJjZTogcmVzb3VyY2VVcmwsIGxvYWRlZDogdHJ1ZSwgc3RhdHVzOiAnTG9hZGVkJ30pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG5cbiAgICAgICAgfSBlbHNlIHsgIC8vIE90aGVyc1xuXG4gICAgICAgICAgcmVzb3VyY2VFbGVtZW50Lm9ubG9hZCA9ICgpID0+IHtcblxuICAgICAgICAgICAgdGhpcy5yaXNvcnNhT25Mb2FkKHR5cGUpO1xuICAgICAgICAgICAgcmVzb3VyY2UubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHJlc29sdmUoe3Jlc291cmNlOiByZXNvdXJjZVVybCwgbG9hZGVkOiB0cnVlLCBzdGF0dXM6ICdMb2FkZWQnfSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlc291cmNlRWxlbWVudC5vbmVycm9yID0gKGVycm9yOiBhbnkpID0+IHtcblxuICAgICAgICAgIHRoaXMucmlzb3JzYU9uTG9hZCh0eXBlKTtcbiAgICAgICAgICByZWplY3Qoe3Jlc291cmNlOiByZXNvdXJjZS5yZXNvdXJjZSwgbG9hZGVkOiBmYWxzZSwgc3RhdHVzOiAnTG9hZGVkJ30pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocmVzb3VyY2VFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJpc29yc2FPbkxvYWQodHlwZTogUmVzb3VyY2VUeXBlKSB7XG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcblxuICAgICAgY2FzZSAnc2NyaXB0JzpcbiAgICAgICAgdGhpcy5zY3JpcHRFc3Rlcm5pQ291bnRlcisrO1xuICAgICAgICB0aGlzLmNhcmljYW1lbnRvU2NyaXB0RXN0ZXJuaVRlcm1pbmF0byA9IHRoaXMuc2NyaXB0RXN0ZXJuaUNvdW50ZXIgPT09IHRoaXMuc2NyaXB0RXN0ZXJuaVRvdDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2xpbmsnOlxuICAgICAgICB0aGlzLnJpc29yc2VFc3Rlcm5lQ291bnRlcisrO1xuICAgICAgICB0aGlzLmNhcmljYW1lbnRvUmlzb3JzZUVzdGVybmVUZXJtaW5hdG8gPSB0aGlzLnJpc29yc2VFc3Rlcm5lQ291bnRlciA9PT0gdGhpcy5yaXNvcnNlRXN0ZXJuZVRvdDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2FyaWNhbWVudG9SaXNvcnNlRXN0ZXJuZVRlcm1pbmF0bykge1xuXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVjdXBlcmFIZWFkRGFBR1coKSB7XG5cbiAgICB0aGlzLmVtaXREZWJ1ZyhgUmVjdXBlcm8gcmlzb3JzZSBlc3Rlcm5lIGhlYWQgZGEgQUdXYCk7XG5cbiAgICBsZXQgcmVxdWVzdDogQUdXUmVxdWVzdCA9IHtjbGllbnRJZDogdGhpcy5jb25maWcuY2xpZW50SWQsIGFnd0VuZFBvaW50OiB0aGlzLmNvbmZpZy5hcGlHYXRld2F5VXJsfTtcblxuICAgIHRyeSB7XG5cbiAgICAgIGxldCByZXNwb25zZTogQ2hlY2tzZXNzaW9uUmVzcG9uc2UgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKHRoaXMuYWd3LmNoZWNrc2Vzc2lvbihyZXF1ZXN0KSk7XG5cbiAgICAgIGxldCByZXNwb25zZUhGJDogT2JzZXJ2YWJsZTxIRlJlc3BvbnNlPiA9IHJlc3BvbnNlPy5yZXN1bHQgPT09IHRydWVcbiAgICAgICAgPyB0aGlzLmFndy5nZXRQcml2YXRlSGVhZFJXKHJlcXVlc3QpXG4gICAgICAgIDogdGhpcy5hZ3cuZ2V0UHVibGljSGVhZFJXKHJlcXVlc3QpO1xuXG4gICAgICBsZXQgcmVzcG9uc2VIRjogSEZSZXNwb25zZSA9IGF3YWl0IGxhc3RWYWx1ZUZyb20ocmVzcG9uc2VIRiQpO1xuXG4gICAgICBpZiAocmVzcG9uc2VIRj8uaHRtbCAhPSB1bmRlZmluZWQpIHtcblxuICAgICAgICBkb2N1bWVudC5oZWFkLmlubmVySFRNTCA9IGAke2RvY3VtZW50LmhlYWQuaW5uZXJIVE1MfSAke3Jlc3BvbnNlSEYuaHRtbH1gO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG5cbiAgICB9IGNhdGNoIChlcnIpIHtcblxuICAgICAgdGhpcy5lbWl0RXJyb3IoJ0Vycm9yZSByZWN1cGVybyByaXNvcnNlIGVzdGVybmUgaGVhZCBkYSBBR1cnKTtcbiAgICAgIHRoaXMuZW1pdEVycm9yKGVycik7XG4gICAgfVxuICB9XG59XG5cbi8vIC0tLSBPcGVyYXRvcmkgcGVyIGxhIGdlc3Rpb25lIGRlbGxlIHJpc29yc2UgZXN0ZXJuZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuY29uc3QgY3JlYXRlTGlua0VsZW1lbnQgPSAocmVzb3VyY2U6IEV4dGVybmFsUmVzb3VyY2UpID0+IHtcblxuICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcblxuICBsZXQgdXJsID0gYCR7cmVzb3VyY2UuY2RuRW5kcG9pbnR9JHsoaXNOb3RCbGFua09yTnVsbChyZXNvdXJjZS5jZG5FbmRwb2ludCkgJiYgIXN0YXJ0V2l0aFNsYXNoKHJlc291cmNlLmFzc2V0VXJsKSkgPyAnLycgOiAnJ30ke3Jlc291cmNlLmFzc2V0VXJsfSR7cmVzb3VyY2UuaHJlZn1gO1xuXG4gIGFkZFByb3BlcnR5KGVsZW1lbnQsICdyZWwnLCByZXNvdXJjZS5yZWwpO1xuICBhZGRQcm9wZXJ0eShlbGVtZW50LCAndHlwZScsIHJlc291cmNlLnR5cGUpO1xuICBhZGRQcm9wZXJ0eShlbGVtZW50LCAnaHJlZicsIHVybCk7XG4gIGFkZFByb3BlcnR5KGVsZW1lbnQsICdtZWRpYScsIHJlc291cmNlLm1lZGlhKTtcbiAgYWRkUHJvcGVydHkoZWxlbWVudCwgJ2hyZWZsYW5nJywgcmVzb3VyY2UuaHJlZmxhbmcpO1xuXG4gIHJldHVybiBlbGVtZW50O1xufTtcblxuY29uc3QgY3JlYXRlU2NyaXB0RWxlbWVudCA9IChzY3JpcHQ6IEV4dGVybmFsU2NyaXB0KSA9PiB7XG5cbiAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcblxuICBsZXQgdXJsID0gYCR7c2NyaXB0LmNkbkVuZHBvaW50fSR7KGlzTm90QmxhbmtPck51bGwoc2NyaXB0LmNkbkVuZHBvaW50KSAmJiAhc3RhcnRXaXRoU2xhc2goc2NyaXB0LmFzc2V0VXJsKSkgPyAnLycgOiAnJ30ke3NjcmlwdC5hc3NldFVybH0ke3NjcmlwdC5zcmN9YDtcblxuICBhZGRQcm9wZXJ0eShlbGVtZW50LCAnc3JjJywgdXJsKTtcbiAgYWRkUHJvcGVydHkoZWxlbWVudCwgJ3R5cGUnLCBzY3JpcHQudHlwZSk7XG4gIGFkZFByb3BlcnR5KGVsZW1lbnQsICdjaGFyc2V0Jywgc2NyaXB0LmNoYXJzZXQpO1xuXG4gIGlmIChzY3JpcHQuYXN5bmMgPT09IHRydWUpIHtcblxuICAgIGVsZW1lbnQuYXN5bmMgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHNjcmlwdC5kZWZlciA9PT0gdHJ1ZSkge1xuXG4gICAgZWxlbWVudC5kZWZlciA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn07XG5cbmNvbnN0IGFkZFByb3BlcnR5ID0gKGVsZW06IGFueSwgbmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG5cbiAgaWYgKGVsZW0gIT0gdW5kZWZpbmVkICYmIHZhbHVlICE9IHVuZGVmaW5lZCkge1xuXG4gICAgZWxlbVtuYW1lXSA9IHZhbHVlO1xuICB9XG59O1xuXG4vLyAtLS0gT3BlcmF0b3JpIHBlciBsYSBnZXN0aW9uZSBkZWwgZm9jdXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmNvbnN0IGlzU2V0Rm9jdXNPbkVycm9yQnV0dG9uID0gKGVsZW06IEhUTUxFbGVtZW50KTogYm9vbGVhbiA9PiBlbGVtICYmICgoZWxlbS5ub2RlTmFtZSA9PSAnQlVUVE9OJyAmJiBoYXNDbGFzc1ZhbGlkYXRpb25CdG4oZWxlbSkpIHx8IGlzU2V0Rm9jdXNPbkVycm9yQnV0dG9uKGVsZW0ucGFyZW50RWxlbWVudCkpO1xuY29uc3QgaGFzQ2xhc3NWYWxpZGF0aW9uQnRuID0gKGVsZW06IEhUTUxFbGVtZW50KTogYm9vbGVhbiA9PiBlbGVtICYmIGVsZW0uY2xhc3NMaXN0ICYmIGVsZW0uY2xhc3NMaXN0LmNvbnRhaW5zKEVSUk9SX0JUTl9DTEFTUyk7XG5cbmNvbnN0IGZvY3VzYWJsZSA9ICc6bm90KFtkaXNhYmxlZF0pOm5vdChbcmVhZG9ubHldKTpub3QoW3RhYmluZGV4PVxcJy0xXFwnXSknO1xuY29uc3QgZm9jdXNhYmxlRWxlbWVudCA9IGBpbnB1dCR7Zm9jdXNhYmxlfSxzZWxlY3Qke2ZvY3VzYWJsZX0sdGV4dGFyZWEke2ZvY3VzYWJsZX0sLmZlZWRiYWNrLWZvY3VzYWJsZWA7XG5cbi8qKlxuICogVHJvdmEgZSByZXN0aXR1aXNjZSBsJ2VsZW1lbnRvIGZvY3VzYWJsZVxuICogYWxsJ2ludGVybm8gZGVsbCdlbGVtZW50byBkYXRvXG4gKlxuICogQHBhcmFtIG91dGVyXG4gKi9cbmNvbnN0IGZpbmRJbm5lckZvY3VzYWJsZUVsZW1lbnQgPSAob3V0ZXI6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQgPT4gb3V0ZXIgPyBvdXRlci5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50Pihmb2N1c2FibGVFbGVtZW50KVswXSA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBJbXBvc3RhIGlsIGZvY3VzIHN1bGwnZXJyb3JlXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRGb2N1c09uRXJyb3IgPSAoc2V0Rm9jdXNTdHJhdGVneTogU2V0Rm9jdXNTdHJhdGVneSwgc2Nyb2xsVG9FcnJvcjogYm9vbGVhbikgPT4ge1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgLy8gbGV0IG1vZGFsZUluUGFnaW5hOiBib29sZWFuID0gJCgnLm1vZGFsLmZhZGUuaW4nKS5ub3QoYC4ke01PREFMX0NPTkZJUk1fQ0xBU1N9YCkubGVuZ3RoID4gMCBUT0RPXG5cbiAgbGV0IG1vZGFsZUluUGFnaW5hOiBib29sZWFuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm1vZGFsLmZhZGUuaW4nKS5sZW5ndGg7XG5cbiAgLy8gU2UgZXNpc3RlIHVuYSBtb2RhbGUgaW4gcGFnaW5hIGNoZSBub24gZScgdW5hIG1vZGFsZSBkaSBjb25mZXJtYVxuICBpZiAobW9kYWxlSW5QYWdpbmEpIHtcblxuICAgIHNldEZvY3VzT25GaXJzdE1vZGFsRXJyb3IoKTtcblxuICB9IGVsc2Uge1xuXG4gICAgc3dpdGNoIChzZXRGb2N1c1N0cmF0ZWd5KSB7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICBjYXNlIFNldEZvY3VzU3RyYXRlZ3kuT25HbG9iYWxGZWVkYmFjazpcbiAgICAgICAgc2V0Rm9jdXNPbkdsb2JhbEVycm9yRmVlZGJhY2soc2Nyb2xsVG9FcnJvcik7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNldEZvY3VzU3RyYXRlZ3kuT25GaXJzdFBhZ2VFcnJvcjpcbiAgICAgICAgc2V0Rm9jdXNPbkZpcnN0UGFnZUVycm9yKHNjcm9sbFRvRXJyb3IpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogSW1wb3N0YSBpbCBmb2N1cyBzdWwgcHJpbW8gZWxlbWVudG8gbmVsbGEgbW9kYWxlIGFuZGF0byBpbiBlcnJvcmUgc2UgZXNpc3RlLlxuICovXG5leHBvcnQgY29uc3Qgc2V0Rm9jdXNPbkZpcnN0TW9kYWxFcnJvciA9ICgpID0+IHtcblxuICBzZXRUaW1lb3V0KCgpID0+IHtcblxuICAgIGxldCBmaXJzdE1vZGFsRXJyb3JFbGVtZW50OiBIVE1MRWxlbWVudCA9IGZpbmRJbm5lckZvY3VzYWJsZUVsZW1lbnQoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJy5tb2RhbC1ib2R5IC5oYXMtZXJyb3InKVswXSk7XG4gICAgbGV0IGZpcnN0TW9kYWxFcnJvckZlZWRiYWNrOiBIVE1MRWxlbWVudCA9IGZpbmRJbm5lckZvY3VzYWJsZUVsZW1lbnQoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJy5tb2RhbC1ib2R5IC5mZWVkYmFjay1ib3gtZXJyb3InKVswXSk7XG5cbiAgICBpZiAoZmlyc3RNb2RhbEVycm9yRWxlbWVudCkge1xuXG4gICAgICBmaXJzdE1vZGFsRXJyb3JFbGVtZW50LmZvY3VzKCk7XG5cbiAgICB9IGVsc2UgaWYgKGZpcnN0TW9kYWxFcnJvckZlZWRiYWNrKSB7XG5cbiAgICAgIGZpcnN0TW9kYWxFcnJvckZlZWRiYWNrLmZvY3VzKCk7XG4gICAgfVxuXG4gIH0sIDEwMCk7XG59O1xuXG4vKipcbiAqIEltcG9zdGEgaWwgZm9jdXMgc3VsIHByaW1vIGVsZW1lbnRvIGluIHBhZ2luYSBhbmRhdG8gaW4gZXJyb3JlIHNlIGVzaXN0ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNldEZvY3VzT25GaXJzdFBhZ2VFcnJvciA9IChzY3JvbGxUb0Vycm9yPzogYm9vbGVhbikgPT4ge1xuXG4gIHNldFRpbWVvdXQoKCkgPT4ge1xuXG4gICAgbGV0IG91dGVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJy5oYXMtZXJyb3IsLmZlZWRiYWNrLWJveC1lcnJvcjpub3QoLmdsb2JhbC1mZWVkYmFjayknKVswXTtcblxuICAgIGxldCBmaXJzdEVycm9yRWxlbWVudDogSFRNTEVsZW1lbnQgPSBmaW5kSW5uZXJGb2N1c2FibGVFbGVtZW50KG91dGVyKTtcblxuICAgIGlmIChmaXJzdEVycm9yRWxlbWVudCAmJiAhaXNIaWRkZW4oZmlyc3RFcnJvckVsZW1lbnQpKSB7XG5cbiAgICAgIGlmIChzY3JvbGxUb0Vycm9yID09PSB0cnVlKSB7XG5cbiAgICAgICAgc2Nyb2xsVG9FbGVtZW50KGZpcnN0RXJyb3JFbGVtZW50LmlkKTtcbiAgICAgIH1cblxuICAgICAgLy8gSWwgZGVsYXkgc2VydmUgYWQgYXNwZXR0YXJlIGNoZSB0ZXJtaW5pIGxvIHNjcm9sbFxuICAgICAgc2V0VGltZW91dCgoKSA9PiBmaXJzdEVycm9yRWxlbWVudC5mb2N1cygpLCA1MDApO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRGb2N1c09uR2xvYmFsRXJyb3JGZWVkYmFjayhzY3JvbGxUb0Vycm9yKTtcbiAgICB9XG4gIH0sIDEwMCk7XG59O1xuXG4vKipcbiAqIEltcG9zdGEgaWwgZm9jdXMgc3VsIGZlZWRiYWNrIGdsb2JhbGVcbiAqL1xuZXhwb3J0IGNvbnN0IHNldEZvY3VzT25HbG9iYWxGZWVkYmFjayA9IChzY3JvbGxUb0ZlZWRiYWNrPzogYm9vbGVhbikgPT4gc2V0Rm9jdXNPbkZpcnN0RmVlZGJhY2soJy5nbG9iYWwtZmVlZGJhY2snLCBzY3JvbGxUb0ZlZWRiYWNrKTtcblxuLyoqXG4gKiBJbXBvc3RhIGlsIGZvY3VzIHN1bCBmZWVkYmFjayBnbG9iYWxlXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRGb2N1c09uR2xvYmFsRXJyb3JGZWVkYmFjayA9IChzY3JvbGxUb0ZlZWRiYWNrPzogYm9vbGVhbikgPT4gc2V0Rm9jdXNPbkZpcnN0RmVlZGJhY2soJy5nbG9iYWwtZmVlZGJhY2suZmVlZGJhY2stYm94LWVycm9yJywgc2Nyb2xsVG9GZWVkYmFjayk7XG5cbi8qKlxuICogSW1wb3N0YSBpbCBmb2N1cyBzdWwgcHJpbW8gZmVlZGJhY2sgZGkgZXJyb3JlXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRGb2N1c09uRmlyc3RFcnJvckZlZWRiYWNrID0gKHNjcm9sbFRvRmVlZGJhY2s/OiBib29sZWFuKSA9PiBzZXRGb2N1c09uRmlyc3RGZWVkYmFjaygnLmZlZWRiYWNrLWJveC1lcnJvcicsIHNjcm9sbFRvRmVlZGJhY2spO1xuXG4vKipcbiAqIEltcG9zdGEgaWwgZm9jdXMgc3VsIHByaW1vIGZlZWRiYWNrIGluIHBhZ2luYVxuICpcbiAqIEBwYXJhbSBzZWxlY3RvclxuICogQHBhcmFtIHNjcm9sbFRvRmVlZGJhY2tcbiAqL1xuZXhwb3J0IGNvbnN0IHNldEZvY3VzT25GaXJzdEZlZWRiYWNrID0gKHNlbGVjdG9yPzogc3RyaW5nLCBzY3JvbGxUb0ZlZWRiYWNrPzogYm9vbGVhbikgPT4ge1xuXG4gIHNldFRpbWVvdXQoKCkgPT4ge1xuXG4gICAgbGV0IGZlZWRiYWNrOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KHNlbGVjdG9yIHx8ICcuZmVlZGJhY2stYm94JylbMF07XG5cbiAgICBpZiAoZmVlZGJhY2spIHtcblxuICAgICAgaWYgKHNjcm9sbFRvRmVlZGJhY2spIHtcblxuICAgICAgICBzY3JvbGxUb0VsZW1lbnQoZmVlZGJhY2suZ2V0QXR0cmlidXRlKCdpZCcpKTtcbiAgICAgIH1cblxuICAgICAgbGV0IGZlZWRiYWNrRm9jdXNhYmxlOiBIVE1MRWxlbWVudCA9IGZlZWRiYWNrLnF1ZXJ5U2VsZWN0b3IoJy5mZWVkYmFjay1mb2N1c2FibGUnKTtcblxuICAgICAgaWYgKGZlZWRiYWNrRm9jdXNhYmxlICE9IHVuZGVmaW5lZCkge1xuXG4gICAgICAgIC8vIElsIGRlbGF5IHNlcnZhIGFkIGFzcGV0dGFyZSBjaGUgdGVybWluaSBsbyBzY3JvbGxcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiBmZWVkYmFja0ZvY3VzYWJsZS5mb2N1cygpLCA1MDApO1xuICAgICAgfVxuICAgIH1cbiAgfSwgMTAwKTtcbn07XG5cbi8vIHRvZG9cbi8qKlxuICpcbiAqIEBwYXJhbSBpZFxuICogQHBhcmFtIHNjcm9sbFRvRmVlZGJhY2tcbiAqIEBwYXJhbSBtc1xuICovXG5leHBvcnQgY29uc3Qgc2V0Rm9jdXNPbkZlZWRiYWNrID0gKGlkPzogc3RyaW5nLCBzY3JvbGxUb0ZlZWRiYWNrPzogYm9vbGVhbiwgbXM/OiBudW1iZXIpID0+IHtcblxuICBzZXRUaW1lb3V0KCgpID0+IHtcblxuICAgIGxldCBmZWVkYmFjazogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihgIyR7aWR9YClbMF07XG5cbiAgICBpZiAoZmVlZGJhY2spIHtcblxuICAgICAgaWYgKHNjcm9sbFRvRmVlZGJhY2spIHtcblxuICAgICAgICBzY3JvbGxUb0VsZW1lbnQoZmVlZGJhY2suZ2V0QXR0cmlidXRlKCdpZCcpKTtcbiAgICAgIH1cblxuICAgICAgbGV0IGZlZWRiYWNrRm9jdXNhYmxlOiBIVE1MRWxlbWVudCA9IGZlZWRiYWNrLnF1ZXJ5U2VsZWN0b3IoJy5mZWVkYmFjay1mb2N1c2FibGUnKTtcblxuICAgICAgaWYgKGZlZWRiYWNrRm9jdXNhYmxlICE9IHVuZGVmaW5lZCkge1xuXG4gICAgICAgIC8vIElsIGRlbGF5IHNlcnZhIGFkIGFzcGV0dGFyZSBjaGUgdGVybWluaSBsbyBzY3JvbGxcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiBmZWVkYmFja0ZvY3VzYWJsZS5mb2N1cygpLCA1MDApO1xuICAgICAgfVxuICAgIH1cbiAgfSwgbXMgfHwgMTAwKTtcbn07XG4iLCI8aW5haWwtbG9hZGVyIFtzaG93XT1cInNob3dMb2FkZXJcIj48L2luYWlsLWxvYWRlcj5cbjxkZWJ1Zy1wcmUgKm5nSWY9XCJzaG93U3RhdGVcIj5baW5haWwtbGF5b3V0XTxicj5cbiAgPHN0YXRlLXByb3BlcnRpZSBbbGFiZWxdPVwiJ2NvbmZpZydcIiBbcHJvcGVydGllXT1cImNvbmZpZ1wiPjwvc3RhdGUtcHJvcGVydGllPlxuICA8c3RhdGUtcHJvcGVydGllIFtsYWJlbF09XCInaW5pemlhbGl6emF6aW9uZVRlcm1pbmF0YSdcIiBbcHJvcGVydGllXT1cImluaXppYWxpenphemlvbmVUZXJtaW5hdGFcIj48L3N0YXRlLXByb3BlcnRpZT5cbiAgPHN0YXRlLXByb3BlcnRpZSBbbGFiZWxdPVwiJ2NhcmljYW1lbnRvUmlzb3JzZUVzdGVybmVUZXJtaW5hdG8nXCIgW3Byb3BlcnRpZV09XCJjYXJpY2FtZW50b1Jpc29yc2VFc3Rlcm5lVGVybWluYXRvXCI+PC9zdGF0ZS1wcm9wZXJ0aWU+XG4gIDxzdGF0ZS1wcm9wZXJ0aWUgW2xhYmVsXT1cIidjYXJpY2FtZW50b1NjcmlwdEVzdGVybmlUZXJtaW5hdG8nXCIgW3Byb3BlcnRpZV09XCJjYXJpY2FtZW50b1NjcmlwdEVzdGVybmlUZXJtaW5hdG9cIj48L3N0YXRlLXByb3BlcnRpZT5cbiAgPHN0YXRlLXByb3BlcnRpZSBbbGFiZWxdPVwiJ2l0c1JlYWR5J1wiIFtwcm9wZXJ0aWVdPVwiaXRzUmVhZHkoKVwiPjwvc3RhdGUtcHJvcGVydGllPlxuICA8c3RhdGUtcHJvcGVydGllIFtsYWJlbF09XCInYnJlYWRjcnVtYkVzdGVybm8nXCIgW3Byb3BlcnRpZV09XCJicmVhZGNydW1iRXN0ZXJub1wiPjwvc3RhdGUtcHJvcGVydGllPlxuICA8c3RhdGUtcHJvcGVydGllIFtsYWJlbF09XCIncGFnaW5hQ29ycmVudGUnXCIgW3Byb3BlcnRpZV09XCJwYWdpbmFDb3JyZW50ZVwiPjwvc3RhdGUtcHJvcGVydGllPlxuPC9kZWJ1Zy1wcmU+XG48ZGl2IGNsYXNzPVwiaW5haWwtbGF5b3V0XCI+XG4gIDxkaXYgKm5nSWY9XCIhaXRzUmVhZHkoKVwiICNwbGVhc2VXYWl0Q29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwbGVhc2VXYWl0RXN0ZXJubzsgZWxzZSBkZWZhdWx0UGxlYXNlV2FpdFwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3BsZWFzZS13YWl0XVwiPjwvbmctY29udGVudD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRQbGVhc2VXYWl0PlxuICAgICAgPGRpdiBjbGFzcz1cInBsZWFzZS13YWl0XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjb25maWc/LmFwcE5hbWVcIiBjbGFzcz1cImFwcC1uYW1lXCIgW2lubmVySFRNTF09XCJjb25maWcuYXBwTmFtZVwiPjwvZGl2PlxuICAgICAgICA8ZGl2PkNhcmljYW1lbnRvLi4uPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkZXJcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiXG4gICAgICAgW2hpZGRlbl09XCIhaXRzUmVhZHkoKVwiXG4gICAgICAgW25nQ2xhc3NdPVwieyd3aWRlJyA6IGNvbmZpZyAmJiBjb25maWcuY29udGFpbmVyV2lkZX1cIj5cblxuICAgIDxoZWFkZXIgaWQ9XCJpbmFpbC1oZWFkZXJcIlxuICAgICAgICAgICAgKm5nSWY9XCJpbml6aWFsaXp6YXppb25lVGVybWluYXRhXCJcbiAgICAgICAgICAgIFtjb25maWddPVwiaGVhZGVyQ29uZmlnXCJcbiAgICAgICAgICAgIFtsb2dvSGVhZGVySHRtbF09XCJsb2dvSGVhZGVySHRtbFwiXG4gICAgICAgICAgICBbbmF2aWdhemlvbmVQcmluY2lwYWxlSHRtbF09XCJuYXZpZ2F6aW9uZVByaW5jaXBhbGVIdG1sXCJcbiAgICAgICAgICAgIFtoZWFkZXJTZWNvbmRhcmlvSHRtbF09XCJoZWFkZXJTZWNvbmRhcmlvSHRtbFwiXG4gICAgICAgICAgICBbaGVhZGVyU2Vjb25kYXJpb0RhdGFdPVwiaGVhZGVyU2Vjb25kYXJpb0RhdGFcIlxuICAgICAgICAgICAgW3JlbG9hZF09XCJyZWxvYWRcIlxuICAgICAgICAgICAgW3Nob3dTdGF0ZV09XCJmYWxzZVwiXG4gICAgICAgICAgICBbZGV0ZWN0Q2hhbmdlXT1cInRoaXMuZGV0ZWN0Q2hhbmdlXCJcbiAgICAgICAgICAgIFtsb2dPbkNvbnNvbGVdPVwibG9nT25Db25zb2xlXCJcbiAgICAgICAgICAgIChsb2cpPVwiZW1pdCgkZXZlbnQpXCI+XG4gICAgICA8bmctY29udGFpbmVyIGxvZ28taGVhZGVyPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbG9nby1oZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyIG5hdmlnYXppb25lLXByaW5jaXBhbGU+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltuYXZpZ2F6aW9uZS1wcmluY2lwYWxlXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciBoZWFkZXItc2Vjb25kYXJpbz5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2hlYWRlci1zZWNvbmRhcmlvXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvaGVhZGVyPlxuXG4gICAgPCEtLSBCcmVhZGNydW1iIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgYnJlYWRjcnVtYnMgaW50ZXJuZXQtYnJlYWRjcnVtYlwiXG4gICAgICAgICBhcmlhLWxhYmVsPVwiQnJlYWRjcnVtYlwiXG4gICAgICAgICAjYnJlYWRjcnVtYkNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJicmVhZGNydW1iRXN0ZXJub1wiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYnJlYWRjcnVtYl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxpbmFpbC1icmVhZGNydW1iICpuZ0lmPVwiIWJyZWFkY3J1bWJFc3Rlcm5vXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsb2dPbkNvbnNvbGVdPVwidGhpcy5sb2dPbkNvbnNvbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2N1cnJlbnRQYWdlXT1cInBhZ2luYUNvcnJlbnRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChsb2cpPVwiZW1pdCgkZXZlbnQpXCI+XG4gICAgICA8L2luYWlsLWJyZWFkY3J1bWI+XG4gICAgPC9kaXY+XG5cbiAgICA8aW5haWwtdHJpZ2dlci1zbGlkZXItbWVudS1idXR0b24gKGNsaWNrKT1cInRvZ2dsZU5hdlNlY29uZGFyaWEuZW1pdCgpXCI+PC9pbmFpbC10cmlnZ2VyLXNsaWRlci1tZW51LWJ1dHRvbj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cblxuICAgICAgPGluYWlsLW5hdmlnYXppb25lLXNlY29uZGFyaWEgW3RvZ2dsZV09XCJ0b2dnbGVOYXZTZWNvbmRhcmlhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2dPbkNvbnNvbGVdPVwibG9nT25Db25zb2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2cpPVwiZW1pdCgkZXZlbnQpXCI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBzaWRlYmFyLXN1cGVyaW9yZT5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2lkZWJhci1zdXBlcmlvcmVdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIHNpZGViYXItaW5mZXJpb3JlPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzaWRlYmFyLWluZmVyaW9yZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8L2luYWlsLW5hdmlnYXppb25lLXNlY29uZGFyaWE+XG5cbiAgICAgIDxtYWluICpuZ0lmPVwiaW5pemlhbGl6emF6aW9uZVRlcm1pbmF0YVwiXG4gICAgICAgICAgICBpZD1cImNvbnRlbnV0b3ByaW5jaXBhbGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTggY29sLWxnLTlcIj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYWluLWNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPC9tYWluPlxuXG4gICAgPC9kaXY+XG4gICAgPGluYWlsLWZvb3RlciAqbmdJZj1cImluaXppYWxpenphemlvbmVUZXJtaW5hdGFcIlxuICAgICAgICAgICAgICAgICAgW2NsaWVudElkXT1cImNvbmZpZz8uY2xpZW50SWRcIlxuICAgICAgICAgICAgICAgICAgW2FwaUdhdGV3YXlVcmxdPVwiY29uZmlnPy5hcGlHYXRld2F5VXJsXCJcbiAgICAgICAgICAgICAgICAgIFt1c2VEZWZhdWx0XT1cImNvbmZpZz8udXNlRGVmYXVsdEh0bWxcIlxuICAgICAgICAgICAgICAgICAgW3JlY3VwZXJvQXV0b21hdGljb0h0bWxdPVwiY29uZmlnPy5yZWN1cGVyb0F1dG9tYXRpY29IdG1sXCJcbiAgICAgICAgICAgICAgICAgIFtodG1sXT1cImZvb3Rlckh0bWxcIlxuICAgICAgICAgICAgICAgICAgW3VybF09XCJjb25maWc/LmZvb3RlclVybFwiXG4gICAgICAgICAgICAgICAgICBbcmVsb2FkXT1cInJlbG9hZFwiXG4gICAgICAgICAgICAgICAgICBbZGV0ZWN0Q2hhbmdlXT1cInRoaXMuZGV0ZWN0Q2hhbmdlXCJcbiAgICAgICAgICAgICAgICAgIFtsb2dPbkNvbnNvbGVdPVwidGhpcy5sb2dPbkNvbnNvbGVcIlxuICAgICAgICAgICAgICAgICAgW3Nob3dTdGF0ZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAobG9nKT1cImVtaXQoJGV2ZW50KVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9pbmFpbC1mb290ZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
589
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5haWwtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWluYWlsLWNvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9sYXlvdXQvaW5haWwtbGF5b3V0L2luYWlsLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pbmFpbC1jb21tb24vc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvbGF5b3V0L2luYWlsLWxheW91dC9pbmFpbC1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBT0wsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUMsYUFBYSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFDLGFBQWEsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzlFLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDdEksT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFHM0QsT0FBTyxFQUFjLGFBQWEsRUFBVyxNQUFNLHdCQUF3QixDQUFDO0FBQzVFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxhQUFhLEVBQWEsTUFBTSxNQUFNLENBQUM7Ozs7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XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtIZWFkZXJDb25maWd1cmF0aW9uc30gZnJvbSAnLi4vaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uRW5kLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0Jhc2VDb21wb25lbnQsIENIQU5HRV9ERVRFQ1RJT05fU1RSQVRFR1l9IGZyb20gJy4uLy4uL2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7aXNBYnNvbHV0ZSwgaXNIaWRkZW4sIGlzTm90QmxhbmtPck51bGwsIHNjcm9sbFRvRWxlbWVudCwgc2Nyb2xsVG9wLCBzdGFydFdpdGhTbGFzaH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvY29tbW9uLm9wZXJhdG9ycyc7XG5pbXBvcnQge3dlYmtpdEV4dGVybmFsUmVzb3VyY2VzfSBmcm9tICcuL3dlYmtpdC1yZXNvdXJjZXMnO1xuaW1wb3J0IHtFeHRlcm5hbFJlc291cmNlLCBFeHRlcm5hbFNjcmlwdH0gZnJvbSAnLi9zdGF0aWMtcmVzb3VyY2VzJztcbmltcG9ydCB7QXBwUGFnZX0gZnJvbSAnLi4vYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XG5pbXBvcnQge0dldFN0cmluZ0ZuLCBNZW51Q29tcG9uZW50LCBNZW51SXRlbX0gZnJvbSAnLi4vbWVudS9tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQge2ZpbHRlcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtFUlJPUl9CVE5fQ0xBU1N9IGZyb20gJy4uLy4uL3V4L2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7aXNGdW5jdGlvbn0gZnJvbSAncnhqcy9pbnRlcm5hbC91dGlsL2lzRnVuY3Rpb24nO1xuaW1wb3J0IHtsYXN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7QUdXUmVxdWVzdCwgQWd3UmVzdFNlcnZpY2UsIENoZWNrc2Vzc2lvblJlc3BvbnNlLCBHbG9iYWxDb25maWdSZXNwb25zZSwgSEZSZXNwb25zZX0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvYWd3LXJlc3Quc2VydmljZSc7XG5pbXBvcnQge0hlYWRlclNlY29uZGFyaW9EYXRhfSBmcm9tICcuLi9oZWFkZXItc2Vjb25kYXJpby9oZWFkZXItc2Vjb25kYXJpby5jb21wb25lbnQnO1xuXG50eXBlIFJlc291cmNlVHlwZSA9ICdzY3JpcHQnIHwgJ2xpbmsnO1xuXG5pbnRlcmZhY2UgTG9hZGVkUmVzb3VyY2Uge1xuXG4gIGxvYWRlZDogYm9vbGVhbixcbiAgcmVzb3VyY2U6IEV4dGVybmFsUmVzb3VyY2UgfCBFeHRlcm5hbFNjcmlwdFxufVxuXG5pbnRlcmZhY2UgTG9hZGVkUmVzb3VyY2VSZXNwb25zZSB7XG5cbiAgcmVzb3VyY2U6IHN0cmluZ1xuICBsb2FkZWQ6IGJvb2xlYW4sXG4gIHN0YXR1czogc3RyaW5nXG59XG5cbmV4cG9ydCBlbnVtIFNldEZvY3VzU3RyYXRlZ3kge1xuXG4gIC8qKi5cbiAgICogSW5kaWNhIGNoZSBpbCBmb2N1cyBkb3ZyYScgZXNzZXJlIGltcG9zdGF0byBzdWwgZmVlZGJhY2sgZ2xvYmFsZS5cbiAgICovXG4gIE9uR2xvYmFsRmVlZGJhY2sgPSAwLFxuXG4gIC8qKlxuICAgKiBJbmRpY2EgY2hlIGlsIGZvY3VzIGRvdnJhJyBlc3NlcmUgaW1wb3N0YXRvIHN1bCBwcmltbyBlbGVtZW50byBpbiBwYWdpbmEgYW5kYXRvIGluIGVycm9yZS5cbiAgICovXG4gIE9uRmlyc3RQYWdlRXJyb3IgPSAxXG59XG5cbmV4cG9ydCBjbGFzcyBJbmFpbExheW91dENvbmZpZ3VyYXRpb25zIHtcblxuICAvKipcbiAgICogSW5kaWNhIGlsIG5vbWUgZGVsbCdhcHBsaWNhemlvbmUuXG4gICAqL1xuICBhcHBOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWNhdGl2byBkZWxsJ2FwcGxpY2F6aW9uZSBjb3JyZW50ZSBpbiBhY2NvcmRvXG4gICAqIGNvbiBsJ0FHVy5cbiAgICovXG4gIGNsaWVudElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZSB0cnVlIGltcG9zdGEgYXV0b21hdGljYW1lbnRlIGlsIGZvY3VzIHN1bCBwcmltbyBlbGVtZW50b1xuICAgKiBkaSBpbnB1dCBhbmRhdG8gaW4gZXJyb3JlLlxuICAgKi9cbiAgZm9jdXNPbkVycm9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2UgdHJ1ZSBlZmZldHR1YSB1bm8gc2Nyb2xsaW5nIGFsbCdlbGVtZW50b1xuICAgKiBhbmRhdG8gaW4gZXJyb3JlIHByaW1hIGRpIGltcG9zdGFyZSBpbCBmb2N1cy5cbiAgICovXG4gIHNjcm9sbFRvRXJyb3I/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmEgc3UgcXVhbGUgZWxlbWVudG8gaW1wb3N0YXJlIGlsIGZvY3VzIGFsIHZlcmlmaWNhcnNpXG4gICAqIGRpIHVuIGVycm9yZS5cbiAgICovXG4gIHNldEZvY3VzU3RyYXRlZ3k/OiBTZXRGb2N1c1N0cmF0ZWd5ID0gU2V0Rm9jdXNTdHJhdGVneS5Pbkdsb2JhbEZlZWRiYWNrO1xuXG4gIC8qKlxuICAgKiBTZSB0cnVlIGFsbGEgZmluZSBkaSB1biBldmVudG8gZGkgcm91dGluZyBlZmZldHR1YSB1bm8gc2Nyb2xsIGluIGNpbWEgYWxsYSBwYWdpbmEuXG4gICAqL1xuICBzY3JvbGxUb3BBdE5hdmlnYXRpb25FbmQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZSB0cnVlIHBlcm1ldHRlIGFsIGxheW91dCBkaSBvY2N1cGFyZSBsJ2ludGVyYSBsYXJnaGV6emEgZGVsbG8gc2NoZXJtb1xuICAgKi9cbiAgY29udGFpbmVyV2lkZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNlIHRydWUgYWJpbGl0YSBpbCBjYXJpY2FtZW50byBhdXRvbWF0aWNvIGRlbGxlIHJpc29yc2UgZXN0ZXJuZSBkYWxsYSBjZG4gSU5BSUwuXG4gICAqIFZlbmdvbm8gY3JlYXRpIGUgaW5pZXR0YXRpIG5lbCB0YWcgPGhlYWQ+IGkgdGFnIDxsaW5rPlxuICAgKiBpbmVyZW50aSBsZSByaXNvcnNlIGVzdGVybmUgbmVjZXNzYXJpZSBhbGxhXG4gICAqIGNvcnJldHRhIHZpc3VhbGl6emF6aW9uZSBkZWxsJ2FwcGxpY2F6aW9uZS5cbiAgICogU2Ugbm9uIHBhc3NhdGUgaW4gaW5wdXQgYWwgY29tcG9uZW50ZSB0cmFtaXRlIGxhIHByb3ByaWV0YScgJ2V4dGVybmFsUmVzb3VyY2VzJ1xuICAgKiB2ZW5nb25vIGNhcmljYXRlIGxlIHJpc29yc2UgZGkgZGVmYXVsdC5cbiAgICogTGUgcmlzb3JzZSBkaSBkZWZhdWx0IHZlbmdvbm8gcmVjdXBlcmF0ZSBkYWwgZG9taW5pb1xuICAgKiBzcGVjaWZpY2F0byB0cmFtaXRlIGxhIHByb3ByaWV0YScgJ2NkbkVuZHBvaW50Jy5cbiAgICovXG4gIGNhcmljYW1lbnRvRGluYW1pY29SaXNvcnNlRXN0ZXJuZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIHRvZG8gcml2ZWRlcmVcbiAgICogU2UgdHJ1ZSBhYmlsaXRhIGlsIGNhcmljYW1lbnRvIGF1dG9tYXRpY28gZGVnbGkgc2NyaXB0IGVzdGVybmkuXG4gICAqIFZlbmdvbm8gY3JlYXRpIGVkIGluaWV0dGF0aSBuZWwgdGFnIDxoZWFkPiBpIHRhZyA8c2NyaXB0PlxuICAgKiBpbmVyZW50aSBnbGkgc2NyaXB0IG5lY2Vzc2FyaSBhbFxuICAgKiBjb3JyZXR0byBmdW56aW9uYW1lbnRvIGRlbGwnYXBwbGljYXppb25lLlxuICAgKiBTZSBub24gcGFzc2F0aSBpbiBpbnB1dCBhbCBjb21wb25lbnRlXG4gICAqIHZlbmdvbm8gY2FyaWNhdGkgZ2xpIHNjcmlwdCBkaSBkZWZhdWx0LlxuICAgKiB0b2RvOiBpbnNlcmlyZSBsaXN0YSBzY3JpcHRzICh2ZWRlcmUgZmlsZSB3ZWJraXQtcmVzb3VyY2VzLnRzKVxuICAgKiBHbGkgc2NyaXB0cyBkaSBkZWZhdWx0IHZlbmdvbm8gcmVjdXBlcmF0aSBkYWwgZG9taW5pb1xuICAgKiBzcGVjaWZpY2F0byB0cmFtaXRlIGxhIHByb3ByaWV0YSBjZG5FbmRwb2ludCBlIGNlcmNhdGlcbiAgICogbmVsIHNvdHRvcGF0aCBzcGVjaWZpY2F0byB0cmFtaXRlIHByb3ByaWV0YSBhc3NldHNVcmxcbiAgICovXG4gIC8vIGNhcmljYW1lbnRvRGluYW1pY29TY3JpcHRFc3Rlcm5pPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5kcG9pbnQgZGVsbGEgY2RuLlxuICAgKiAoZS5nLiBodHRwczovL2NkbmNvbGwuaW5haWxjbG91ZC5pdClcbiAgICogU2Ugbm9uIHNwZWNpZmljYXRvIGUgc2UgaWwgdmFsb3JlIGRlbGxhIHByb3ByaWV0YScgJ3JlY3VwZXJvQXV0b21hdGljb0NkbkVuZHBvaW50JyBlJyB0cnVlXG4gICAqIHZpZW5lIHJlY3VwZXJhdG8gYXV0b21hdGljYW1lbnRlIGNvbnRhdHRhbmRvIGlsIHNlcnZpemlvICcvYXBpL2dsb2JhbC1jb25maWcnIGVzcG9zdG8gZGEgQUdXLFxuICAgKiBhbHRyaW1lbnRpIHZpZW5lIHV0aWxpenphdG8gaSBkb21pbm8gY29ycmVudGUuXG4gICAqL1xuICBjZG5FbmRwb2ludD86IHN0cmluZztcblxuICAvKipcbiAgICogUmVjdXBlcmEgYXV0b21hdGljYW1lbnRlIGwnZW5kcG9pbnQgZGVsbGEgY2RuLlxuICAgKiBMJ2VuZHBvaW50IHZpZW5lIHJlY3VwZXJhdG8gY29udGF0dGFuZG8gbCdBR1cgYWxsJ2luZGlyaXp6b1xuICAgKiAnL2FwaS9nbG9iYWwtY29uZmlnJy5cbiAgICogSWwgcmVjdXBlcm8gZGVsbCdlbmRwb2ludCBub24gdmllbmUgZWZmZXR0dWF0byBzZSBlJyBzdGF0YVxuICAgKiBpbXBvc3RhdGEgbGEgcHJvcHJpZXRhJyBkaSBjb25maWd1cmF6aW9uZSAnY2RuRW5kcG9pbnQnLlxuICAgKiBMJ2FwaSBnYXRld2F5IHZpZW5lIGNvbnRhdHRhdG8gcHJlbmRlbmRvIGluIGNvbnNpZGVyYXppb25lXG4gICAqIHF1YW50byBzcGVjaWZpY2F0byB0cmFtaXRlIGxhIHByb3ByaWV0YScgZGkgY29uZmlndXJhemlvbmVcbiAgICogYXBpR2F0ZXdheVVybC5cbiAgICogKi9cbiAgcmVjdXBlcm9BdXRvbWF0aWNvQ2RuRW5kcG9pbnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUZW1wbyBkaSBhdHRlc2EgaW4gbWlsbGlzZWNvbmRpXG4gICAqIGRlbCBjYXJpY2FtZW50byB0cmEgZ2xpIHNjcmlwdC5cbiAgICogSWwgdmFsb3JlIGRpIGRlZmF1bHQgZScgMzAwLlxuICAgKi9cbiAgLy8gc2NyaXB0TG9hZGluZ0RlZWxheT86IG51bWJlcjtcblxuICAvKipcbiAgICogU2UgdHJ1ZSB2ZW5nb25vIHJlY3VwZXJhdGkgYXV0b21hdGljYW1lbnRlIGkgZnJhbW1lbnRpIGh0bWwgZGkgbG9nbywgbmF2aWdhemlvbmUgcHJpbmNpcGFsZSwgaGVhZGVyIHNlY29uZGFyaW8gZSBmb290ZXIuXG4gICAqIEkgZnJhbW1lbnRpIGh0bWwgdmVycmFubm8gcmVjdXBlcmF0aSBhZ2xpIGluZGlyaXp6aSBpbmRpY2F0aSB0cmFtaXRlIGxlIHByb3ByaWV0YScgZGkgY29uZmlndXJhemlvbmUgbG9nb0hlYWRlclVybCwgbmF2aWdhemlvbmVQcmluY2lwYWxlVXJsXG4gICAqIGhlYWRlclNlY29uZGFyaW9VcmwgZSBmb290ZXJVcmwuXG4gICAqIFNlIGdsaSBpbmRpcml6emkgbm9uIHZlbmdvbm8gaW5kaWNhdGkgaSBmcmFtbWVudGkgaHRtbCB2ZXJyYW5ubyByZWN1cGVyYXRpIGF1dG9tYXRpY2FtZW50ZSBkYWwgY29tcG9uZW50ZSBjb250YXR0YW5kb1xuICAgKiBpIHNlcnZpemkgJ0hlYWRlckZvb3Rlci1NU1B1YmxpY1ZlcnNpb24nIGUgJ0hlYWRlckZvb3Rlci1NU1ByaXZhdGVWZXJzaW9uJyBlc3Bvc3RpIHN1IEFHVy5cbiAgICogU2UgZmFsc2UgaSBmcmFtbWVudGkgaHRtbCBkb3ZyYW5ubyBlc3NlcmUgcGFzc2F0aSBpbiBpbnB1dCBhbCBjb21wb25lbnRlIHRyYW1pdGUgbGUgcHJvcHJpZXRhJyBkaSBpbnB1dCBsb2dvSGVhZGVySHRtbCxcbiAgICogbmF2aWdhemlvbmVQcmluY2lwYWxlSHRtbCwgaGVhZGVyU2Vjb25kYXJpb0h0bWwgZSBmb290ZXJIdG1sIG8gaW5zZXJpdGkgbmVsIGNvbnRlbnQgZGVsIGNvbXBvbmVudGUgYXR0cmF2ZXJzbyBnbGkgYXBwb3NpdGkgc2VsZXR0b3JpIGRpIGNvbnRlbnV0by5cbiAgICovXG4gIHJlY3VwZXJvQXV0b21hdGljb0h0bWw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVcmwgZGEgY3VpIHJlY3VwZXJhcmUgaWwgZnJhbW1lbnRvIGh0bWwgZGVsbGEgcHJpbWEgaW50ZXN0YXppb25lIGRpIHBhZ2luYSAocXVlbGxhIGNvbnRlbmVudGUgaWwgbG9nbykuXG4gICAqIFNlIHBhc3NhdG8gaW5pYmlzY2UgaWwgbWVjY2FuaXNtbyBkaSByZWN1cGVybyBhdXRvbWF0aWNvIGRhIEFHVy5cbiAgICogU2Ugbm9uIHNwZWNpZmljYXRvIGlsIGZyYW1tZW50byBodG1sIHZlcnJhJyByZWN1cGVyYXRvIGF1dG9tYXRpY2FtZW50ZSBkYWwgY29tcG9uZW50ZSBjb250YXR0YW5kbyBpbCBzZXJ2aXppbyAnSGVhZGVyRm9vdGVyLU1TUHVibGljVmVyc2lvbicuXG4gICAqIE5lbCBjYXNvIGluIGN1aSBub24gc2lhIHBvc3NpYmlsZSByZWN1cGVyYXJlIGlsIGZyYW1tZW50byBsJ2h0bWwgdmVycmEnIHZpc3VhbGl6emF0byBxdWVsbG8gZGkgZGVmYXVsdC5cbiAgICovXG4gIGxvZ29IZWFkZXJVcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVybCBkYSBjdWkgcmVjdXBlcmFyZSBpbCBmcmFtbWVudG8gaHRtbCBkZWxsYSBuYXZpZ2F6aW9uZSBwcmluY2lwYWxlLlxuICAgKiBTZSBwYXNzYXRvIGluaWJpc2NlIGlsIG1lY2NhbmlzbW8gZGkgcmVjdXBlcm8gYXV0b21hdGljbyBkYSBBR1cuXG4gICAqIFNlIG5vbiBzcGVjaWZpY2F0byBpbCBmcmFtbWVudG8gaHRtbCB2ZXJyYScgcmVjdXBlcmF0byBhdXRvbWF0aWNhbWVudGUgZGFsIGNvbXBvbmVudGUgY29udGF0dGFuZG8gaSBzZXJ2aXppICdIZWFkZXJGb290ZXItTVNQdWJsaWNWZXJzaW9uJ1xuICAgKiBlICdIZWFkZXJGb290ZXItTVNQcml2YXRlVmVyc2lvbicuXG4gICAqIE5lbCBjYXNvIGluIGN1aSBub24gc2lhIHBvc3NpYmlsZSByZWN1cGVyYXJlIGlsIGZyYW1tZW50byBodG1sIHZlcnJhJyB2aXN1YWxpenphdG8gcXVlbGxvIGRpIGRlZmF1bHQuXG4gICAqL1xuICBuYXZpZ2F6aW9uZVByaW5jaXBhbGVVcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVybCBkYSBjdWkgcmVjdXBlcmFyZSBpbCBmcmFtbWVudG8gaHRtbCBkZWwgaGVhZGVyIHNlY29uZGFyaW9cbiAgICogU2UgcGFzc2F0byBpbmliaXNjZSBpbCBtZWNjYW5pc21vIGRpIHJlY3VwZXJvIGF1dG9tYXRpY28gZGEgQUdXLlxuICAgKiBTZSBub24gc3BlY2lmaWNhdG8gaWwgZnJhbW1lbnRvIGh0bWwgdmVycmEnIHJlY3VwZXJhdG8gYXV0b21hdGljYW1lbnRlIGRhbCBjb21wb25lbnRlIGNvbnRhdHRhbmRvIGlsIHNlcnZpemlvICdIZWFkZXJGb290ZXItTVNQcml2YXRlVmVyc2lvbicuXG4gICAqIE5lbCBjYXNvIGluIGN1aSBub24gc2lhIHBvc3NpYmlsZSByZWN1cGVyYXJlIGlsIGZyYW1tZW50byBodG1sIHZlcnJhJyB2aXN1YWxpenphdG8gcXVlbGxvIGRpIGRlZmF1bHQuXG4gICAqL1xuICBoZWFkZXJTZWNvbmRhcmlvVXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVcmwgZGEgY3VpIHJlY3VwZXJhcmUgaWwgZnJhbW1lbnRvIGh0bWwgZGVsIGZvb3Rlci5cbiAgICogU2UgcGFzc2F0byBpbmliaXNjZSBpbCBtZWNjYW5pc21vIGRpIHJlY3VwZXJvIGF1dG9tYXRpY28gZGEgQUdXLlxuICAgKiBTZSBub24gc3BlY2lmaWNhdG8gaWwgZnJhbW1lbnRvIGh0bWwgdmVycmEnIHJlY3VwZXJhdG8gYXV0b21hdGljYW1lbnRlIGRhbCBjb21wb25lbnRlIGNvbnRhdHRhbmRvIGlsIHNlcnZpemlvICdIZWFkZXJGb290ZXItTVNQdWJsaWNWZXJzaW9uJy5cbiAgICogTmVsIGNhc28gaW4gY3VpIG5vbiBzaWEgcG9zc2liaWxlIHJlY3VwZXJhcmUgaWwgZnJhbW1lbnRvIGwnaHRtbCB2ZXJyYScgdmlzdWFsaXp6YXRvIHF1ZWxsbyBkaSBkZWZhdWx0LlxuICAgKi9cbiAgZm9vdGVyVXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGb3J6YSBpbCBjb21wb25lbnRlIGEgdXRpbGl6emFyZSBpIGZyYW1tZW50aSBodG1sIGRpIGRlZmF1bHQgcGVyIGhlYWRlciBlIGZvb3RlciBzZSByZWN1cGVyb0F1dG9tYXRpY29IdG1sIGUnIHN0YXRhIHZhbG9yaXp6YXRhIGEgZmFsc2UuXG4gICAqIEluIHF1ZXN0byBjYXNvLCBwZXIgdmlzdWFsaXp6YXJlIGlsIGZyYW1tZW50byBodG1sIGRpIGRlZmF1bHQgaW5lcmVudGUgbCdoZWFkZXIgc2Vjb25kYXJpbyxcbiAgICogc2FyYScgbmVjZXNzYXJpbyB2YWxvcml6emFyZSBsYSBwcm9wcmlldGEnIGRpIGlucHV0ICdoZWFkZXJTZWNvbmRhcmlvRGF0YScuXG4gICAqIFZhbG9yaXp6YXJlIG8gbWVubyBsYSBwcm9wcmlldGEnICdoZWFkZXJTZWNvbmRhcmlvRGF0YScgaW5vbHRyZSBkZXRlcm1pbmVyYScgc2UgdmlzdWFsaXp6YXJlIGlsIGZyYW1tZW50byBodG1sIGRpIGRlZmF1bHRcbiAgICogZGVsbGEgbmF2aWdhemlvbmUgcHJpbmNpcGFsZSBpbmVyZW50ZSBsJ3V0ZW50ZSBhdXRlbnRpY2F0byBvIHF1ZWxsbyBpbmVyZW50ZSBsJ3V0ZW50ZSBub24gYXV0ZW50aWNhdG9cbiAgICogKEluIGNhc28gZGkgdXRlbnRlIG5vbiBhdXRlbnRpY2F0byBpbCBsYXlvdXQgcHJldmlzdG8gcGVyIGxlIGFwcGxpY2F6aW9uaSBJTkFJTCBub24gbW9zdHJhIGwnaGVhZGVyIHNlY29uZGFyaW8pLlxuICAgKi9cbiAgdXNlRGVmYXVsdEh0bWw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVcmwgYSBjdWkgY29udGF0dGFyZSBsJ0FHVyBwZXIgaWwgcmVjdXBlcm8gYXV0b21hdGljbyBkZWkgZnJhbW1lbnRpIGh0bWwuXG4gICAqIFBlciBpbCByZWN1cGVybyB2ZXJyYW5ubyBjb250YXR0YXRpIGkgc2Vydml6aSAnSGVhZGVyRm9vdGVyLU1TUHVibGljVmVyc2lvbicgZSAnSGVhZGVyRm9vdGVyLU1TUHJpdmF0ZVZlcnNpb24nLlxuICAgKiBTZSBub24gc3BlY2lmaWNhdG8gdmVycmEnIHV0aWxpenphdG8gbCdpbmRpcml6em8gcmVsYXRpdm8gL2FwaS5cbiAgICovXG4gIGFwaUdhdGV3YXlVcmw/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSWwgY29tcG9uZW50ZSByZW5kZXJpenphIGwnaW50ZXJvIGxheW91dCBkZWxsJ2FwcGxpY2F6aW9uZS5cbiAqXG4gKiBDb21wcmVuZGUgZ2xpIGVsZW1lbnRpIGNvbXVuaSBhIHR1dHRlIGxlIGFwcGxpY2F6aW9uaSBJTkFJTDpcbiAqIEhlYWRlciwgZm9vdGVyLCBzcGF6aW8gcGVyIGJyZWFkY3J1bWIgZSBtZW51IGxhdGVyYWxlLlxuICpcbiAqIElsIGNvbXBvbmVudGUgaW1wbGVtZW50YSBhdXRvbm9tYW1lbnRlIGlsIG1lY2NhbmlzbW8gcGVyIHJlbmRlcmUgcmVzcG9uc2l2ZSBsJ2FwcGxpY2F6aW9uZSxcbiAqIHNlY29uZG8gcXVhbnRvIHJpY2hpZXN0byBuZWxsZSBsaW5lZSBndWlkYSBJTkFJTC5cbiAqXG4gKiBFJyBwb3NzaWJpbGUgaW5pZXR0YXJlIG5lbCBsYXlvdXQgcmVuZGVyaXp6YXRvIGlsIGNvbnRlbnV0byBwcmluY2lwYWxlIGRlbGxlIHBhZ2luZSxcbiAqIGlsIGJyZWFkY3J1bWIsIGlsIG1lbnUgYXBwbGljYXRpdm8gZWQgaWwgc290dG9tZW51LlxuICpcbiAqIElub2x0cmUgZScgcG9zc2liaWxlIHBlcm1ldHRlcmUgYWwgY29tcG9uZW50ZSBkaSByZWN1cGVyYXJlIGluIGF1dG9tYXRpY28gbGUgaW5mb3JtYXppb25pIGluZXJlbnRpXG4gKiBsJ3V0ZW50ZSBsb2dnYXRvIGUgZ2xpIGh0bWwgdmlzdWFsaXp6YXRpIG5lbGwnaGVhZGVyIGUgbmVsIGZvb3RlclxuICogb3BwdXJlIHBhc3NhcmUgZXNwbGljaXRhbWVudGUgcXVlc3RlIGluZm9ybWF6aW9uaSBkYWxsJ2VzdGVybm8uXG4gKlxuICogSW5maW5lIGUnIHBvc3NpYmlsZSBmYXIgaW5pZXR0YXJlIGFsIGNvbXBvbmVudGUgbGUgcmlzb3JzZSBzdGF0aWNoZSBuZWNlc3NhcmllLFxuICogcGFzc2FuZG9sZSBpbiBpbnB1dCBlIGZhY2VuZG9sZSByZWN1cGVyYXJlIGluIGF1dG9tYXRpY29cbiAqIHNlbnphIGRvdmVybGUgc3BlY2lmaWNhcmUgbmVsbCdpbmRleC5odG1sXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2luYWlsLWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmFpbC1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbmFpbC1sYXlvdXQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENIQU5HRV9ERVRFQ1RJT05fU1RSQVRFR1ksXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgSW5haWxMYXlvdXRDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgaGVhZGVyQ29uZmlnOiBIZWFkZXJDb25maWd1cmF0aW9ucztcblxuICAvKipcbiAgICogU2UgdHJ1ZSB2aXN1YWxpenphIGlsIGxvYWRlclxuICAgKi9cbiAgQElucHV0KClcbiAgc2hvd0xvYWRlcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogT2dnZXR0byBkaSBjb25maWd1cmF6aW9uZSBkZWwgY29tcG9uZW50ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGNvbmZpZzogSW5haWxMYXlvdXRDb25maWd1cmF0aW9ucztcblxuICAvKipcbiAgICogRnJhbW1lbnRvIGh0bWwgZGVsbGEgcHJpbWEgaW50ZXN0YXppb25lIGRpIHBhZ2luYSAocXVlbGxhIGNvbnRlbmVudGUgaWwgbG9nbykgZGEgZmFyIHZpc3VhbGl6emFyZSBhbCBjb21wb25lbnRlLlxuICAgKiBWZXJyYScgdXRpbGl6emF0byBzb2xhbWVudGUgaW4gY2FzbyBkaSByZWN1cGVybyBub24gYXV0b21hdGljby5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGxvZ29IZWFkZXJIdG1sOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZyYW1tZW50byBodG1sIGRlbGxhIG5hdmlnYXppb25lIHByaW5jaXBhbGUgZGEgZmFyIHZpc3VhbGl6emFyZSBhbCBjb21wb25lbnRlLlxuICAgKiBWZXJyYScgdXRpbGl6emF0byBzb2xhbWVudGUgaW4gY2FzbyBkaSByZWN1cGVybyBub24gYXV0b21hdGljby5cbiAgICovXG4gIEBJbnB1dCgpXG4gIG5hdmlnYXppb25lUHJpbmNpcGFsZUh0bWw6IHN0cmluZztcblxuICAvKipcbiAgICogRnJhbW1lbnRvIGh0bWwgZGVsIGhlYWRlciBzZWNvbmRhcmlvIGRhIGZhciB2aXN1YWxpenphcmUgYWwgY29tcG9uZW50ZS5cbiAgICogVmVycmEnIHV0aWxpenphdG8gc29sYW1lbnRlIGluIGNhc28gZGkgcmVjdXBlcm8gbm9uIGF1dG9tYXRpY28uXG4gICAqL1xuICBASW5wdXQoKVxuICBoZWFkZXJTZWNvbmRhcmlvSHRtbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEYXRpIGRhIHZpc3VhbGl6emFyZSBhbGwnaW50ZXJubyBkZWwgaGVhZGVyIHNlY29uZGFyaW8uXG4gICAqIFZlcnJhbm5vIHV0aWxpenphdGkgc29sYW1lbnRlIGluIGNhc28gZGkgcmVjdXBlcm8gbm9uIGF1dG9tYXRpY28uXG4gICAqIFZlbmdvbm8gaWdub3JhdGkgc2UgZScgc3RhdGEgdmFsb3JpenphdGEgbGEgcHJvcHJpZXRhJyBkaSBpbnB1dCAnaGVhZGVyU2Vjb25kYXJpb0h0bWwnLlxuICAgKiBTZSBpbXBvc3RhdGEgYSAndHJ1ZScgbGEgcHJvcHJpZXRhJyAndXNlRGVmYXVsdEh0bWwnIGRlbGwnb2dnZXR0byBkaSBjb25maWd1cmF6aW9uZSBkZWwgY29tcG9uZW50ZSxcbiAgICogbGEgdmFsb3JpenphemlvbmUgZGVsbGEgcHJvcHJpZXRhJyAnaGVhZGVyU2Vjb25kYXJpb0RhdGEnIGRldGVybWluZXJhJyBzZSB2aXN1YWxpenphcmUgaWwgZnJhbW1lbnRvIGh0bWwgZGkgZGVmYXVsdFxuICAgKiBkZWxsYSBuYXZpZ2F6aW9uZSBwcmluY2lwYWxlIGluZXJlbnRlIGwndXRlbnRlIGF1dGVudGljYXRvIG8gcXVlbGxvIGluZXJlbnRlIGwndXRlbnRlIG5vbiBhdXRlbnRpY2F0b1xuICAgKiBlIHNlIHZpc3VhbGl6emFyZSBvIG1lbm8gaWwgZnJhbW1lbnRvIGh0bWwgZGkgZGVmYXVsdCBpbmVyZW50ZSBsJ2hlYWRlciBzZWNvbmRhcmlvLlxuICAgKi9cbiAgQElucHV0KClcbiAgaGVhZGVyU2Vjb25kYXJpb0RhdGE6IEhlYWRlclNlY29uZGFyaW9EYXRhO1xuXG4gIC8qKlxuICAgKiBGcmFtbWVudG8gaHRtbCBkZWwgZm9vdGVyIGRhIGZhciB2aXN1YWxpenphcmUgYWwgY29tcG9uZW50ZS5cbiAgICogVmVycmEnIHV0aWxpenphdG8gc29sYW1lbnRlIGluIGNhc28gZGkgcmVjdXBlcm8gbm9uIGF1dG9tYXRpY28uXG4gICAqL1xuICBASW5wdXQoKVxuICBmb290ZXJIdG1sOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExpc3RhIGRlbGxlIHJpc29yc2UgZXN0ZXJuZSBkYSB1dGlsaXp6YXJlIHBlciBsYSBjb3JyZXR0YSB2aXN1YWxpenphemlvbmUgZGVsIGxheW91dC5cbiAgICogVmVuZ29ubyBjYXJpY2F0ZSBhdXRvbWF0aWNhbWVudGUgc29sbyBzZSBpbCBjb21wb3J0YW1lbnRvIHZpZW5lIGFiaWxpdGF0b1xuICAgKiB0cmFtaXRlIGxhIHByb3ByaWV0YScgZGkgY29uZmlndXJhemlvbmUgJ2NhcmljYW1lbnRvRGluYW1pY29SaXNvcnNlRXN0ZXJuZScuXG4gICAqIFNlIHBlciBsZSByaXNvcnNlIG5vbiB2ZW5nb25vIHNwZWNpZmljYXRpIGRlZ2xpIHVybCBhc3NvbHV0aVxuICAgKiB2ZWdvbm8gcmVjdXBlcmF0ZSBpbiBiYXNlIGEgcXVhbnRvIHNwZWNpZmljYXRvIG5lbGxhIHByb3ByaWV0YScgZGkgY29uZmlndXJhemlvbmVcbiAgICogJ2NkbkVuZHBvaW50Jy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGV4dGVybmFsUmVzb3VyY2VzOiBFeHRlcm5hbFJlc291cmNlW107XG5cbiAgLyoqXG4gICAqIEFsbGEgcmljZXppb25lIGRlbCB2YWxvcmUgZWZmZXR0dWEgaWwgcmljYXJpY2FtZW50byBkZWkgZnJhbW1lbnRpIGh0bWwuXG4gICAqL1xuICBASW5wdXQoKVxuICByZWxvYWQ6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgLyoqXG4gICAqIExpc3RhIGRlZ2xpIHNjcmlwdHMgZXN0ZXJuaSBkYSB1dGlsaXp6YXJlIHBlciBpbCBjb3JyZXR0byBmdW56aW9uYW1lbnRvIGRlbCBsYXlvdXQuXG4gICAqIFZlbmdvbm8gY2FyaWNhdGkgYXV0b21hdGljYW1lbnRlIHNvbG8gc2UgaWwgY29tcG9ydGFtZW50byB2aWVuZSBhYmlsaXRhdG9cbiAgICogdHJhbWl0ZSBsYSBwcm9wcmlldGEgZGkgY29uZmlncmF6aW9uZSBjYXJpY2FtZW50b0RpbmFtaWNvU2NyaXB0RXN0ZXJuaS5cbiAgICogU2UgcGVyIGdsaSBzY3JpcHQgbm9uIHZlbmdvbm8gc3BlY2lmaWNhdGkgZGVnbGkgdXJsIGFzc29sdXRpXG4gICAqIHZlZ29ubyByZWN1cGVyYXRpIGluIGJhc2UgYSBxdWFudG8gc3BlY2lmaWNhdG8gbmVsbGUgcHJvcHJpdGEgZGkgY29uZmlndXJhemlvbmVcbiAgICogY2RuRW5kcG9pbnQgZWQgYXNzZXRzVXJsLlxuICAgKi9cbiAgICAvLyBASW5wdXQoKVxuICAgIC8vIGV4dGVybmFsU2NyaXB0czogRXh0ZXJuYWxTY3JpcHRbXTtcblxuICBAVmlld0NoaWxkKCdicmVhZGNydW1iQ29udGFpbmVyJylcbiAgYnJlYWRjcnVtYkNvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCdwbGVhc2VXYWl0Q29udGFpbmVyJylcbiAgcGxlYXNlV2FpdENvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICBAQ29udGVudENoaWxkcmVuKE1lbnVDb21wb25lbnQpXG4gIG1lbnVMaXN0OiBRdWVyeUxpc3Q8TWVudUNvbXBvbmVudD47XG5cbiAgcGFnaW5hQ29ycmVudGU6IEFwcFBhZ2U7XG5cbiAgYnJlYWRjcnVtYkVzdGVybm86IGJvb2xlYW4gPSB0cnVlO1xuICBwbGVhc2VXYWl0RXN0ZXJubzogYm9vbGVhbiA9IHRydWU7XG5cbiAgLy8gR2VzdGlvbmUgcmlzb3JzZSBlIHNjcmlwdCBlc3Rlcm5pXG4gIHJpc29yc2VFc3Rlcm5lQ291bnRlcjogbnVtYmVyID0gMDtcbiAgcmlzb3JzZUVzdGVybmVUb3Q6IG51bWJlcjtcbiAgc2NyaXB0RXN0ZXJuaUNvdW50ZXI6IG51bWJlciA9IDA7XG4gIHNjcmlwdEVzdGVybmlUb3Q6IG51bWJlcjtcblxuICBjYXJpY2FtZW50b1Jpc29yc2VFc3Rlcm5lVGVybWluYXRvOiBib29sZWFuID0gZmFsc2U7XG4gIGNhcmljYW1lbnRvU2NyaXB0RXN0ZXJuaVRlcm1pbmF0bzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGluaXppYWxpenphemlvbmVUZXJtaW5hdGE6IGJvb2xlYW4gPSBmYWxzZTtcblxuICB0b2dnbGVOYXZTZWNvbmRhcmlhOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgaXRzUmVhZHkgPSAoKTogYm9vbGVhbiA9PiB0aGlzLmluaXppYWxpenphemlvbmVUZXJtaW5hdGEgPT09IHRydWUgJiYgdGhpcy5jYXJpY2FtZW50b1Jpc29yc2VFc3Rlcm5lVGVybWluYXRvID09PSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhZ3c6IEFnd1Jlc3RTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcblxuICAgIHN1cGVyKGNkcik7XG4gICAgdGhpcy5sb2dQcmVmaXggPSAnW2luYWlsLWxheW91dF0nO1xuICAgIHRoaXMuZGV0YWNoKCk7XG4gIH1cblxuICAvKipcbiAgICogR2VzdGlvbmUgYXV0b21hdGljYSBwZXIgbCdpbXBvc3RhemlvbmUgZGVsIGZvY3VzXG4gICAqIHN1Z2xpIGVycm9yaVxuICAgKlxuICAgKiBAcGFyYW0gZWxlbVxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudC50YXJnZXQnXSlcbiAgb25DbGljayhlbGVtOiBIVE1MRWxlbWVudCkge1xuXG4gICAgLy8gQ29udHJvbGxvIGNoZSBpbCBjbGljayBzaWEgc3RhdG8gZmF0dG9cbiAgICAvLyBzdSB1biBwdWxzYW50ZSBjaGUgaW1wbGljYSBsJ2ltcG9zdGF6aW9uZVxuICAgIC8vIGRlbCBmb2N1cyBzdWxsJ2Vycm9yZVxuICAgIGlmICh0aGlzLmNvbmZpZy5mb2N1c09uRXJyb3IgJiYgaXNTZXRGb2N1c09uRXJyb3JCdXR0b24oZWxlbSkpIHtcblxuICAgICAgdGhpcy5lbWl0RGVidWcoJ0Vycm9yIGJ1dHRvbiBjbGlja2VkJyk7XG4gICAgICBzZXRGb2N1c09uRXJyb3IodGhpcy5jb25maWcuc2V0Rm9jdXNTdHJhdGVneSwgdGhpcy5jb25maWcuc2Nyb2xsVG9FcnJvcik7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuXG4gICAgdGhpcy5lbWl0RGVidWcoJ2NoYW5nZXMnKTtcbiAgICB0aGlzLmVtaXREZWJ1ZyhjaGFuZ2VzKTtcblxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuXG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaW5pdCgpIHtcblxuICAgIHRoaXMuZW1pdERlYnVnKCdpbml0Li4uJyk7XG5cbiAgICB0aGlzLnJlbW92ZU5nVmVyc2lvbih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnKSB7XG5cbiAgICAgIHRoaXMuZW1pdERlYnVnKCdDb25maWd1cmF6aW9uaSBJbmFpbExheW91dENvbXBvbmVudCcpO1xuICAgICAgdGhpcy5lbWl0RGVidWcodGhpcy5jb25maWcpO1xuXG4gICAgICBpZiAoIXRoaXMuY29uZmlnLmNkbkVuZHBvaW50ICYmIHRoaXMuY29uZmlnLnJlY3VwZXJvQXV0b21hdGljb0NkbkVuZHBvaW50ID09PSB0cnVlKSB7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5yZWN1cGVyYUNkbkVuZHBvaW50KCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaGVhZGVyQ29uZmlnID0ge1xuICAgICAgICBjbGllbnRJZDogdGhpcy5jb25maWcuY2xpZW50SWQsXG4gICAgICAgIGFwaUdhdGV3YXlVcmw6IHRoaXMuY29uZmlnLmFwaUdhdGV3YXlVcmwsXG4gICAgICAgIGxvZ29IZWFkZXJVcmw6IHRoaXMuY29uZmlnLmxvZ29IZWFkZXJVcmwsXG4gICAgICAgIG5hdmlnYXppb25lUHJpbmNpcGFsZVVybDogdGhpcy5jb25maWcubmF2aWdhemlvbmVQcmluY2lwYWxlVXJsLFxuICAgICAgICBoZWFkZXJTZWNvbmRhcmlvVXJsOiB0aGlzLmNvbmZpZy5oZWFkZXJTZWNvbmRhcmlvVXJsLFxuICAgICAgICB1c2VEZWZhdWx0SHRtbDogdGhpcy5jb25maWcudXNlRGVmYXVsdEh0bWwsXG4gICAgICAgIHJlY3VwZXJvQXV0b21hdGljb0h0bWw6IHRoaXMuY29uZmlnLnJlY3VwZXJvQXV0b21hdGljb0h0bWxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYodGhpcy5jb25maWcucmVjdXBlcm9BdXRvbWF0aWNvSHRtbCA9PT0gdHJ1ZSkge1xuXG4gICAgICAvLyBUT0RPIGFnZ2l1bmdlcmUgYWxsYSBET0NcbiAgICAgIGF3YWl0IHRoaXMucmVjdXBlcmFIZWFkRGFBR1coKTtcbiAgICB9XG5cbiAgICAvLyBJbml6aWFsaXp6YXppb25lIHJpc29yc2UgZXN0ZXJuZVxuICAgIGlmICh0aGlzLmNvbmZpZz8uY2FyaWNhbWVudG9EaW5hbWljb1Jpc29yc2VFc3Rlcm5lID09PSB0cnVlKSB7XG5cbiAgICAgIHRoaXMubG9hZFJpc29yc2VFc3Rlcm5lKHRoaXMuZXh0ZXJuYWxSZXNvdXJjZXMgfHwgd2Via2l0RXh0ZXJuYWxSZXNvdXJjZXMsICdsaW5rJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FyaWNhbWVudG9SaXNvcnNlRXN0ZXJuZVRlcm1pbmF0byA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gSW5pemlhbGl6emF6aW9uZSBzY3JpcHQgZXN0ZXJuaVxuICAgIC8vIGlmICh0aGlzLmNvbmZpZz8uY2FyaWNhbWVudG9EaW5hbWljb1NjcmlwdEVzdGVybmkgPT09IHRydWVcbiAgICAvLyAgICYmIHRoaXMuZXh0ZXJuYWxTY3JpcHRzPy5sZW5ndGgpIHtcbiAgICAvL1xuICAgIC8vICAgYXdhaXQgdGhpcy5sb2FkUmlzb3JzZUVzdGVybmUodGhpcy5leHRlcm5hbFNjcmlwdHMsICdzY3JpcHQnKTtcbiAgICAvLyB9IGVsc2Uge1xuICAgIC8vXG4gICAgLy8gICB0aGlzLmNhcmljYW1lbnRvU2NyaXB0RXN0ZXJuaVRlcm1pbmF0byA9IHRydWU7XG4gICAgLy8gfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnPy5zY3JvbGxUb3BBdE5hdmlnYXRpb25FbmQpIHtcblxuICAgICAgdGhpcy5wdXNoKFxuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgICAucGlwZShmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHNjcm9sbFRvcCgpKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXREZWJ1ZygnLi4uaW5pemlhbGl6emF6aW9uZSB0ZXJtaW5hdGEhJyk7XG4gICAgdGhpcy5pbml6aWFsaXp6YXppb25lVGVybWluYXRhID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZU5nVmVyc2lvbihuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudCkge1xuXG4gICAgaWYgKG5hdGl2ZUVsZW1lbnQpIHtcblxuICAgICAgaWYgKG5hdGl2ZUVsZW1lbnQ/Lmhhc0F0dHJpYnV0ZSgnbmctdmVyc2lvbicpKSB7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUobmF0aXZlRWxlbWVudCwgJ25nLXZlcnNpb24nKTtcblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVOZ1ZlcnNpb24obmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG5cbiAgICB0aGlzLmJyZWFkY3J1bWJFc3Rlcm5vID0gdGhpcy5icmVhZGNydW1iQ29udGFpbmVyID8gdGhpcy5icmVhZGNydW1iQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRFbGVtZW50Q291bnQgPiAwIDogZmFsc2U7XG4gICAgdGhpcy5wbGVhc2VXYWl0RXN0ZXJubyA9IHRoaXMucGxlYXNlV2FpdENvbnRhaW5lciA/IGlzTm90QmxhbmtPck51bGwodGhpcy5wbGVhc2VXYWl0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MKSA6IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMubWVudUxpc3Q/Lmxlbmd0aCA+IDApIHtcblxuICAgICAgdGhpcy5tZW51TGlzdC5mb3JFYWNoKChtZW51OiBNZW51Q29tcG9uZW50KSA9PiB7XG5cbiAgICAgICAgdGhpcy5wdXNoKFxuICAgICAgICAgIG1lbnUuY3VycmVudEl0ZW0uc3Vic2NyaWJlKChjdXJyZW50RWxlbWVudDogTWVudUl0ZW0pID0+IHtcblxuICAgICAgICAgICAgdGhpcy5lbWl0RGVidWcoJ1ZvY2UgbWVudSBjb3JyZW50ZScpO1xuICAgICAgICAgICAgdGhpcy5lbWl0RGVidWcoY3VycmVudEVsZW1lbnQpO1xuXG4gICAgICAgICAgICBpZiAoY3VycmVudEVsZW1lbnQgIT0gdW5kZWZpbmVkKSB7XG5cbiAgICAgICAgICAgICAgdGhpcy5wYWdpbmFDb3JyZW50ZSA9IHRoaXMudG9QYWdpbmFBcHBsaWNhdGl2YShjdXJyZW50RWxlbWVudCk7XG4gICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB0b1BhZ2luYUFwcGxpY2F0aXZhKGVsZW1lbnQ6IE1lbnVJdGVtKTogQXBwUGFnZSB7XG5cbiAgICByZXR1cm4gZWxlbWVudCAhPSB1bmRlZmluZWRcbiAgICAgID8ge1xuICAgICAgICB0aXRsZTogdGhpcy5nZXRFbGVtZW50TGFiZWwoZWxlbWVudCksXG4gICAgICAgIHVybDogdGhpcy5nZXRFbGVtZW50TGluayhlbGVtZW50KSxcbiAgICAgICAgcGFyZW50OiB0aGlzLnRvUGFnaW5hQXBwbGljYXRpdmEoZWxlbWVudC5wYXJlbnQpXG4gICAgICB9XG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldEVsZW1lbnRMaW5rKGVsZW1lbnQ6IE1lbnVJdGVtKTogc3RyaW5nIHtcblxuICAgIHJldHVybiBpc0Z1bmN0aW9uKGVsZW1lbnQubGluaykgPyAoZWxlbWVudC5saW5rIGFzIEdldFN0cmluZ0ZuKSgpIDogZWxlbWVudC5saW5rO1xuICB9XG5cbiAgZ2V0RWxlbWVudExhYmVsKGVsZW1lbnQ6IE1lbnVJdGVtKTogc3RyaW5nIHtcblxuICAgIHJldHVybiBpc0Z1bmN0aW9uKGVsZW1lbnQubGFiZWwpID8gKGVsZW1lbnQubGFiZWwgYXMgR2V0U3RyaW5nRm4pKCkgOiBlbGVtZW50LmxhYmVsO1xuICB9XG5cbiAgLy8gLS0tIExvZ2ljYSBjYXJpY2FtZW50byByaXNvcnNlIGVzdGVybmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFJlY3VwZXJhIGRhIEFwaSBHYXRld2F5IGwnZW5kcG9pbnQgZGVsbGEgY2RuXG4gICAqIGUgbG8gaW1wb3N0YSBuZWxsYSBjb25maWd1cmF6aW9uZSBkZWwgY29tcG9uZW50ZS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcmVjdXBlcmFDZG5FbmRwb2ludCgpIHtcblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmVtaXREZWJ1ZyhgUmVjdXBlcm8gY2RuIGVuZHBvaW50IGRhIEFHVyBnbG9iYWwgY29uZmlnYCk7XG5cbiAgICAgIGxldCByZXNwb25zZTogR2xvYmFsQ29uZmlnUmVzcG9uc2UgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKHRoaXMuYWd3LmdldEdsb2JhbENvbmZpZyh7XG4gICAgICAgIGNsaWVudElkOiB0aGlzLmNvbmZpZz8uY2xpZW50SWQsXG4gICAgICAgIGFnd0VuZFBvaW50OiB0aGlzLmNvbmZpZz8uYXBpR2F0ZXdheVVybFxuICAgICAgfSkpO1xuXG4gICAgICB0aGlzLmNvbmZpZy5jZG5FbmRwb2ludCA9IHJlc3BvbnNlLmNkbl9lbmRwb2ludDtcblxuICAgIH0gY2F0Y2ggKGUpIHtcblxuICAgICAgdGhpcy5lbWl0RXJyb3IoJ0Vycm9yZSBuZWwgcmVjdXBlcm8gZGVsIGNkbkVuZHBvaW50IGRhIGFwaSBnYXRld2F5Jyk7XG4gICAgICB0aGlzLmVtaXRFcnJvcihlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHJpc29yc2VFc3Rlcm5lXG4gICAqIEBwYXJhbSB0eXBlXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGxvYWRSaXNvcnNlRXN0ZXJuZShyaXNvcnNlRXN0ZXJuZTogKEV4dGVybmFsUmVzb3VyY2UgfCBFeHRlcm5hbFNjcmlwdClbXSwgdHlwZTogUmVzb3VyY2VUeXBlKSB7XG5cbiAgICB0aGlzLmVtaXREZWJ1ZygnTG9hZCByaXNvcnNlIGVzdGVybmUnKTtcbiAgICB0aGlzLmVtaXREZWJ1ZyhyaXNvcnNlRXN0ZXJuZSk7XG5cbiAgICByaXNvcnNlRXN0ZXJuZS5mb3JFYWNoKChyZXNvdXJjZTogRXh0ZXJuYWxSZXNvdXJjZSB8IEV4dGVybmFsU2NyaXB0KSA9PiB0aGlzLmltcG9zdGFQYXRoUmlzb3JzYShyZXNvdXJjZSwgdHlwZSkpO1xuXG4gICAgbGV0IGxvYWRlZFJlc291cmNlczogTG9hZGVkUmVzb3VyY2VbXSA9IFtdO1xuICAgIHJpc29yc2VFc3Rlcm5lLmZvckVhY2goKHJpc29yc2E6IEV4dGVybmFsUmVzb3VyY2UgfCBFeHRlcm5hbFNjcmlwdCkgPT4gbG9hZGVkUmVzb3VyY2VzLnB1c2goe2xvYWRlZDogZmFsc2UsIHJlc291cmNlOiByaXNvcnNhfSkpO1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG5cbiAgICAgIGNhc2UgJ2xpbmsnOlxuICAgICAgICB0aGlzLnJpc29yc2VFc3Rlcm5lQ291bnRlciA9IDA7XG4gICAgICAgIHRoaXMucmlzb3JzZUVzdGVybmVUb3QgPSByaXNvcnNlRXN0ZXJuZS5sZW5ndGg7XG4gICAgICAgIHRoaXMuY2FyaWNhUmlzb3JzZUVzdGVybmUobG9hZGVkUmVzb3VyY2VzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICAvLyBjYXNlIFwic2NyaXB0XCI6XG4gICAgICAvLyAgIHRoaXMuc2NyaXB0RXN0ZXJuaUNvdW50ZXIgPSAwO1xuICAgICAgLy8gICB0aGlzLnNjcmlwdEVzdGVybmlUb3QgPSByaXNvcnNlRXN0ZXJuZS5sZW5ndGg7XG4gICAgICAvLyAgIGF3YWl0IHRoaXMuY2FyaWNhU2NyaXB0RXN0ZXJuaShsb2FkZWRSZXNvdXJjZXMpO1xuICAgICAgLy8gICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHJpc29yc2FFc3Rlcm5hXG4gICAqIEBwYXJhbSB0eXBlXG4gICAqL1xuICBwcml2YXRlIGltcG9zdGFQYXRoUmlzb3JzYShyaXNvcnNhRXN0ZXJuYTogRXh0ZXJuYWxSZXNvdXJjZSB8IEV4dGVybmFsU2NyaXB0LCB0eXBlOiBSZXNvdXJjZVR5cGUpIHtcblxuICAgIGxldCB1cmxQcm9wZXJ0eTogc3RyaW5nO1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG5cbiAgICAgIGNhc2UgJ2xpbmsnOlxuICAgICAgICB1cmxQcm9wZXJ0eSA9ICdocmVmJztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3NjcmlwdCc6XG4gICAgICAgIHVybFByb3BlcnR5ID0gJ3NyYyc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJpc29yc2FFc3Rlcm5hLmFzc2V0VXJsID0gIWlzQWJzb2x1dGUocmlzb3JzYUVzdGVybmFbdXJsUHJvcGVydHldKSA/IHJpc29yc2FFc3Rlcm5hLmFzc2V0VXJsIDogJyc7XG5cbiAgICByaXNvcnNhRXN0ZXJuYS5jZG5FbmRwb2ludCA9ICFpc0Fic29sdXRlKHJpc29yc2FFc3Rlcm5hLmFzc2V0VXJsKVxuICAgICAgPyByaXNvcnNhRXN0ZXJuYS5jZG5FbmRwb2ludCA/PyB0aGlzLmNvbmZpZy5jZG5FbmRwb2ludCA/PyAnJ1xuICAgICAgOiAnJztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VzXG4gICAqIEBwYXJhbSBpbmRleFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjYXJpY2FSaXNvcnNlRXN0ZXJuZShyZXNvdXJjZXM6IExvYWRlZFJlc291cmNlW10sIGluZGV4OiBudW1iZXIgPSAwKSB7XG5cbiAgICBpZiAocmVzb3VyY2VzICYmIHJlc291cmNlcy5sZW5ndGggPiAwKSB7XG5cbiAgICAgIHJlc291cmNlcy5mb3JFYWNoKHJlc291cmNlID0+IHtcblxuICAgICAgICB0aGlzLmVtaXREZWJ1ZygnQ2FyaWNhbWVudG8gcmlzb3JzYSBlc3Rlcm5hOicpO1xuICAgICAgICB0aGlzLmVtaXREZWJ1ZyhyZXNvdXJjZSk7XG5cbiAgICAgICAgdGhpcy5jcmVhRWxlbWVudG9SaXNvcnNhRXN0ZXJuYShyZXNvdXJjZSwgJ2xpbmsnKVxuICAgICAgICAgIC50aGVuKChyZXNwb25zZTogTG9hZGVkUmVzb3VyY2VSZXNwb25zZSkgPT4ge1xuXG4gICAgICAgICAgICB0aGlzLmVtaXREZWJ1ZygnLi4uY2FyaWNhbWVudG8gcmlzb3JzYSBlc3Rlcm5hIGNvbXBsZXRhdG8nKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdERlYnVnKHJlc3BvbnNlKTtcbiAgICAgICAgICB9LCBlID0+IHtcbiAgICAgICAgICAgIHRoaXMuZW1pdEVycm9yKCdFcnJvcmUgY2FyaWNhbWVudG8gcmlzb3JzYSBlc3Rlcm5hIScpO1xuICAgICAgICAgICAgdGhpcy5lbWl0RXJyb3IoZSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHNjcmlwdHNcbiAgICogQHBhcmFtIGluZGV4XG4gICAqL1xuICAvLyBwcml2YXRlIGFzeW5jIGNhcmljYVNjcmlwdEVzdGVybmkoc2NyaXB0czogTG9hZGVkUmVzb3VyY2VbXSwgaW5kZXg6IG51bWJlciA9IDApIHtcbiAgLy9cbiAgLy8gICBpZiAoaW5kZXggPCBzY3JpcHRzLmxlbmd0aCkge1xuICAvL1xuICAvLyAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gIC8vICAgICAgIHRoaXMuZW1pdERlYnVnKCdDYXJpY2FtZW50byBzY3JpcHQgZXN0ZXJubzonKTtcbiAgLy8gICAgICAgdGhpcy5lbWl0RGVidWcoc2NyaXB0c1tpbmRleF0pO1xuICAvL1xuICAvLyAgICAgICB0aGlzLmNyZWFFbGVtZW50b1Jpc29yc2FFc3Rlcm5hKHNjcmlwdHNbaW5kZXhdLCAnc2NyaXB0JylcbiAgLy8gICAgICAgICAudGhlbigocmVzcG9uc2U6IExvYWRlZFJlc291cmNlUmVzcG9uc2UpID0+IHtcbiAgLy9cbiAgLy8gICAgICAgICAgIHRoaXMuZW1pdERlYnVnKCcuLi5jYXJpY2FtZW50byBzY3JpcHQgZXN0ZXJubyBjb21wbGV0YXRvJyk7XG4gIC8vICAgICAgICAgICB0aGlzLmVtaXREZWJ1ZyhyZXNwb25zZSk7XG4gIC8vICAgICAgICAgfSlcbiAgLy8gICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgLy8gICAgICAgICAgIHRoaXMuZW1pdEVycm9yKCdFcnJvcmUgY2FyaWNhbWVudG8gc2NyaXB0IGVzdGVybm8hJyk7XG4gIC8vICAgICAgICAgICB0aGlzLmVtaXRFcnJvcihlKTtcbiAgLy8gICAgICAgICB9KVxuICAvLyAgICAgICAgIC5maW5hbGx5KCgpID0+IHRoaXMuY2FyaWNhU2NyaXB0RXN0ZXJuaShzY3JpcHRzLCBpbmRleCArIDEpKTtcbiAgLy9cbiAgLy8gICAgIH0sIHRoaXMuY29uZmlnLnNjcmlwdExvYWRpbmdEZWVsYXkgfHwgMzAwKTtcbiAgLy8gICB9IGVsc2Uge1xuICAvL1xuICAvLyAgICAgdGhpcy5lbWl0RGVidWcoJ0luaXppbyBhemlvbmlGaW5lQ2FyaWNhbWVudG9TY3JpcHQnKTtcbiAgLy8gICB9XG4gIC8vIH1cblxuICAvKipcbiAgICpcbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlXG4gICAqIEBwYXJhbSB0eXBlXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGNyZWFFbGVtZW50b1Jpc29yc2FFc3Rlcm5hKHJlc291cmNlOiBMb2FkZWRSZXNvdXJjZSwgdHlwZTogUmVzb3VyY2VUeXBlKTogUHJvbWlzZTxMb2FkZWRSZXNvdXJjZVJlc3BvbnNlPiB7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXG4gICAgICBsZXQgcmVzb3VyY2VVcmw6IHN0cmluZyA9IHJlc291cmNlLnJlc291cmNlWydzcmMnXSB8fCByZXNvdXJjZS5yZXNvdXJjZVsnaHJlZiddO1xuXG4gICAgICAvL3Jlc29sdmUgaWYgYWxyZWFkeSBsb2FkZWRcbiAgICAgIGlmIChyZXNvdXJjZS5sb2FkZWQpIHtcblxuICAgICAgICByZXNvbHZlKHtyZXNvdXJjZTogcmVzb3VyY2VVcmwsIGxvYWRlZDogdHJ1ZSwgc3RhdHVzOiAnQWxyZWFkeSBMb2FkZWQnfSk7XG4gICAgICB9IGVsc2Uge1xuXG4gICAgICAgIGxldCByZXNvdXJjZUVsZW1lbnQ6IGFueTtcblxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcblxuICAgICAgICAgIGNhc2UgJ3NjcmlwdCc6XG4gICAgICAgICAgICByZXNvdXJjZUVsZW1lbnQgPSBjcmVhdGVTY3JpcHRFbGVtZW50KChyZXNvdXJjZS5yZXNvdXJjZSBhcyBFeHRlcm5hbFNjcmlwdCkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnbGluayc6XG4gICAgICAgICAgICByZXNvdXJjZUVsZW1lbnQgPSBjcmVhdGVMaW5rRWxlbWVudCgocmVzb3VyY2UucmVzb3VyY2UgYXMgRXh0ZXJuYWxSZXNvdXJjZSkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzb3VyY2VFbGVtZW50LnJlYWR5U3RhdGUpIHsgIC8vIElFXG5cbiAgICAgICAgICByZXNvdXJjZUVsZW1lbnQub25yZWFkeXN0YXRlY2hhbmdlID0gKCkgPT4ge1xuXG4gICAgICAgICAgICBpZiAocmVzb3VyY2VFbGVtZW50LnJlYWR5U3RhdGUgPT09ICdsb2FkZWQnIHx8IHJlc291cmNlRWxlbWVudC5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XG5cbiAgICAgICAgICAgICAgdGhpcy5yaXNvcnNhT25Mb2FkKHR5cGUpO1xuICAgICAgICAgICAgICByZXNvdXJjZUVsZW1lbnQub25yZWFkeXN0YXRlY2hhbmdlID0gbnVsbDtcbiAgICAgICAgICAgICAgcmVzb3VyY2UubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgcmVzb2x2ZSh7cmVzb3VyY2U6IHJlc291cmNlVXJsLCBsb2FkZWQ6IHRydWUsIHN0YXR1czogJ0xvYWRlZCd9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuXG4gICAgICAgIH0gZWxzZSB7ICAvLyBPdGhlcnNcblxuICAgICAgICAgIHJlc291cmNlRWxlbWVudC5vbmxvYWQgPSAoKSA9PiB7XG5cbiAgICAgICAgICAgIHRoaXMucmlzb3JzYU9uTG9hZCh0eXBlKTtcbiAgICAgICAgICAgIHJlc291cmNlLmxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICByZXNvbHZlKHtyZXNvdXJjZTogcmVzb3VyY2VVcmwsIGxvYWRlZDogdHJ1ZSwgc3RhdHVzOiAnTG9hZGVkJ30pO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXNvdXJjZUVsZW1lbnQub25lcnJvciA9IChlcnJvcjogYW55KSA9PiB7XG5cbiAgICAgICAgICB0aGlzLnJpc29yc2FPbkxvYWQodHlwZSk7XG4gICAgICAgICAgcmVqZWN0KHtyZXNvdXJjZTogcmVzb3VyY2UucmVzb3VyY2UsIGxvYWRlZDogZmFsc2UsIHN0YXR1czogJ0xvYWRlZCd9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHJlc291cmNlRWxlbWVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByaXNvcnNhT25Mb2FkKHR5cGU6IFJlc291cmNlVHlwZSkge1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG5cbiAgICAgIGNhc2UgJ3NjcmlwdCc6XG4gICAgICAgIHRoaXMuc2NyaXB0RXN0ZXJuaUNvdW50ZXIrKztcbiAgICAgICAgdGhpcy5jYXJpY2FtZW50b1NjcmlwdEVzdGVybmlUZXJtaW5hdG8gPSB0aGlzLnNjcmlwdEVzdGVybmlDb3VudGVyID09PSB0aGlzLnNjcmlwdEVzdGVybmlUb3Q7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdsaW5rJzpcbiAgICAgICAgdGhpcy5yaXNvcnNlRXN0ZXJuZUNvdW50ZXIrKztcbiAgICAgICAgdGhpcy5jYXJpY2FtZW50b1Jpc29yc2VFc3Rlcm5lVGVybWluYXRvID0gdGhpcy5yaXNvcnNlRXN0ZXJuZUNvdW50ZXIgPT09IHRoaXMucmlzb3JzZUVzdGVybmVUb3Q7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNhcmljYW1lbnRvUmlzb3JzZUVzdGVybmVUZXJtaW5hdG8pIHtcblxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJlY3VwZXJhSGVhZERhQUdXKCkge1xuXG4gICAgdGhpcy5lbWl0RGVidWcoYFJlY3VwZXJvIHJpc29yc2UgZXN0ZXJuZSBoZWFkIGRhIEFHV2ApO1xuXG4gICAgbGV0IHJlcXVlc3Q6IEFHV1JlcXVlc3QgPSB7Y2xpZW50SWQ6IHRoaXMuY29uZmlnLmNsaWVudElkLCBhZ3dFbmRQb2ludDogdGhpcy5jb25maWcuYXBpR2F0ZXdheVVybH07XG5cbiAgICB0cnkge1xuXG4gICAgICBsZXQgcmVzcG9uc2U6IENoZWNrc2Vzc2lvblJlc3BvbnNlID0gYXdhaXQgbGFzdFZhbHVlRnJvbSh0aGlzLmFndy5jaGVja3Nlc3Npb24ocmVxdWVzdCkpO1xuXG4gICAgICBsZXQgcmVzcG9uc2VIRiQ6IE9ic2VydmFibGU8SEZSZXNwb25zZT4gPSByZXNwb25zZT8ucmVzdWx0ID09PSB0cnVlXG4gICAgICAgID8gdGhpcy5hZ3cuZ2V0UHJpdmF0ZUhlYWRSVyhyZXF1ZXN0KVxuICAgICAgICA6IHRoaXMuYWd3LmdldFB1YmxpY0hlYWRSVyhyZXF1ZXN0KTtcblxuICAgICAgbGV0IHJlc3BvbnNlSEY6IEhGUmVzcG9uc2UgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKHJlc3BvbnNlSEYkKTtcblxuICAgICAgaWYgKHJlc3BvbnNlSEY/Lmh0bWwgIT0gdW5kZWZpbmVkKSB7XG5cbiAgICAgICAgZG9jdW1lbnQuaGVhZC5pbm5lckhUTUwgPSBgJHtkb2N1bWVudC5oZWFkLmlubmVySFRNTH0gJHtyZXNwb25zZUhGLmh0bWx9YDtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuXG4gICAgfSBjYXRjaCAoZXJyKSB7XG5cbiAgICAgIHRoaXMuZW1pdEVycm9yKCdFcnJvcmUgcmVjdXBlcm8gcmlzb3JzZSBlc3Rlcm5lIGhlYWQgZGEgQUdXJyk7XG4gICAgICB0aGlzLmVtaXRFcnJvcihlcnIpO1xuICAgIH1cbiAgfVxufVxuXG4vLyAtLS0gT3BlcmF0b3JpIHBlciBsYSBnZXN0aW9uZSBkZWxsZSByaXNvcnNlIGVzdGVybmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmNvbnN0IGNyZWF0ZUxpbmtFbGVtZW50ID0gKHJlc291cmNlOiBFeHRlcm5hbFJlc291cmNlKSA9PiB7XG5cbiAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG5cbiAgbGV0IHVybCA9IGAke3Jlc291cmNlLmNkbkVuZHBvaW50fSR7KGlzTm90QmxhbmtPck51bGwocmVzb3VyY2UuY2RuRW5kcG9pbnQpICYmICFzdGFydFdpdGhTbGFzaChyZXNvdXJjZS5hc3NldFVybCkpID8gJy8nIDogJyd9JHtyZXNvdXJjZS5hc3NldFVybH0ke3Jlc291cmNlLmhyZWZ9YDtcblxuICBhZGRQcm9wZXJ0eShlbGVtZW50LCAncmVsJywgcmVzb3VyY2UucmVsKTtcbiAgYWRkUHJvcGVydHkoZWxlbWVudCwgJ3R5cGUnLCByZXNvdXJjZS50eXBlKTtcbiAgYWRkUHJvcGVydHkoZWxlbWVudCwgJ2hyZWYnLCB1cmwpO1xuICBhZGRQcm9wZXJ0eShlbGVtZW50LCAnbWVkaWEnLCByZXNvdXJjZS5tZWRpYSk7XG4gIGFkZFByb3BlcnR5KGVsZW1lbnQsICdocmVmbGFuZycsIHJlc291cmNlLmhyZWZsYW5nKTtcblxuICByZXR1cm4gZWxlbWVudDtcbn07XG5cbmNvbnN0IGNyZWF0ZVNjcmlwdEVsZW1lbnQgPSAoc2NyaXB0OiBFeHRlcm5hbFNjcmlwdCkgPT4ge1xuXG4gIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG5cbiAgbGV0IHVybCA9IGAke3NjcmlwdC5jZG5FbmRwb2ludH0keyhpc05vdEJsYW5rT3JOdWxsKHNjcmlwdC5jZG5FbmRwb2ludCkgJiYgIXN0YXJ0V2l0aFNsYXNoKHNjcmlwdC5hc3NldFVybCkpID8gJy8nIDogJyd9JHtzY3JpcHQuYXNzZXRVcmx9JHtzY3JpcHQuc3JjfWA7XG5cbiAgYWRkUHJvcGVydHkoZWxlbWVudCwgJ3NyYycsIHVybCk7XG4gIGFkZFByb3BlcnR5KGVsZW1lbnQsICd0eXBlJywgc2NyaXB0LnR5cGUpO1xuICBhZGRQcm9wZXJ0eShlbGVtZW50LCAnY2hhcnNldCcsIHNjcmlwdC5jaGFyc2V0KTtcblxuICBpZiAoc2NyaXB0LmFzeW5jID09PSB0cnVlKSB7XG5cbiAgICBlbGVtZW50LmFzeW5jID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChzY3JpcHQuZGVmZXIgPT09IHRydWUpIHtcblxuICAgIGVsZW1lbnQuZGVmZXIgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnQ7XG59O1xuXG5jb25zdCBhZGRQcm9wZXJ0eSA9IChlbGVtOiBhbnksIG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZykgPT4ge1xuXG4gIGlmIChlbGVtICE9IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPSB1bmRlZmluZWQpIHtcblxuICAgIGVsZW1bbmFtZV0gPSB2YWx1ZTtcbiAgfVxufTtcblxuLy8gLS0tIE9wZXJhdG9yaSBwZXIgbGEgZ2VzdGlvbmUgZGVsIGZvY3VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5jb25zdCBpc1NldEZvY3VzT25FcnJvckJ1dHRvbiA9IChlbGVtOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4gPT4gZWxlbSAmJiAoKGVsZW0ubm9kZU5hbWUgPT0gJ0JVVFRPTicgJiYgaGFzQ2xhc3NWYWxpZGF0aW9uQnRuKGVsZW0pKSB8fCBpc1NldEZvY3VzT25FcnJvckJ1dHRvbihlbGVtLnBhcmVudEVsZW1lbnQpKTtcbmNvbnN0IGhhc0NsYXNzVmFsaWRhdGlvbkJ0biA9IChlbGVtOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4gPT4gZWxlbSAmJiBlbGVtLmNsYXNzTGlzdCAmJiBlbGVtLmNsYXNzTGlzdC5jb250YWlucyhFUlJPUl9CVE5fQ0xBU1MpO1xuXG5jb25zdCBmb2N1c2FibGUgPSAnOm5vdChbZGlzYWJsZWRdKTpub3QoW3JlYWRvbmx5XSk6bm90KFt0YWJpbmRleD1cXCctMVxcJ10pJztcbmNvbnN0IGZvY3VzYWJsZUVsZW1lbnQgPSBgaW5wdXQke2ZvY3VzYWJsZX0sc2VsZWN0JHtmb2N1c2FibGV9LHRleHRhcmVhJHtmb2N1c2FibGV9LC5mZWVkYmFjay1mb2N1c2FibGVgO1xuXG4vKipcbiAqIFRyb3ZhIGUgcmVzdGl0dWlzY2UgbCdlbGVtZW50byBmb2N1c2FibGVcbiAqIGFsbCdpbnRlcm5vIGRlbGwnZWxlbWVudG8gZGF0b1xuICpcbiAqIEBwYXJhbSBvdXRlclxuICovXG5jb25zdCBmaW5kSW5uZXJGb2N1c2FibGVFbGVtZW50ID0gKG91dGVyOiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50ID0+IG91dGVyID8gb3V0ZXIucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oZm9jdXNhYmxlRWxlbWVudClbMF0gOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogSW1wb3N0YSBpbCBmb2N1cyBzdWxsJ2Vycm9yZVxuICovXG5leHBvcnQgY29uc3Qgc2V0Rm9jdXNPbkVycm9yID0gKHNldEZvY3VzU3RyYXRlZ3k6IFNldEZvY3VzU3RyYXRlZ3ksIHNjcm9sbFRvRXJyb3I6IGJvb2xlYW4pID0+IHtcblxuICAvLyBAdHMtaWdub3JlXG4gIC8vIGxldCBtb2RhbGVJblBhZ2luYTogYm9vbGVhbiA9ICQoJy5tb2RhbC5mYWRlLmluJykubm90KGAuJHtNT0RBTF9DT05GSVJNX0NMQVNTfWApLmxlbmd0aCA+IDAgVE9ET1xuXG4gIGxldCBtb2RhbGVJblBhZ2luYTogYm9vbGVhbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tb2RhbC5mYWRlLmluJykubGVuZ3RoO1xuXG4gIC8vIFNlIGVzaXN0ZSB1bmEgbW9kYWxlIGluIHBhZ2luYSBjaGUgbm9uIGUnIHVuYSBtb2RhbGUgZGkgY29uZmVybWFcbiAgaWYgKG1vZGFsZUluUGFnaW5hKSB7XG5cbiAgICBzZXRGb2N1c09uRmlyc3RNb2RhbEVycm9yKCk7XG5cbiAgfSBlbHNlIHtcblxuICAgIHN3aXRjaCAoc2V0Rm9jdXNTdHJhdGVneSkge1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgY2FzZSBTZXRGb2N1c1N0cmF0ZWd5Lk9uR2xvYmFsRmVlZGJhY2s6XG4gICAgICAgIHNldEZvY3VzT25HbG9iYWxFcnJvckZlZWRiYWNrKHNjcm9sbFRvRXJyb3IpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTZXRGb2N1c1N0cmF0ZWd5Lk9uRmlyc3RQYWdlRXJyb3I6XG4gICAgICAgIHNldEZvY3VzT25GaXJzdFBhZ2VFcnJvcihzY3JvbGxUb0Vycm9yKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIEltcG9zdGEgaWwgZm9jdXMgc3VsIHByaW1vIGVsZW1lbnRvIG5lbGxhIG1vZGFsZSBhbmRhdG8gaW4gZXJyb3JlIHNlIGVzaXN0ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNldEZvY3VzT25GaXJzdE1vZGFsRXJyb3IgPSAoKSA9PiB7XG5cbiAgc2V0VGltZW91dCgoKSA9PiB7XG5cbiAgICBsZXQgZmlyc3RNb2RhbEVycm9yRWxlbWVudDogSFRNTEVsZW1lbnQgPSBmaW5kSW5uZXJGb2N1c2FibGVFbGVtZW50KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KCcubW9kYWwtYm9keSAuaGFzLWVycm9yJylbMF0pO1xuICAgIGxldCBmaXJzdE1vZGFsRXJyb3JGZWVkYmFjazogSFRNTEVsZW1lbnQgPSBmaW5kSW5uZXJGb2N1c2FibGVFbGVtZW50KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KCcubW9kYWwtYm9keSAuZmVlZGJhY2stYm94LWVycm9yJylbMF0pO1xuXG4gICAgaWYgKGZpcnN0TW9kYWxFcnJvckVsZW1lbnQpIHtcblxuICAgICAgZmlyc3RNb2RhbEVycm9yRWxlbWVudC5mb2N1cygpO1xuXG4gICAgfSBlbHNlIGlmIChmaXJzdE1vZGFsRXJyb3JGZWVkYmFjaykge1xuXG4gICAgICBmaXJzdE1vZGFsRXJyb3JGZWVkYmFjay5mb2N1cygpO1xuICAgIH1cblxuICB9LCAxMDApO1xufTtcblxuLyoqXG4gKiBJbXBvc3RhIGlsIGZvY3VzIHN1bCBwcmltbyBlbGVtZW50byBpbiBwYWdpbmEgYW5kYXRvIGluIGVycm9yZSBzZSBlc2lzdGUuXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRGb2N1c09uRmlyc3RQYWdlRXJyb3IgPSAoc2Nyb2xsVG9FcnJvcj86IGJvb2xlYW4pID0+IHtcblxuICBzZXRUaW1lb3V0KCgpID0+IHtcblxuICAgIGxldCBvdXRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KCcuaGFzLWVycm9yLC5mZWVkYmFjay1ib3gtZXJyb3I6bm90KC5nbG9iYWwtZmVlZGJhY2spJylbMF07XG5cbiAgICBsZXQgZmlyc3RFcnJvckVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZmluZElubmVyRm9jdXNhYmxlRWxlbWVudChvdXRlcik7XG5cbiAgICBpZiAoZmlyc3RFcnJvckVsZW1lbnQgJiYgIWlzSGlkZGVuKGZpcnN0RXJyb3JFbGVtZW50KSkge1xuXG4gICAgICBpZiAoc2Nyb2xsVG9FcnJvciA9PT0gdHJ1ZSkge1xuXG4gICAgICAgIHNjcm9sbFRvRWxlbWVudChmaXJzdEVycm9yRWxlbWVudC5pZCk7XG4gICAgICB9XG5cbiAgICAgIC8vIElsIGRlbGF5IHNlcnZlIGFkIGFzcGV0dGFyZSBjaGUgdGVybWluaSBsbyBzY3JvbGxcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gZmlyc3RFcnJvckVsZW1lbnQuZm9jdXMoKSwgNTAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0Rm9jdXNPbkdsb2JhbEVycm9yRmVlZGJhY2soc2Nyb2xsVG9FcnJvcik7XG4gICAgfVxuICB9LCAxMDApO1xufTtcblxuLyoqXG4gKiBJbXBvc3RhIGlsIGZvY3VzIHN1bCBmZWVkYmFjayBnbG9iYWxlXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRGb2N1c09uR2xvYmFsRmVlZGJhY2sgPSAoc2Nyb2xsVG9GZWVkYmFjaz86IGJvb2xlYW4pID0+IHNldEZvY3VzT25GaXJzdEZlZWRiYWNrKCcuZ2xvYmFsLWZlZWRiYWNrJywgc2Nyb2xsVG9GZWVkYmFjayk7XG5cbi8qKlxuICogSW1wb3N0YSBpbCBmb2N1cyBzdWwgZmVlZGJhY2sgZ2xvYmFsZVxuICovXG5leHBvcnQgY29uc3Qgc2V0Rm9jdXNPbkdsb2JhbEVycm9yRmVlZGJhY2sgPSAoc2Nyb2xsVG9GZWVkYmFjaz86IGJvb2xlYW4pID0+IHNldEZvY3VzT25GaXJzdEZlZWRiYWNrKCcuZ2xvYmFsLWZlZWRiYWNrLmZlZWRiYWNrLWJveC1lcnJvcicsIHNjcm9sbFRvRmVlZGJhY2spO1xuXG4vKipcbiAqIEltcG9zdGEgaWwgZm9jdXMgc3VsIHByaW1vIGZlZWRiYWNrIGRpIGVycm9yZVxuICovXG5leHBvcnQgY29uc3Qgc2V0Rm9jdXNPbkZpcnN0RXJyb3JGZWVkYmFjayA9IChzY3JvbGxUb0ZlZWRiYWNrPzogYm9vbGVhbikgPT4gc2V0Rm9jdXNPbkZpcnN0RmVlZGJhY2soJy5mZWVkYmFjay1ib3gtZXJyb3InLCBzY3JvbGxUb0ZlZWRiYWNrKTtcblxuLyoqXG4gKiBJbXBvc3RhIGlsIGZvY3VzIHN1bCBwcmltbyBmZWVkYmFjayBpbiBwYWdpbmFcbiAqXG4gKiBAcGFyYW0gc2VsZWN0b3JcbiAqIEBwYXJhbSBzY3JvbGxUb0ZlZWRiYWNrXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRGb2N1c09uRmlyc3RGZWVkYmFjayA9IChzZWxlY3Rvcj86IHN0cmluZywgc2Nyb2xsVG9GZWVkYmFjaz86IGJvb2xlYW4pID0+IHtcblxuICBzZXRUaW1lb3V0KCgpID0+IHtcblxuICAgIGxldCBmZWVkYmFjazogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihzZWxlY3RvciB8fCAnLmZlZWRiYWNrLWJveCcpWzBdO1xuXG4gICAgaWYgKGZlZWRiYWNrKSB7XG5cbiAgICAgIGlmIChzY3JvbGxUb0ZlZWRiYWNrKSB7XG5cbiAgICAgICAgc2Nyb2xsVG9FbGVtZW50KGZlZWRiYWNrLmdldEF0dHJpYnV0ZSgnaWQnKSk7XG4gICAgICB9XG5cbiAgICAgIGxldCBmZWVkYmFja0ZvY3VzYWJsZTogSFRNTEVsZW1lbnQgPSBmZWVkYmFjay5xdWVyeVNlbGVjdG9yKCcuZmVlZGJhY2stZm9jdXNhYmxlJyk7XG5cbiAgICAgIGlmIChmZWVkYmFja0ZvY3VzYWJsZSAhPSB1bmRlZmluZWQpIHtcblxuICAgICAgICAvLyBJbCBkZWxheSBzZXJ2YSBhZCBhc3BldHRhcmUgY2hlIHRlcm1pbmkgbG8gc2Nyb2xsXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZmVlZGJhY2tGb2N1c2FibGUuZm9jdXMoKSwgNTAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIDEwMCk7XG59O1xuXG4vLyB0b2RvXG4vKipcbiAqXG4gKiBAcGFyYW0gaWRcbiAqIEBwYXJhbSBzY3JvbGxUb0ZlZWRiYWNrXG4gKiBAcGFyYW0gbXNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldEZvY3VzT25GZWVkYmFjayA9IChpZD86IHN0cmluZywgc2Nyb2xsVG9GZWVkYmFjaz86IGJvb2xlYW4sIG1zPzogbnVtYmVyKSA9PiB7XG5cbiAgc2V0VGltZW91dCgoKSA9PiB7XG5cbiAgICBsZXQgZmVlZGJhY2s6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oYCMke2lkfWApWzBdO1xuXG4gICAgaWYgKGZlZWRiYWNrKSB7XG5cbiAgICAgIGlmIChzY3JvbGxUb0ZlZWRiYWNrKSB7XG5cbiAgICAgICAgc2Nyb2xsVG9FbGVtZW50KGZlZWRiYWNrLmdldEF0dHJpYnV0ZSgnaWQnKSk7XG4gICAgICB9XG5cbiAgICAgIGxldCBmZWVkYmFja0ZvY3VzYWJsZTogSFRNTEVsZW1lbnQgPSBmZWVkYmFjay5xdWVyeVNlbGVjdG9yKCcuZmVlZGJhY2stZm9jdXNhYmxlJyk7XG5cbiAgICAgIGlmIChmZWVkYmFja0ZvY3VzYWJsZSAhPSB1bmRlZmluZWQpIHtcblxuICAgICAgICAvLyBJbCBkZWxheSBzZXJ2YSBhZCBhc3BldHRhcmUgY2hlIHRlcm1pbmkgbG8gc2Nyb2xsXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZmVlZGJhY2tGb2N1c2FibGUuZm9jdXMoKSwgNTAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIG1zIHx8IDEwMCk7XG59O1xuIiwiPGluYWlsLWxvYWRlciBbc2hvd109XCJzaG93TG9hZGVyXCI+PC9pbmFpbC1sb2FkZXI+XG48ZGVidWctcHJlICpuZ0lmPVwic2hvd1N0YXRlXCI+W2luYWlsLWxheW91dF08YnI+XG4gIDxzdGF0ZS1wcm9wZXJ0aWUgW2xhYmVsXT1cIidjb25maWcnXCIgW3Byb3BlcnRpZV09XCJjb25maWdcIj48L3N0YXRlLXByb3BlcnRpZT5cbiAgPHN0YXRlLXByb3BlcnRpZSBbbGFiZWxdPVwiJ2luaXppYWxpenphemlvbmVUZXJtaW5hdGEnXCIgW3Byb3BlcnRpZV09XCJpbml6aWFsaXp6YXppb25lVGVybWluYXRhXCI+PC9zdGF0ZS1wcm9wZXJ0aWU+XG4gIDxzdGF0ZS1wcm9wZXJ0aWUgW2xhYmVsXT1cIidjYXJpY2FtZW50b1Jpc29yc2VFc3Rlcm5lVGVybWluYXRvJ1wiIFtwcm9wZXJ0aWVdPVwiY2FyaWNhbWVudG9SaXNvcnNlRXN0ZXJuZVRlcm1pbmF0b1wiPjwvc3RhdGUtcHJvcGVydGllPlxuICA8c3RhdGUtcHJvcGVydGllIFtsYWJlbF09XCInY2FyaWNhbWVudG9TY3JpcHRFc3Rlcm5pVGVybWluYXRvJ1wiIFtwcm9wZXJ0aWVdPVwiY2FyaWNhbWVudG9TY3JpcHRFc3Rlcm5pVGVybWluYXRvXCI+PC9zdGF0ZS1wcm9wZXJ0aWU+XG4gIDxzdGF0ZS1wcm9wZXJ0aWUgW2xhYmVsXT1cIidpdHNSZWFkeSdcIiBbcHJvcGVydGllXT1cIml0c1JlYWR5KClcIj48L3N0YXRlLXByb3BlcnRpZT5cbiAgPHN0YXRlLXByb3BlcnRpZSBbbGFiZWxdPVwiJ2JyZWFkY3J1bWJFc3Rlcm5vJ1wiIFtwcm9wZXJ0aWVdPVwiYnJlYWRjcnVtYkVzdGVybm9cIj48L3N0YXRlLXByb3BlcnRpZT5cbiAgPHN0YXRlLXByb3BlcnRpZSBbbGFiZWxdPVwiJ3BhZ2luYUNvcnJlbnRlJ1wiIFtwcm9wZXJ0aWVdPVwicGFnaW5hQ29ycmVudGVcIj48L3N0YXRlLXByb3BlcnRpZT5cbjwvZGVidWctcHJlPlxuPGRpdiBjbGFzcz1cImluYWlsLWxheW91dFwiPlxuICA8ZGl2ICpuZ0lmPVwiIWl0c1JlYWR5KClcIiAjcGxlYXNlV2FpdENvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGxlYXNlV2FpdEVzdGVybm87IGVsc2UgZGVmYXVsdFBsZWFzZVdhaXRcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltwbGVhc2Utd2FpdF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0UGxlYXNlV2FpdD5cbiAgICAgIDxkaXYgY2xhc3M9XCJwbGVhc2Utd2FpdFwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnPy5hcHBOYW1lXCIgY2xhc3M9XCJhcHAtbmFtZVwiIFtpbm5lckhUTUxdPVwiY29uZmlnLmFwcE5hbWVcIj48L2Rpdj5cbiAgICAgICAgPGRpdj5DYXJpY2FtZW50by4uLjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1jb250YWluZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGVyXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIlxuICAgICAgIFtoaWRkZW5dPVwiIWl0c1JlYWR5KClcIlxuICAgICAgIFtuZ0NsYXNzXT1cInsnd2lkZScgOiBjb25maWcgJiYgY29uZmlnLmNvbnRhaW5lcldpZGV9XCI+XG5cbiAgICA8aGVhZGVyIGlkPVwiaW5haWwtaGVhZGVyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiaW5pemlhbGl6emF6aW9uZVRlcm1pbmF0YVwiXG4gICAgICAgICAgICBbY29uZmlnXT1cImhlYWRlckNvbmZpZ1wiXG4gICAgICAgICAgICBbbG9nb0hlYWRlckh0bWxdPVwibG9nb0hlYWRlckh0bWxcIlxuICAgICAgICAgICAgW25hdmlnYXppb25lUHJpbmNpcGFsZUh0bWxdPVwibmF2aWdhemlvbmVQcmluY2lwYWxlSHRtbFwiXG4gICAgICAgICAgICBbaGVhZGVyU2Vjb25kYXJpb0h0bWxdPVwiaGVhZGVyU2Vjb25kYXJpb0h0bWxcIlxuICAgICAgICAgICAgW2hlYWRlclNlY29uZGFyaW9EYXRhXT1cImhlYWRlclNlY29uZGFyaW9EYXRhXCJcbiAgICAgICAgICAgIFtyZWxvYWRdPVwicmVsb2FkXCJcbiAgICAgICAgICAgIFtzaG93U3RhdGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2RldGVjdENoYW5nZV09XCJ0aGlzLmRldGVjdENoYW5nZVwiXG4gICAgICAgICAgICBbbG9nT25Db25zb2xlXT1cImxvZ09uQ29uc29sZVwiXG4gICAgICAgICAgICAobG9nKT1cImVtaXQoJGV2ZW50KVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciBsb2dvLWhlYWRlcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xvZ28taGVhZGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciBuYXZpZ2F6aW9uZS1wcmluY2lwYWxlPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbmF2aWdhemlvbmUtcHJpbmNpcGFsZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgaGVhZGVyLXNlY29uZGFyaW8+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltoZWFkZXItc2Vjb25kYXJpb11cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2hlYWRlcj5cblxuICAgIDwhLS0gQnJlYWRjcnVtYiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwicm93IGJyZWFkY3J1bWJzIGludGVybmV0LWJyZWFkY3J1bWJcIlxuICAgICAgICAgYXJpYS1sYWJlbD1cIkJyZWFkY3J1bWJcIlxuICAgICAgICAgI2JyZWFkY3J1bWJDb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnJlYWRjcnVtYkVzdGVybm9cIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2JyZWFkY3J1bWJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8aW5haWwtYnJlYWRjcnVtYiAqbmdJZj1cIiFicmVhZGNydW1iRXN0ZXJub1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbG9nT25Db25zb2xlXT1cInRoaXMubG9nT25Db25zb2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjdXJyZW50UGFnZV09XCJwYWdpbmFDb3JyZW50ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobG9nKT1cImVtaXQoJGV2ZW50KVwiPlxuICAgICAgPC9pbmFpbC1icmVhZGNydW1iPlxuICAgIDwvZGl2PlxuXG4gICAgPGluYWlsLXRyaWdnZXItc2xpZGVyLW1lbnUtYnV0dG9uIChjbGljayk9XCJ0b2dnbGVOYXZTZWNvbmRhcmlhLmVtaXQoKVwiPjwvaW5haWwtdHJpZ2dlci1zbGlkZXItbWVudS1idXR0b24+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG5cbiAgICAgIDxpbmFpbC1uYXZpZ2F6aW9uZS1zZWNvbmRhcmlhIFt0b2dnbGVdPVwidG9nZ2xlTmF2U2Vjb25kYXJpYVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9nT25Db25zb2xlXT1cImxvZ09uQ29uc29sZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nKT1cImVtaXQoJGV2ZW50KVwiPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgc2lkZWJhci1zdXBlcmlvcmU+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NpZGViYXItc3VwZXJpb3JlXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBzaWRlYmFyLWluZmVyaW9yZT5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2lkZWJhci1pbmZlcmlvcmVdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPC9pbmFpbC1uYXZpZ2F6aW9uZS1zZWNvbmRhcmlhPlxuXG4gICAgICA8bWFpbiAqbmdJZj1cImluaXppYWxpenphemlvbmVUZXJtaW5hdGFcIlxuICAgICAgICAgICAgaWQ9XCJjb250ZW51dG9wcmluY2lwYWxlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS04IGNvbC1sZy05XCI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbWFpbi1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvbWFpbj5cblxuICAgIDwvZGl2PlxuICAgIDxpbmFpbC1mb290ZXIgKm5nSWY9XCJpbml6aWFsaXp6YXppb25lVGVybWluYXRhXCJcbiAgICAgICAgICAgICAgICAgIFtjbGllbnRJZF09XCJjb25maWc/LmNsaWVudElkXCJcbiAgICAgICAgICAgICAgICAgIFthcGlHYXRld2F5VXJsXT1cImNvbmZpZz8uYXBpR2F0ZXdheVVybFwiXG4gICAgICAgICAgICAgICAgICBbdXNlRGVmYXVsdF09XCJjb25maWc/LnVzZURlZmF1bHRIdG1sXCJcbiAgICAgICAgICAgICAgICAgIFtyZWN1cGVyb0F1dG9tYXRpY29IdG1sXT1cImNvbmZpZz8ucmVjdXBlcm9BdXRvbWF0aWNvSHRtbFwiXG4gICAgICAgICAgICAgICAgICBbaHRtbF09XCJmb290ZXJIdG1sXCJcbiAgICAgICAgICAgICAgICAgIFt1cmxdPVwiY29uZmlnPy5mb290ZXJVcmxcIlxuICAgICAgICAgICAgICAgICAgW3JlbG9hZF09XCJyZWxvYWRcIlxuICAgICAgICAgICAgICAgICAgW2RldGVjdENoYW5nZV09XCJ0aGlzLmRldGVjdENoYW5nZVwiXG4gICAgICAgICAgICAgICAgICBbbG9nT25Db25zb2xlXT1cInRoaXMubG9nT25Db25zb2xlXCJcbiAgICAgICAgICAgICAgICAgIFtzaG93U3RhdGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgKGxvZyk9XCJlbWl0KCRldmVudClcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvaW5haWwtZm9vdGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -2765,10 +2765,12 @@ class InailLayoutComponent extends BaseComponent {
|
|
|
2765
2765
|
recuperoAutomaticoHtml: this.config.recuperoAutomaticoHtml
|
|
2766
2766
|
};
|
|
2767
2767
|
}
|
|
2768
|
-
|
|
2769
|
-
if (this.config?.caricamentoDinamicoRisorseEsterne === true) {
|
|
2768
|
+
if (this.config.recuperoAutomaticoHtml === true) {
|
|
2770
2769
|
// TODO aggiungere alla DOC
|
|
2771
2770
|
await this.recuperaHeadDaAGW();
|
|
2771
|
+
}
|
|
2772
|
+
// Inizializzazione risorse esterne
|
|
2773
|
+
if (this.config?.caricamentoDinamicoRisorseEsterne === true) {
|
|
2772
2774
|
this.loadRisorseEsterne(this.externalResources || webkitExternalResources, 'link');
|
|
2773
2775
|
}
|
|
2774
2776
|
else {
|